Shishimushi

Wii Opera のCSSセレクタ対応状況

The Rendering Engine for the Wii という Tim の記事の中に、

New to the rendering engine used on the Wii is support for more CSS 3 selectors, partial text-shadow support (colors aren't correct),...

The Rendering Engine for the Wii | Stranger, yet...

とあったので、具体的に何が対応したのかを調べてみた。

Opera CSSセレクタチェック

ついでに、Opera 7.54,8.54,9.00,9.10,9.20 も調べて一覧表にした。

  1. CSS3.info の CSS Selectors testsuite を利用した。
  2. 対象は、Opera 7.54u2(build3929),8.54(build7730),9.00(build8501),9.10(build8679),9.20(build8771),Wii(Opera 9.10 build1621)
    1. Opera 6 は CSS3.info に行った途端クラッシュするので対象から外した。
    2. Mobile Opera は持ってない。
    3. DS Opera は無くした。
    4. ちなみに、Opera videoは 9.20 と同じ結果だった。
  3. 微妙に結果が異なることがあったのでそれぞれ4~5回チェックを行い、前後の対応から見てそれっぽいのを採用した。
  4. 結果は CSS3.info のそれに準じた。
    1. ただし、順番は W3C Working Draft - Selectors と同じように並び替えた。
    2. OK だの n out of n failed だのから詳細ページへのリンクを張った。
    3. E:active,E:hover,E:focus,E::selection はテストできないので、自分で作ったテストページでチェックした。
      1. これらの結果については斜体の小文字になっており、当然 CSS3.info へのリンクも張っていない。
      2. Wii の E::selection についてはチェックのしようがなかったが、とりあえず no としておいた。
CSS level Selectors 7.54u2 8.54 9.00 9.10 9.20 Wii
2 * OK OK OK OK OK OK
1 E OK OK OK OK OK OK
2 E[foo] OK OK OK OK OK OK
2 E[foo="bar"] 6 out of 17 failed 3 out of 17 failed 3 out of 17 failed 3 out of 17 failed 3 out of 17 failed OK
2 E[foo~="bar"] 1 out of 17 failed OK OK OK OK OK
3 E[foo^="bar"] 10 out of 20 failed 10 out of 20 failed 4 out of 20 failed 4 out of 20 failed 4 out of 20 failed OK
3 E[foo$="bar"] 10 out of 20 failed 10 out of 20 failed 4 out of 20 failed 4 out of 20 failed 4 out of 20 failed OK
3 E[foo*="bar"] 10 out of 16 failed 10 out of 16 failed OK OK OK OK
2 E[hreflang|="en"] 1 out of 19 failed OK OK OK OK OK
3 E:root 1 out of 1 failed 1 out of 1 failed 1 out of 1 failed 1 out of 1 failed 1 out of 1 failed OK
3 E:nth-child(n) 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 2 out of 88 failed
3 E:nth-last-child(n) 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed
3 E:nth-of-type(n) 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 2 out of 88 failed
3 E:nth-last-of-type(n) 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed 47 out of 88 failed
2 E:first-child 1 out of 7 failed 1 out of 7 failed 1 out of 7 failed 1 out of 7 failed 1 out of 7 failed OK
3 E:last-child 5 out of 7 failed 5 out of 7 failed 5 out of 7 failed 5 out of 7 failed 5 out of 7 failed 5 out of 7 failed
3 E:first-of-type 7 out of 10 failed 7 out of 10 failed 7 out of 10 failed 7 out of 10 failed 7 out of 10 failed 7 out of 10 failed
3 E:last-of-type 7 out of 10 failed 7 out of 10 failed 7 out of 10 failed 7 out of 10 failed 7 out of 10 failed 7 out of 10 failed
3 E:only-child 3 out of 5 failed 3 out of 5 failed 3 out of 5 failed 3 out of 5 failed 3 out of 5 failed 3 out of 5 failed
3 E:only-of-type 3 out of 5 failed 3 out of 5 failed 3 out of 5 failed 3 out of 5 failed 3 out of 5 failed 3 out of 5 failed
3 E:empty 2 out of 6 failed 2 out of 6 failed 2 out of 6 failed 2 out of 6 failed 2 out of 6 failed 2 out of 6 failed
1 E:link OK 1 out of 2 failed 1 out of 2 failed OK OK OK
1 E:visited OK 1 out of 2 failed 1 out of 2 failed OK OK OK
1 and 2 E:hover ok ok ok ok ok ok
1 and 2 E:active ok ok ok ok ok ok
1 and 2 E:focus ok ok ok ok ok ok
3 E:target 1 out of 3 failed 1 out of 3 failed 1 out of 3 failed 1 out of 3 failed 1 out of 3 failed OK
2 E:lang(fr) 1 out of 11 failed 1 out of 11 failed 1 out of 11 failed 1 out of 11 failed 1 out of 11 failed OK
3 E:enabled 1 out of 2 failed 1 out of 2 failed OK OK OK 1 out of 2 failed
3 E:disabled 1 out of 2 failed 1 out of 2 failed OK OK OK 1 out of 2 failed
3 E:checked 1 out of 2 failed 1 out of 2 failed OK OK OK 1 out of 2 failed
1 E:first-line OK OK OK OK OK OK
1 E::first-line OK OK OK OK OK OK
1 E:first-letter OK OK OK OK OK OK
1 E::first-letter OK OK OK OK OK OK
3 E::selection no no no no no no
2 E:before OK OK OK OK OK OK
2 E::before OK OK OK OK OK OK
2 E:after OK OK OK OK OK OK
2 E::after OK OK OK OK OK OK
1 E.warning OK OK OK OK OK OK
1 E#myid OK OK OK OK OK OK
3 E:not(s) 2 out of 4 failed 2 out of 4 failed 2 out of 4 failed 2 out of 4 failed 2 out of 4 failed OK
1 E F OK OK OK OK OK OK
2 E > F OK OK OK OK OK OK
2 E + F OK OK OK OK OK OK
3 E ~ F 2 out of 3 failed 2 out of 3 failed OK OK OK OK

チェック結果について

Opera 9.20 のチェック結果において、Opera 9 の CSS サポートでは"Yes"であるはずの E[foo="bar"],E[foo^="bar"],E[foo$="bar"],E:first-child,E:empty,E:lang(fr) が、failed となっている。詳細は、

failed BE[foo="bar"]
<div align="hogebar">
<div align="bar hoge">
<div align=" bar ">
failed AE[foo^="bar"]
<div foo="hogebar">
<div foo="hoge bar">
<div foo="hoge-bar">
<div foo=" bar ">
failed AE[foo$="bar"]
<div foo="barhoge">
<div foo="bar hoge">
<div foo="bar-hoge">
<div foo=" bar ">
failed BE:first-child
<div> <div id="insertBefore"></div> </div>
var ib = document.getElementById('insertBefore'); ib.parentElement.insertBefore(document.createElement("div"), ib);
failed AE:empty
<div></div>
<div><!-- Just a comment --></div>
failed BE:lang(fr)
<div align="enUS">

とあり、failed Aが未対応、failed Bがバグとのこと。Opera,CSS3.info 双方のチェックの妥当性については僕の知るところではないが、とりあえずそういうことらしい。

Wii Opera

さて、Tim の言うNew to the rendering engine used on the Wii is support for more CSS 3 selectorsとは何か。

Opera の公式文書を全てとする場合
即ち、failed AE[foo^="bar"],failed AE[foo$="bar"] 及びfailed Bを対応と見なす場合は以下の5つ。
E:root,E:target,E:not(s),E:nth-child(n),E:nth-of-type(n)
CSS3.info の結果を全てとする場合
即ち、failed Aが未対応、failed Bがバグと見なす場合は以下の5つ。
E[foo^="bar"],E[foo$="bar"],E:root,E:target,E:not(s)

共通するのは E:root,E:target,E:not(s) の3つか。ややこしい。

単純に、CSS3.info のチェックを全てと考え、Wii Opera で修正・追加されたセレクタ(CSS1~3)を見た方がわかりやすいかもしれない。

  1. E[foo="bar"]
  2. E[foo^="bar"]
  3. E[foo$="bar"]
  4. E:root
  5. E:first-child
  6. E:target
  7. E:lang(fr)
  8. E:not(s)

合計8つということで、The rendering engine used by the Internet Channel is the most advanced rendering engine publicly available from Opera Software.という一文にも頷ける。この分だと、今後のデスクトップ版にも期待できそうだ。

参考リンク

投稿者:芦塚 | 投稿日時: 2007年 4月19日(木) 13:19

 トップページ 次へ