無効化されたフォームウィジェット上でイベントが発生するようになりました

公開日: | カテゴリー: DOM

概要

Firefox 65 以降、<input><textarea><button><select> といったフォーム要素上で、それらが無効化されている場合にも標準や独自のイベントを発生させることが可能となりました。この変更は、ブラウザー間の相互運用性を改善させ、ウェブ開発者のニーズに応えることを目的としたものです。

要素が無効化されフォーカス不能なことから、mousedownmouseupclickfocusinput といったほとんどのイベントは通常のユーザーインタラクションでは発生しませんが、mouseovermouseentermousemovemouseoutmouseleave は発生するようになります。これは Google Chrome、Apple Safari、Microsoft Edge の現行バージョンとは異なる点です。

意図せぬ挙動を防ぐため、イベントハンドラー内で処理を進める前に、必ずそのフォーム要素上の disabled プロパティを確認した方が良いでしょう。

更新: Firefox 67 以降、CSS アニメーションとトランジション関連のイベントも、無効化された要素上で発生するようになりました。

参考資料