Internet Explorer (以下IE) はCSSを独自に拡張し、ime-mode
プロパティをサポートしています (昔の Mac 版等、 Windows 版以外の IE では実装例がありませんでした)。このプロパティを Web ページ上のエディタ (input
要素や textarea
要素) に指定しておくと、そのエディタにフォーカスが当たった時 (キャレットと呼ばれる縦棒が点滅している状態になった時) に IME の状態を強制的に変更してしまう、というものです (詳しい仕様は MDC のドキュメントを参考にしてください)。
前回、ご紹介したように、Firefox 3 では IME の状態管理能力が飛躍的に向上したので、この独自拡張をサポートすることが可能になり、実装しました。
これにより、例えば数字しか入力しなくて良い場所等では、 IME がパスワードエディタの場合と同様に無効化されるかもしれません (これは、その Web ページが ime-mode
を利用しているかに依ります)。
この新機能は使いどころを間違えなければユーザのみなさんの手間を軽減することができるものですが、逆に言えば、ただのお節介な機能になってしまう可能性もあるものです。もし、ユーザのみなさんがこの機能を気に入らない場合、ユーザスタイルシートに以下の行を追加すると ime-mode
の指定を無効にすることができます。
input, textarea { ime-mode: auto !important;}
プロファイルの chrome フォルダ内に、userContent.css というテキストファイルを作成して、上記の3行を貼り付けて保存してください。既にファイルがある場合、ファイルの末尾に上記3行を追加してください。そして Firefox 3 を再起動すればこの設定が有効になります。
プロファイルのパスはリリースノートを参照してください。
では、 Web デザイナの方にはもう少し詳しい解説をさせて頂きます。
まず、最初に Web デザイナのみなさんにお願いしたいのですが、ime-mode
はユーザのみなさんを非常に混乱させたり、不快な思いをさせる可能性のあるプロパティであることを認識してください。
通常、多くのユーザは最後に自分が設定した IME の状態を記憶しています。そのため、active
値や inactive
値での状態変更はユーザの記憶と実際の状態に齟齬を産む可能性があるため、使用しないことを強く推奨します。
また、メールアドレスや電話番号等の、通常は日本語を使わないような項目であっても、ユーザは IME の辞書に入力したい内容を登録している可能性があります。このような場合に、disabled
値で IME を無効にしてしまっていると、ユーザはその項目を入力できない可能性があります。時刻の入力等、非常に限られた場合を除き、disabled
値の利用もお勧めできるものではありません。
そしてMac 版にはさらに特殊な問題があります。Mac 版での disabled
値は、一部の欧米のキーボードレイアウトのみを利用できるようにした上で、そのうちのどれか一つが自動的に選択される、という動作になります。そのため、パスワードエディタがフォーカスを失う時に、元のキーボードレイアウトに自動で変更されません。これは、バグではなく、Mac のパスワードエディタの標準的な動作です。つまり、Mac 版のユーザにとっては、disabled
値は active
値や inactive
値と似た動作になるので、これらと同じように混乱して、不快に感じるかもしれません。
このような理由から、ime-mode
は、イントラネットでのアプリケーション等、ユーザの方がそのページのフォームをかなり高い頻度で、何度も利用する ―― つまり、ユーザもそのページのフォームについて熟知している ―― 場合にのみ、ユーザに不快感を与えずに利用してもらえるということになります。つまり、一般的な Web サイトでは使うべきではありません。
これ以外にも、使用の際にはいくつか注意点があります。
Firefox 3 の ime-mode
はパスワードエディタ (<input type="password">
) にも適用が可能です。この動作は IE のものとは異なっています。互換性は出来る限り維持したかったのですが、Mac の一部の言語のユーザが、Firefox 2 以前に英数字以外の文字でパスワードを作成している可能性を考慮すると、ユーザスタイルシートからパスワードエディタの挙動を Firefox 2 と同様に変更できるようしなくてはいけなかったからです。
active
値と inactive
値は Linux 版では normal
値と同様の扱いになります。つまり、自動で IME がオンになったり、オフになったりすることはありません。これはプラットフォームの仕様に依るものです。また、Mac 版では、大半の日本語環境では、Windows とほぼ同様に IME のオン、オフができますが、他のキーボードレイアウトも登録している様な特殊な環境下では、うまく機能しない可能性があります。このような環境の場合、ユーザを混乱させてしまう可能性が非常に高いのでこれら二つの値は利用しないことをお勧めします。
このように、ime-mode
プロパティは非常に癖のあるものですので、利用するかどうかを熟考してから利用して頂けるよう、お願いします。
補足:
今回は W3C 等のいかなる Web 標準仕様にもない、IE の独自仕様を実装することになりました。しかし、これは Mozilla が Web 標準仕様を軽視している訳ではありません。
ime-mode
の仕様は他の仕様とは異なり、プラットフォームに依存するため、標準化が困難だと予想されます (CSS は PC のためだけのものではありません)。しかし、日本のイントラネットアプリケーション等での需要を重視し、実装することにしました。
また、なんらかの Web 標準仕様と機能がバッティングすることがないことも実装を決断した理由のひとつであることを付け加えておきます。