W3C DOM

W3C DOM (Web)

[1] 90年代後期から00年代前期には、 W3CDOM の標準化を担当していました。 W3C DOMW3C が開発し出版していた DOM 仕様群の総称です。

[9] 現在では DOM 本体や HTML DOM の開発は WHATWG に移っており、 CSSOMSVG DOMUI Events といった特定の対象を持った API 群を W3C の各 WG が担当する形になっています。

[10] W3C DOM WGDOM3 の出版後に解散しています。

[11] 本項は過去の DOM 仕様に関するものです。現状は DOM Standard を参照してください。

完成した仕様

[2] 次の DOM 仕様が W3C勧告となっています。

[7] 現在では、「※」は DOM Standard (WHATWG)、 「※※」は HTML Standard (WHATWG)、 Style は CSSOM (W3C CSS WG) で開発が継続されています。 SVG DOMW3C SVG WG が開発を継続しています。 Load and Save、Validation、MathML DOM は広く支持されるに至らず、事実上廃止状態です。
[5] W3C は古くなった W3C勧告のほとんどを廃止も改訂やバグ修正もせずに放置していて、 DOM 関連仕様も例外ではありません。これらのいずれも形式的には現行の W3C勧告のようです。

未完成の仕様

[4] 次の仕様は未完成です。

[8] Events のうち、基礎となる部分は DOM Standard (WHATWG) で開発が継続されています。 UI Events 部分は W3C WebApps WG で開発が継続されています。 XPath は広く実装されており、 WHATWG WikiW3C の仕様書との差分がメンテナンスされていますが、 担当者不在で開発凍結状態です。それ以外は広く支持されずに開発が停止されています。

コピペ仕様

[6] 次の仕様は WHATWG が出版しているものをコピペして W3C が勝手に出版しています。

概略

[12] W3C での DOM の標準化は90年代後半に IE4Netscape4 が完全に非互換な DOM をそれぞれ実装した後に始まりました。 政治的決着故か、両者どちらと似ているところもありつつ、完全にはどちらとも一致しないものが W3C勧告として標準化されることとなりました。

[13] 結果 IEDOM1 を (IE4 DOM に加えて) 実装しましたが、 Netscape第1次ブラウザー戦争の敗北により DOM1 を実装することなく事実上開発が停止しました。 数年の時を経て Gecko (Mozilla Suite および Netscape6) が DOM1DOM2 および DOM3 の一部を実装しましたが、 逆に IE第1次ブラウザー戦争の勝利により DOM1 のままで開発が停止していました。 こうした状況から、Webアプリケーション開発者は Netscape4 DOMIE4 DOMW3C DOM の混在と非互換性に長年悩まされることとなりました。

[14] W3C DOMプログラミング言語非依存であることを目標の一つにしており、 規定の一部として Java束縛ECMAScript束縛を定義していました。 従ってそれまでの DOM0 と比べて JavaScript 色は薄まっていました。 ブラウザー戦争終結により Webブラウザー開発者の発言力が低下し、 サーバー側の開発者が積極的に標準化に関わるようになった時代的背景もあり、 DOM2DOM3 と進むにつれ API 全体の Java 色が増していきました。

[15] W3C は新規 API の開発を進めていきましたが、既存の DOM0 API の標準化には興味を示しませんでした。 Webブラウザー業界の停滞により、 Webブラウザーで一部実装が進められていて需要も比較的高かったはずの DOM3 LS DocumentLS/ElementLSDOM3 EventsDOM3 XPath といった仕様群は完成の目処が立たず、 開発が中止されるに至りました。一方で DOM3 Core の追加 APIDOM3 Validation のような結局 Webブラウザーに実装されることが無かった (Java 色の強い) 新仕様も、サーバー側での実装があるということで W3C勧告となっています。

メモ

[16] gsnedders/dom-test-suite: git clone of the old, seemingly abandoned DOM test suite. CVS HEAD tagged as cvs-head. () <https://github.com/gsnedders/dom-test-suite>