Bug-org 912858 Implement KeyboardEvent.key for printable keys (except dead key handling)
初回投稿日時: 2013年12月19日14時42分00秒
最終更新日時: 2013年12月19日14時42分26秒
カテゴリ: Android Events Gonk GTK Mac Mozilla Core Mozilla29 Windows バグ修正
SNS:
Tweet (list)
今まで、D3E仕様に不明瞭なところがあったので、KeyboardEvent.key
の、プリンタブルキーの値はMozPrintableKey
値を暫定的に設定していましたが、仕様が概ね固まったので、デッドキー以外に関しては最新仕様にあわせたものに修正されました。現行仕様は以下のようになっています。
- 文字列が入力される時
- 入力される文字列
- モディファイアキーにより、文字列が入力されない、もしくは制御文字の場合
-
- OSが参考に提供する文字列が変わる場合(Macのcommandキー押下時)
- その提供された文字列(多くの場合、QWERTY配列のアルファベット)
- AltGrキー、もしくはMacのoptionキーが押されている場合
- AltGrキーを押さなかった場合に入力される文字列
- それ以外のモディファイアキーが押されている場合
- Shiftキーを除いたモディファイアキーが押されていない場合に入力される文字列
また、Geckoでは、Windowsのカナロックは無視します。Macでは、ことえりのかな入力時や、ハングル・中国語IMEではキーボードレイアウトを変更しますが、IME依存の動作でWebアプリにとって互換性テストの負担が大きすぎるので、その時のASCII Capableキーボードレイアウトを利用します。
プラットフォームを問わず、プリンタブルキーが文字を入力しない場合、例えば、テンキーのカンマキー(セパレーターキー)が、ブラジルのポルトガル語レイアウト以外では文字入力にならない場合、空文字列になります。
なお、今回の修正では、QtとOS/2は修正していません。これらのプラットフォームは今後、複雑な修正は行わない予定です。貢献者がパッチを提出してきてくれた場合にはレビューは行いますが。