この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2013年12月)

2013年12月19日

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: (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は修正していません。これらのプラットフォームは今後、複雑な修正は行わない予定です。貢献者がパッチを提出してきてくれた場合にはレビューは行いますが。

関連するかもしれないエントリ

bug-org 912858を含むエントリ