Mozilla Japan ブログ

Mozilla、Firefox、Firefox OS、Thunderbird の最新情報をお伝えします

個別記事アーカイブ

Firefox 3 の修正内容のご紹介 その2 — IE 独自拡張 CSS: ime-mode プロパティのサポート

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 標準仕様と機能がバッティングすることがないことも実装を決断した理由のひとつであることを付け加えておきます。

前後の記事

前の記事: Firefox 3 の修正内容のご紹介 その1 — IME の状態管理の改善
次の記事: Firefox 3 Download Day キャンペーンでギネス世界記録に挑戦!

トラックバック (2)

Firefox 3 の修正内容のご紹介 その2 - IE 独自拡張 CSS: ime-mode プロパティのサポート from すめるまん Broken Diary |

IE 独自拡張の中でもよくお客さんからime-modeを指定でとか言われて検証のために泣く泣くIE立ちあげてせつない思いをよくしていました。 中野さんがしっかりと書いていますが、ime-mode指定されると次の入力とかで結構困ったりするんですよね。それこそ、画面の全フィールド

Firefox 3 で ime-mode をサポートしていました・・・ from 趣味と実益を追求する 情報ブログ - FUZ! |

今日、会社でこんな話しが・・・「テキスト入力の\"ime-mode\"ってIE(Internet Explorer)でしか使えないんだっけ?...

コメント (1)

嫁 | 2008/07/10

半角英数字しか受け付けない欄で ime-mode を使って IME を停止する機能は分かります。

が、全角文字「も」入力できる欄で、問答無用に IME を有効にするのはどうかと思います。