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

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

もずはっく日記(2011年2月)

2011年2月23日

Geckoの未確定文字列処理とWebアプリケーションとの相性は良くない
初回投稿日時: 2011年02月23日17時59分49秒
最終更新日時: 2011年02月23日18時01分23秒
カテゴリ: Firefox HTML Javascript Mozilla Core 雑談
SNS: (list)

某氏から教えてもらった愚痴。

まーーーーーーーーたFirefoxのバグか!!(日本語入力関係)本当にいらっとするね!!Firefox滅びろ!!!!(暴言)

Firefoxでは、keypressイベントをセットしているtextareaで日本語入力中にoverflow-y: scroll;をつけたりけしたりすると文字が謎にコピペされるバグがあるようです。バグ報告したら直してくれるのかもしれないけど、Firefoxだしどうでもいいや。

ああもうイライラする。Firefoxのkeypress、keydownイベントで変なバグが。ChromeとIEなら許せるのにFirefoxだと異常に腹がたつのはなぜ!!どんだけ俺Firefox嫌いやねん!!あああFirefox絶滅しろー!!

DOMやHTMLの仕様でIMEの未確定文字列に関する挙動というのはほとんど定義されていなくて(例えば、inputElement.value = "foo";で、未確定文字列があった場合、どうするの? という基本的な挙動が未定義だったり)、何をもってバグと言われているのか全く想像できませんが、まあ、Geckoの未確定文字列がある状態での挙動の不審さは自覚しております。

でも、Geckoは未確定文字列がある場合の挙動は不自然なので、極力、特に日本語環境では未確定文字列がある状態ではキーイベントを生成しないようにしています。これは、未確定文字列の有無を意識せずにWebアプリケーションの開発者がキーイベントのハンドリングをできるというように、という配慮でもあります。こうしておかないと、IMEを使うことがない言語圏の開発したWebアプリでのIMEの利用というのが絶望的になってしまうからです。

Gecko独自のcompositionイベントとかtextイベントを拾ってまで無理矢理処理しているのであれば、それはWebアプリケーションの開発者の自己責任としか言えない面はあります。ここに互換性とか求められてもこれから改善していくにあたって確実に変更を入れなくてはいけないところなので(まあキーイベントも実はDOM2には正式仕様がないイベントですが、これってWebアプリ開発者にはさすがに釈迦に説法かと思います、というか思いたいですが)、既にこれらのイベントをハンドリングしているWeb開発者の方はFx4の次のバージョンでの互換性にご注意ください。

現在は、次のアルファ版でDOM3のキーイベントやcompositionイベントまわりの下準備が終われば良いな、ぐらいの感覚で作業中です。レビュアーとあまりもめなければ、Gecko 2.0の次のコアではかなりこの辺はDOM3 Eventsに対応して、Webアプリケーションが作りやすくなるのではないかなと思います。

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

関連するかもしれないエントリを発見できませんでしたが、無いとは限りません。