Hatena::Groupweb

vantguarde

 | 

10.30

Selectors APIがLast Callへ

| 13:38

ただし二回目ですが。

EDも更新されてます。

一年前のWDからの変更点は

  • StaticNodeListがなくなった
  • DocumentFragmentにも適用できるようになった
  • NSResolverの削除
  • DOM Feature Stringの追加

などなど。

StaticNodeListは、「新しいインターフェース作るより『ただしnot liveに限る』って書いたほうがいいよね」→「ってかNodeListがliveなものを返すってDOM3 Coreのバグじゃね?」みたいな流れでなくなりました[要出典]。GeckoとかWebKitは現在の仕様に近い実装になってますが、IE8ではMSDNにもう登録されているあたり、古い実装のままリリースされてしまいそうな感じも……そこまで深刻な非互換ではないと思うので、まあいいのかなあとも思いますが。

NSResolverは名前空間を扱うニーズとか名前解決のめんどくささもあり、現バージョンからは取り除かれる決定がなされてます。ただ、Mozillaの人が「ほしい」とつぶやいてるので、level 2あたりで導入されるはずです。

さてさて、ひとつ残念なのが“Contextual Selector”という擬似クラスが結局導入されなかったこと。

今のSelectors APIでは、「コンテキストの子要素であるdiv」みたいなクエリをかけることができません。どういうことかは、「CSS Selector の最大の欠点」を読むとわかるかなと。

これについてはJohn Resigも“Thoughs on querySelectorAll”で書いていて、WebApps WG(当時はWebAPI WG)にコメントを投げたりしています。

WGもそれは認識していたようで、その結果提案されたのがContextual Selectorでした。これを使うと「querySelectorAll(":scope > div")」みたく書けるわけで、その後一部の人*1の気を引いていたんですが、このたび却下になりました。ちぇっ。

まあ、実装も進んできてるなか今から新機能の追加というのも酷ですし、擬似クラス自体の標準化を行う手間もありますし、仕方がないかなとは思います。こちらもlevel 2での導入が考えられている*2ようなので、Selectors API level 2にはもっと期待したいところ。

LCにしてもいいかーっていうメールが流れました。公開も時間の問題かなと。

*1:主にd:id:amachangとぼく

*2Feature Requestsにも登録されてる

 | 
Contact: @vant / lepetitcroissant@gmail.com.