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

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

もずはっく日記(2004年9月)

2004年9月12日

Bug 2497 アドレスバーと<INPUT TEXT>でアンダーラインが見えない #2
初回投稿日時: 2004年09月12日04時09分38秒
最終更新日時: 2004年09月12日04時14分51秒
カテゴリ: Mozilla Core
SNS: (list)

Macでは問題があるということで春永さんがreopenした。 ただ、Macで今まで何の症状もなかったという話と、今回のスクリーンショットを見る限りではMac固有のソースコードに問題があると思う。 今回のパッチは単に、line-height1にするだけのものだが、理屈としてはこれは正しいはずである。他のOSでは、一行入力用のinput要素の場合、その内容領域は一行分のスペースのみが割り当てられている。ここに、1より大きいline-height値を与えると、行間のためのスペースを無理矢理とろうとする。このため、文字が押し下げられていたのが今までのバグの原因である。それに対してMacでは綺麗に表示されていたというのは、一行分以上の内容領域が与えられていたか、行間のためのスペースを中和するだけ押し上げられていたかのいずれかの方法を、Mac単独でアドホックに対応したのではないだろうか。最初のスクリーンショットにあるように、ボタンのテキストの位置を見ると、意図的に後者の手法をとっているように見えるのだがどうだろうか。

私はMacユーザへの対策として一時的にバックアウトされるのは仕方が無いと思う。だが、原因の所在を明確にしておかなくては、このバグは事実上wontfixと同じ扱いになってしまう。なぜなら、もうひとつの解決策である内容領域を広げるという手段は使えないからだ。

文字の大きさを現在のままとし、line-height: normal;に耐えられる内容領域を確保しようとすると、そのinput要素のある行の行高自体が大きくなり、様々なページでレイアウトが崩れる可能性が高い。そのため、この手段は使えない。では逆に、文字の大きさを小さくして余裕をもたせようとする。すると、今度は小さすぎてアクセシビリティの問題が出てくるのでこれもできないだろう。バックアウトするかどうかは別として、今回の修正が最終的に取り入れられ、MacのWidgetまわりを他のOSにあわせることがより良い修正方法であると思う。

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

bug 2497を含むエントリ

Bug 2497 アドレスバーと<INPUT TEXT>でアンダーラインが見えない #4

Bug 2497 アドレスバーと<INPUT TEXT>でアンダーラインが見えない #3

Bug 2497 アドレスバーと<INPUT TEXT>でアンダーラインが見えない