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

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

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

2011年11月23日

Bug-org 704049 Radio button shouldn't be checked by prevented default click event when any radio buttons in same group are not checked
初回投稿日時: 2011年11月23日08時42分36秒
カテゴリ: Google Chrome Javascript Mozilla Core Mozilla11 Safari バグ修正
SNS: (list)

clickイベントをpreventDefault()していても、選択されたものがないラジオボタンのグループ内では、そのクリックしたラジオボタンにチェックが選択されてしまうというバグです。

Geckoではスタイル処理の問題から、DOMイベントを発行する前にチェックボックスやラジオボタンは一度選択状態にし、DOMイベントを発行し終わった後にdefaultPreventedtrueだった場合には状態を元に戻す、という処理を行っています。この戻すときの処理に問題があり、一度選択状態にする際に直前に選択されていたラジオボタンを記憶しておくのですが、これが復元時にnullだった場合に、ラジオボタンとして処理せず、選択状態を復元していませんでした。

ちなみに、全く同じバグがWebKitにも存在しているのでWebKitも全く同じミスをしているのかもしれません。WebKitな方は報告されると良いと思います。

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

bug-org 704049を含むエントリ

このエントリへのリンク元

このエントリを参照しているURIはありません。