Mozilla Hackathon 2013 春に参加しました
2013年4月27日から28日に行われたMozilla Hackathon 2013春に参加しました。今回はFirefoxを使っていて普段気になっていたバグの修正を試みました。
1. 黒い画像に対するイメージマップのフォーカスリングが見えない
338033 – No visible focus indicator on image map areas with black background
Firefoxでarea要素にoutlineプロパティを設定しても無視され、フォーカスリングは常に黒い点線として描画されます。このため黒い画像ではarea要素のフォーカスリングを視認できないという問題がありました。
このarea要素に対するフォーカスリングらしきものは、イメージマップが設定されている画像のframeが、area要素のフォーカスの有無をチェックして、プリミティブなレベルで黒い点線を描画しています。この点線の色はハードコードされているので黒い画像でも黒い点線が描画されます。結果、フォーカスリングが視認できないものになっています。
それならばということで、黒い点線を描く前に白い実線を書くパッチを作りました。これでも黒と白が交互に並んでいる画像には対応できませんが、謎実装のバンドエイドとしてはこの程度ではないかと勝手に思いました。パッチ自体は以前から作ってあったもののを当日中野さんにコミットいただきました。mozilla-centralにも反映されてます。
2. イメージマップが設定されている画像が読み込まれていない場合、フォーカスを移動できなくなる
866373 – Keyboard focus cannot be moved if an image of image map is not loaded.
これはイメージマップが設定されている画像の読み込みに失敗すると、その直前の要素からフォーカスを移動できなくなる問題です。画像の直前の要素にフォーカスが当たっていた時にTabキーを押しても、どこにも進めなくなっていました。これもイメージマップのフォーカス処理が特殊だったため発生していました。
Hackathonではテストケース・パッチ・自動テストの作成を行いました。
3. SVGのアクセシビリティオブジェクトの作られかたが微妙な件
最近FirefoxでもSVGの要素についてアクセシビリティオブジェクトが作られ始めたのですが、これらの作られかたが微妙な問題です。これは調べ物が中心でした。少なくともtitle要素とdesc要素の扱いが逆なのは何とかします。
4. その他やったこと
saneyuki_sさんにMercurial Queuesを教えてもらいました。自分の環境の中でパッチを管理できるのが良い感じだと思います。
Mozilliansにプロフィールを作ってみました。どうぞよろしく。
MDNドキュメントのタイトルだけがおかしかったものを直しました(ROLE_GRAPHIC)。