Smart Communication Design Company
ホーム > ナレッジ > Blog > Web標準Blog > 2010年5月 > Firefox 4のHTML5パーサと:-moz-any()

Firefox 4のHTML5パーサと:-moz-any()

2010年5月14日
フロントエンド・エンジニア 矢倉

HTML5の構文解析処理について、以前「HTML5の構文解析がもたらすもの」という記事で触れたことがあります。HTML5パーサはFirefoxで実装が進められているのですが、先日そのパーサが開発版ではデフォルトで有効になりました。これに関連し、FirefoxのHTML5パーサを開発しているHenri SivonenがMozilla Hacksにパーサの概要について記事を書いています。翻訳をmodestに投稿したので、そちらもお読みいただければと思います。

Henriはまた、HTML5のValidator “Validator.nu” も開発しています(Firefoxのコードは、このValidator.nuとベースが同じです)。一昨日のことですが、HTML5に埋め込んだSVGとMathMLの検証もValidator.nuで行えるようになったそうです。

このニュースを参照するかたちで、OperaのAnne van Kesterenが、HTML5のパーサのあゆみについて自身のBlogで取り上げています。

記事によると、初期のHTML5仕様 (このときはWeb Applications 1.0と呼ばれていました) では既存のHTML仕様を拡張するもので、構文解析アルゴリズムは定義されていなかったそうです。しかし、作業を進めていくうちに基盤の定義が必要になったことから、アルゴリズムの定義が始まったとのことです。

Mozillaのようにパーサを置き換えるという大掛かりな変更は、他のブラウザーでは行われていないように思います。しかし、HTML5の構文解析アルゴリズムに準拠する作業は進められており、Internet Explorer 9でもツリー構築処理などが変更されるようです。

さて、少しパーサからは離れますが、先日Firefoxの開発版に:-moz-any()という擬似クラスが実装されました。

このセレクタは括弧内にカンマで単純セレクタを並べ「このどれかにマッチする」という条件を表すことができるものです。上記のDavid Baronの記事では、ul, ol, menu, dir といったリストが深くネストした状態のユーザーエージェントスタイルシートを、:-moz-any() で書き直した例が紹介されています。また、昨日にはHTML5のセクション要素と見出しのスタイルづけに、この:-moz-any()を利用するパッチが投入されました。

CSS仕様としてはまだ存在していませんが、メーリングリストでは議論が行われたこともあり、CSS4セレクタとして同様の機能が定義されるかもしれません。

HTML5の実装は要素や属性の導入だけではなく、基盤となる処理の変更やスタイルシートの対応も含まれます。目に見えやすい機能やAPIが取り上げられがちですが、こうした足場を固める作業も、地道に進められています。