Input Method Editors (IME)

Some languages, such as Japanese, Korean, and Chinese, use thousands of characters that can't be easily typed with a typical keyboard with 101-105 keys, which has a separate key for each letter. Input Method Editors (IME) let users enter such characters by typing a combination of keystrokes or making a sequence of mouse operations. An IME can support both hardware and software keyboards.

An IME can be part of the operating system or a separate app. Windows comes with more than 20 IMEs. For the complete list, see Keyboard identifiers and input method editors for Windows.

Your app doesn’t need to interact directly with an IME. It works as part of the system regardless, like a software keyboard. You should test the text entry user experience of your app with the IME, so you can fix any UI issues, such as the IME UI obscuring a part of your app or vice versa. Since keystrokes don't correspond directly to characters when an IME is used, features such as autocomplete need to be tested carefully.

Requirements for third party IMEs

If you don’t want to use the built-in Windows IMEs, it’s possible to create your own custom IME. They have three main requirements:

If these requirements aren't met, Windows blocks the IME from running and the IME might also be removed from the system by Windows Defender.