Acid2テスト
初回投稿日時: 2007年11月08日20時25分19秒
最終更新日時: 2007年11月09日05時27分48秒
カテゴリ: CSS
SNS:
Tweet (list)
wikipediaで編集に関してしょうもない議論が行われてるみたいで、ウチの引用、リンクでもめてるみたいです。(元々は私の日記のエントリを出典としたことが、時期が古いし個人ブログなので残念ながら出典にはなりません
という変な理屈で削除されたことが原因のようです。確かに2005年のエントリなので最近のものではないですが、Acid2自体、そんなに新しいものでもないし、変化するものでもないしと、変な理由ですね。それにリンクを削除する意味も無いということで問題になったようです。でも個人の書いたコンテンツが出典もとになれないなら、wikipediaの多くの出典を見直さないといけなくなるんじゃないでしょうか??) 外部資料に頼らずに少しは自分で調べろよって感じですが(そもそも詳しく無い人が編集してるってのはどうよ? と思いますが……)、
で、暇があるのでちょっとAcid2のCSSに関して調べてみました(あんまり詳しく検証するのは難しすぎるのでやりません)。正規表現を使ってCSSを置換して指定されているスタイルを単純に抽出した結果から数えているのでひょっとすると細かい数字は不正確かもしれませんが、まあ参考程度に、ということで。
使われている(≠テストされている)プロパティ
background
色キーワード、dataスキームによる画像指定、fixed。
border
styleはsolidと無指定、colorはtransparentと色キーワードと無指定、widthはlength値(em)と0と無指定、存在しない文字列によるエラーテストあり。
border-bottom
styleはsolidのみ、colorはキーワードのみ、widthはlength値(em)と無指定。
border-bottom-color
inheritのみ。
border-color
色キーワードによる指定のみ、ひとつのみでの指定か、四つ全部での指定のみ。
border-left
styleはsolidのみ、colorは色キーワードのみ、widthはlength(em)のみ。
border-right
border-left
と同様。border-spacing
0のみ。
border-style
noneとsolidのみで、二つ指定と三つ指定のみ。
border-top
styleはsolidと無指定、colorはキーワードと無指定、widthはlength(em)と0。
border-top-color
inheritのみ。
border-width
length値(em)と、0で、一つ指定と、二つ指定のみ。
bottom
length値(em)のみ。
clear
bothのみ。
color
色キーワードのみ
content
空文字列指定のみ。
display
inline、block、table、table-cellのみ。
float
left、right、inheritのみ。(noneは無し)
font
font-sizeがlength値(pxとem)、line-heightが無しとlength値(px)、font-familyはserifかsans-serifのみ。inheritもあり。他の指定は一切なし。
font-size
length値(em)のみ。
font-weight
bolderのみ。
height
length値(pxとem)か、パーセント値、そして0。
left
length値(em)のみ。
line-height
length値(em)のみ。
list-style
noneのみ。
margin
0かlength値(emとpx)で、0のみの指定を除いて、一つ指定、二つ指定、三つ指定、四つ指定と全てあり。autoは単独での指定のみ。
margin-bottom
length値(em)のみ。
margin-top
length値(em)のみ。
max-height
length値(mmとem)のみ。
max-width
length値(em)のみ。
min-height
length値(em)とパーセント値。
overflow
hiddenのみ。
padding
0かlength値(emとpx)で、0のみの指定を除いて、一つ指定、二つ指定、三つ指定、四つ指定全てあり。
position
relative、absolute、fixedのみ。staticは無し。
right
length値(em)のみ。
text-align
leftとrightのみ。
top
length値(em)と0のみ。
vertical-align
bottomのみ。
white-space
preのみ。
width
パーセント値と、length値(pxとem)と、auto値。単位無しでのエラーテストあり。
z-index
1と2のみ。
とまあ、こんな感じ。実際には値の上書きのテストとかあると思われるので、テストされるプロパティ値はもっと減るんではないかと思われます。
まずは値のテストが行き渡っていないことが目立ちます。例えばlength値は非常によく使われるものしかテストしていません。色に関してはキーワードしか利用されておらず、よく利用されるRGB値を直接指定する方法は全くテストされていません。各種キーワードのテストもかなり少ないことが分かります。
また、CSS2.1ではauralやpaged、interactiveなプロパティを除外しても、85個のプロパティがありますが、上記のように列挙されたプロパティは41個のみでした。半分にすら到達していません。
Acid2が全般的なテストではなく、ひとつのテストケースであることが分かってもらえましたでしょうか。もちろん、たったひとつのテストケースでここまでテストできている、というのは素晴らしいアイデアと技術のたまものですが、ブラウザを実際にテストする側からすれば、全ての仕様がテストできる訳ではないことは一目瞭然です。
Acid2はクリアすべき目標ではありますが、これが全てではありません。例えばこのテストにテキストが全く無いことに気づいていますか?(もちろん、見出しではなくて、テスト内部にということです。) Gecko1.9(trunk)が初めてテストをクリアした段階では、まだ多くの言語のテキストをまともに表示することはできませんでしたが、テストはクリアできていました。Acid2のみをブラウザの唯一のテスト結果として信仰するのであれば、その当時のバグだらけのGecko1.9は、今多くの人が毎日使ってくれているFirefox2のGecko1.8.1よりも素晴らしいものだということです。
ちなみにここまで調査、書くのに約一時間半でした。