Bug-org 388744 Off-by-one error in Windows drawing with inline-block and float
初回投稿日時: 2008年03月30日20時39分39秒
カテゴリ: Mozilla Core バグ修正
SNS:
Tweet (list)
Bug 6069の修正で修正できてしまったバグです。
Bug 6069がレイアウト結果を変えてしまうため、reftestを繰り返していたのですが、当初はfont-size: 0;
の場合のテストがクリアできませんでした。その原因を調べてみると、font-size: 0;
の場合、その要素は存在するが、内容が空であるかのようにレイアウトを行うという妥協が入っていることが分かりました。(現状の音声読み上げブラウザ等が@media
を使わずにスクリーン上でのdisplay: none;
を読み上げ時等にも使ってしまうので、コンテンツ側で利用されるハックのためのようです。) つまり、font-size: 0;
の場合には下線等の描画場所を確保してはいけないというのがreftestをクリアできない理由だったのですが、WindowsとMacはOSの仕様上、サイズゼロのフォントは作れないのでgfxはコードの単純化の都合上、最低でも1pxのフォントを作るようにしていたため、サイズゼロの場合にgfxから返ってくるメトリクスが信頼できない、ということが分かりました。
そこでgfx上で、フォントサイズがゼロだった場合には各メトリクスをゼロ固定とすることでlayout側に特に変更を加えずにこの問題を解決させてみると、このバグまで修正されてしまった、という訳です。