Ideally, text is input from a keyboard that can directly produce all the characters needed for that language. An input method is used to convert keyboard input to an encoding suitable for a Text control. Fortunately, application developers do not need to worry about the input method as long as the Text controls in the application support the display and input of text in the writing system supported by the underlying system. Furthermore, defining how keyboard actions convert into characters suitable for text input and the display is the responsibility of the underlying system. Designers of Text controls should create Text controls that support display and input of text in any writing system supported by the underlying system.
Text controls can also support input and display of multiple writing systems.
The following subsections describe these issues and provide some guidelines for addressing them, but there is currently too much variation in systems, and the field is too new for this guide to make many firm recommendations about these issues. The trend over time is for pre-edit areas to move closer to the location of the final text. This is technically difficult to do without fully integrating the Text control with the input method. In these input methods, a single pre-edit area can apply to a single Text control, a group of Text controls, an entire application window, or the whole screen. An input method where a single pre-edit area is responsible for all the Text controls on a screen is known as a root window input method.