SymbolFYI

Input Method Editor (IME)

Input Methods
Définition

Software that enables typing characters not directly available on a keyboard, essential for CJK, Arabic, and other complex scripts.

Input Method Editors (IME)

An Input Method Editor (IME) is software that intercepts keystrokes and converts them into characters for writing systems that have more characters than a standard keyboard can accommodate. IMEs are essential for typing in Chinese, Japanese, Korean, Arabic, and many other languages where the character inventory vastly exceeds the ~100 keys on a physical keyboard.

The Problem IMEs Solve

Japanese, for example, has three writing systems: Hiragana (~46 characters), Katakana (~46 characters), and Kanji (the common standard, Joyo Kanji, defines 2,136 characters). A full Kanji keyboard would be impractical. IMEs solve this by allowing phonetic input that is then converted to the intended characters.

How Japanese IME Works

The most common Japanese input workflow using a QWERTY keyboard:

  1. Type romaji (romanized Japanese): nihon
  2. IME converts to hiragana: にほん
  3. Press Space to convert to kanji candidates: 日本
  4. Select from candidate list if needed
  5. Press Enter to confirm

The operating system fires composition events during steps 1-4, then an input event at step 5.

How Chinese IME Works

Pinyin IME (Simplified Chinese): Type pinyin syllables, then select from a candidate window showing matching characters and words.

Cangjie / Zhuyin (Traditional Chinese): Alternative input methods based on stroke components or phonetic notation.

Wubi (Simplified Chinese): A shape-based method that decomposes characters into strokes and assigns them to keyboard keys.

Korean IME

Korean Hangul input typically uses a "two-set" keyboard where consonants are on the left half and vowels on the right. The IME assembles jamo (phonetic components) into syllable blocks in real time:

Typing g, k, s produces 가 → 각 → 각ㅅ, with the final consonant attached as the user types.

IME in Web Browsers

IME composition creates important edge cases for web developers:

// WRONG: fires on every keystroke including IME intermediates
input.addEventListener('keyup', handleSearch);

// CORRECT: wait for IME composition to finish
let isComposing = false;
input.addEventListener('compositionstart', () => isComposing = true);
input.addEventListener('compositionend', () => {
  isComposing = false;
  handleSearch();
});
input.addEventListener('input', () => {
  if (!isComposing) handleSearch();
});

The isComposing property on InputEvent provides a shorthand:

input.addEventListener('input', (e) => {
  if (!e.isComposing) handleSearch();
});

System IME Implementations

Platform Default IME for Japanese Chinese
Windows Microsoft IME Microsoft Pinyin
macOS Kotoeri Pinyin
iOS Built-in Built-in
Android Gboard, others Various
Linux Fcitx5, IBus Same frameworks

IME and Accessibility

IMEs add complexity to accessibility scenarios. Screen readers must differentiate between IME candidate windows and the main document content. ARIA live regions and aria-autocomplete attributes help communicate IME state to assistive technologies, though support varies across screen reader and browser combinations.

Performance Considerations

For search-as-you-type interfaces serving East Asian markets, not accounting for IME composition can result in spurious API calls with partial phonetic input. Always implement isComposing guards to prevent triggering searches or validations during active composition.

Symboles associés

Termes associés

Outils associés

Guides associés