入力メソッド (IME)

キーボードから文字を入力するためのソフトウェア。日本語や中国語など、キーボードに直接対応しない文字の入力を可能にする。

入力メソッド (Input Method Editor, IME) は、キーボードのキー数を超える文字体系を持つ言語で文字入力を実現するソフトウェアです。日本語、中国語、韓国語など、数千から数万の文字を持つ言語では、限られたキー数のキーボードから直接すべての文字を入力することは不可能であり、IME が読みや部首などの入力を目的の文字に変換する役割を担います。

日本語 IME の基本的な仕組みは、ローマ字入力またはかな入力で読みを入力し、変換キーで漢字かな交じり文に変換するというものです。変換候補の表示、選択、確定という一連の操作フローが日本語入力の基本です。近年は予測変換の精度が飛躍的に向上し、数文字入力しただけで文脈に応じた候補が表示されるようになりました。クラウド辞書の活用により、新語や固有名詞への対応も迅速になっています。日本語入力効率化の書籍で入力速度を向上させるテクニックを学べます。

主要な日本語 IME には、Windows の Microsoft IME、macOS の日本語入力 (旧ことえり)、Google 日本語入力、ATOK などがあります。Microsoft IME は Windows に標準搭載されており最も利用者が多く、Google 日本語入力は Web 上の膨大なテキストデータを活用した変換精度の高さが特徴です。ATOK はジャストシステムが開発する有料 IME で、文脈を考慮した高精度な変換と豊富な辞書が強みです。中国語圏では拼音入力 (ピンイン入力) が主流で、搜狗输入法や百度输入法が広く使われています。

Web アプリケーション開発では、IME の変換中 (composition) イベントの処理が重要な課題です。IME で文字を入力している最中は「未確定文字列」がテキストフィールドに表示されますが、この状態で input イベントや keydown イベントを処理すると、変換確定前の中間状態が処理されてしまいます。compositionstart で変換開始を検知し、compositionend で変換確定を検知して、その間のイベント処理を抑制するのが標準的なパターンです。

IME に関するよくある問題として、リアルタイム検索やオートコンプリート機能での二重入力があります。ユーザーが「東京」と入力しようとして「とうきょう」と打つ過程で、未確定の「と」「とう」「とうき」...が逐次検索クエリとして送信されてしまうケースです。isComposing プロパティや composition イベントを適切にハンドリングすることで、この問題を回避できます。Web アプリ国際化の書籍で IME 対応の実装パターンが解説されています。

文字数カウントとの関連では、IME の変換中に表示される未確定文字列をどう扱うかが設計上のポイントになります。リアルタイムで文字数を表示するカウンターでは、未確定文字列を含めてカウントするか、確定後の文字列のみをカウントするかで挙動が変わります。多くの文字数カウントツールは確定後の文字列を対象としますが、入力中のフィードバックとして未確定文字列も含めたカウントを表示する実装もあります。