Input Method (IME)
Software that enables typing characters not directly available on a keyboard, such as Japanese and Chinese characters.
An Input Method Editor (IME) is software that enables character input for languages whose writing systems contain more characters than keyboard keys can accommodate. Japanese, Chinese, Korean, and other languages with thousands to tens of thousands of characters cannot have every character directly mapped to a key, so the IME converts phonetic or structural input into the target characters.
The basic mechanism of a Japanese IME involves typing readings in romaji or kana input, then pressing the conversion key to transform them into kanji-kana mixed text. The workflow of displaying candidates, selecting, and confirming is fundamental to Japanese input. Many Japanese IMEs offer predictive conversion, presenting context-aware candidates after just a few keystrokes. Some IMEs also send the typed reading to a server and receive candidates from a cloud dictionary, so new words and proper nouns appear as candidates without waiting for a local dictionary update.
Major Japanese IMEs include Microsoft IME on Windows, Japanese Input on macOS (formerly Kotoeri), Google Japanese Input, and ATOK. Microsoft IME comes pre-installed with Windows, making it the default choice that works without any additional installation. Google Japanese Input highlights its vocabulary collected from web text as a distinguishing feature, so new words and proper nouns tend to appear among its candidates. ATOK, a paid IME by JustSystems, is marketed on its context-aware conversion and field-specific dictionaries. In the Chinese-speaking world, Pinyin input is mainstream, with Sogou Input and Baidu Input as representative examples.
In web application development, handling IME composition events is a critical challenge. While a user is composing text with an IME, "uncommitted text" appears in the text field. Processing input or keydown events during this state would act on intermediate states before conversion is confirmed. The standard pattern is to detect composition start with compositionstart, detect confirmation with compositionend, and suppress event processing in between.
A common IME-related issue involves duplicate input in real-time search and autocomplete features. When a user tries to type "東京" (Tokyo), the intermediate states "と", "とう", "とうき"... may be sent as search queries sequentially. Properly handling the isComposing property and composition events prevents this problem.
For character counting, how to handle uncommitted text during IME composition is a key design consideration. Real-time character counters may either include or exclude uncommitted text, resulting in different behaviors. Some character counting tools target only confirmed text, while other implementations also display counts including uncommitted text as input feedback.