DOM4

DOM Standard

[88] DOM Standard は、 Web の基本データモデルAPI である DOM の中核部分に関する仕様書です。

[89] DOM StandardDOM2DOM3 の次の世代に当たる仕様書です。 以前は Web DOM CoreDOM4 と呼ばれていました。

仕様書

[90] 一時は W3C から DOM4 として出版されていましたが、 現在は WHATWGDOM Standard が最新版となっています。

機能

[93] DOM Standard では次の各機能が規定されています。

[92] Promise (旧 Future) は ECMAScript に、 DOMExceptionWeb IDL に移動しました。

[129] DOMSettableTokenListDOMTokenList に統合されました。

[135] DOMStringList は一旦廃止された後、 IndexedDB を経て HTML Standard に移動しました。

[128] DOM も参照。

旧仕様との対応

[91] DOM Standard に現在含まれている機能は、かつてはいろいろな仕様書で分散して定義されていました。

[116] 旧仕様に含まれていた次の機能は DOM Standard に含まれず、廃止されています。

[117] 旧仕様に対して次の仕様変更を試みています。

歴史

前段階

[140] W3C DOM の最後の版である DOM3W3C勧告となった後、 DOM WG は閉鎖され、 Webブラウザーに十分に実装されないまま放置状態が続いていました。

[114] getAttributeadopt などの仕様が実際の Webブラウザーの実装と整合しておらず、 にも関わらず DOM 仕様が改訂される見込みもなく、不満が高まっていました。

[115] また HTML5 (現 HTML Standard) など新しい仕様の開発が進んだり、 HTML5 ブームによって Webブラウザーの開発が活発になってきたりする中で、 Web 技術の土台である DOM の部分に曖昧で不正確な仕様書しかなく、 新機能の追加も行えないという状況はもはや限界でした。

[142] HTML5 世代の DOM5 を開発するべきとの声が上がることもありました。

Web DOM Core & Web DOM Range

[1] Bug 409380 &#8211; [REGRESSION] range.selectNodeContents throws an INVALID_NODE_TYPE_ERR on elements created with document.createElement (2008-01-06 11:35:37 +09:00 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=409380#c22>

There is a growing feeling that we should have a "Web DOM Core" spec, we could similarly have a "Web DOM Range" spec.

—— Ian Hickson

[2] zcorpan's bookmarks tagged with "dom5core" on del.icio.us (2008-06-21 21:52:05 +09:00 版) <http://del.icio.us/zcorpan/dom5core> (名無しさん)

[3] IRC logs: freenode / #whatwg / 20080806 (2008-08-09 17:58:09 +09:00 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20080806#l-72> (名無しさん)

[4] >>3

[02:57] <Lachy> ok. well, if no-ones working on it by the time I get Selectors API to CR, then I might pick it up.

(名無しさん)

[5] Web DOM Core ( 版) <http://simon.html5.org/specs/web-dom-core>

[6] IRC logs: freenode / #whatwg / 20090407 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20090407#l-204>

[07:04] <Hixie> i might be roped into a DOM Range rewrite next year

[07:04] <Hixie> (there's growing pressure to fix that spec)

[07:05] <Hixie> (and add new APIs to it for things like rich text editing)

[07:05] <shepazu> Hixie: arguably, that could be part of DOM4

[7] IRC logs: freenode / #whatwg / 20091007 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20091007#l-342>

[8] IRC logs: freenode / #whatwg / 20100503 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20100503#l-256>

[9] IRC logs: freenode / #whatwg / 20100817 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20100817#l-299>

[10] IRC logs: freenode / #whatwg / 20100831 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20100831>

[11] ms2ger / Web DOM Core / overview — bitbucket.org ( ( 版)) <http://bitbucket.org/ms2ger/web-dom-core>

[12] Web DOM Core: Summary ( ( 版)) <http://hg.gsnedders.com/web-dom-core/>

[13] IRC logs: freenode / #whatwg / 20100901 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20100901#l-774>

[14] Web DOM Core ( (Anne van Kesteren 著, 版)) <http://lists.w3.org/Archives/Public/public-webapps/2010JulSep/0705.html>

[15] Web DOM Core ( ( 版)) <http://lists.w3.org/Archives/Public/www-archive/2010Sep/att-0001/Overview.src.html>

[16] Please special-case "html" as the context of Range.createContextualFragment when the doc is an HTML doc ( (Henri Sivonen 著, 版)) <http://lists.w3.org/Archives/Public/public-webapps/2010JulSep/0703.html>

[17] IRC logs: freenode / #whatwg / 20100906 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20100906>

[18] IRC logs: freenode / #whatwg / 20100907 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20100907>

[19] IRC logs: freenode / #whatwg / 20100908 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20100908#l-891>

[20] IRC logs: freenode / #whatwg / 20100910 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20100910#l-631>

[21] Web DOM Core ( ( 版)) <http://lists.w3.org/Archives/Public/www-archive/2010Sep/att-0015/Overview.html>

[22] IRC logs: freenode / #whatwg / 20100916 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20100916#l-831>

[23] Web DOM Core ( ( 版)) <http://dvcs.w3.org/hg/domcore/raw-file/default/Overview.html>

[24] Web DOM Core ( ( 版)) <http://www.w3.org/TR/2010/WD-domcore-20101007/>

[25] Web DOM Core: Summary ( ( 版)) <http://hg.gsnedders.com/web-dom-core/>

[26] IRC logs: freenode / #whatwg / 20100928 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20100928>

[27] IRC logs: freenode / #whatwg / 20100929 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20100929>

[28] IRC logs: freenode / #whatwg / 20100930 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20100930#l-665>

[29] IRC logs: freenode / #whatwg / 20101001 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20101001>

[30] Web Applications 1.0 r5617 Move Selection to DOM Range.Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=10798 ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=5616&to=5617>

[31] Bug 10798 – [Selection] Find a new home for Selection ( ( 版)) <http://www.w3.org/Bugs/Public/show_bug.cgi?id=10798>

[32] IRC logs: freenode / #whatwg / 20101007 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20101007>

[33] IRC logs: freenode / #whatwg / 20101101 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20101101>

[34] DOM Range ( ( 版)) <http://html5.org/specs/dom-range.html>

[35] IRC logs: freenode / #whatwg / 20101104 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20101104#l-663>

[36] IRC logs: freenode / #whatwg / 20110113 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20110113>

[37] Web Applications 1.0 r5856 Add a note about cases where scripts won't run. Also, update some references (unrelated to the bug below). ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=5855&to=5856>

[38] Web Applications 1.0 r5856 Add a note about cases where scripts won't run. Also, update some references (unrelated to the bug below). ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=5855&to=5856>

[39] IRC logs: freenode / #whatwg / 20110116 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20110116>

W3C DOM 4 Core

[94] W3C WebApps WG では DOM3 Core の改訂として DOM4 Core を開発しようとする試みがありました。しかし大きな成果は得られないまま頓挫しました。

W3C DOM4

[119] W3C WebApps WGDOM4 Core にかわって WHATWGWeb DOM CoreDOM Core として出版することにしました。 (この当時は WHATWG のサイトではなく html5.org で公開されていたので、同じ編集者のまま W3C に移る形になりました。) 仕様名はその後 DOM、次いで DOM4 と改められています。

WHATWG DOM Standard

[120] AnneOperaW3C を離れたことをきっかけに DOM4 は再び WHATWG で出版されることとなりました。仕様名は他に合わせて DOM Standard となりました。

[104] IRC logs: freenode / #whatwg / 20121015 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20121015>

[107] Re: hardware timestamp for DOM Events. ( (Anne van Kesteren 著, 版)) <http://lists.w3.org/Archives/Public/www-dom/2013JanMar/0089.html>

[61] Web Applications 1.0 r6886 Remove mention of DOM Range ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=6885&to=6886>

[62] IRC logs: freenode / #whatwg / 20121015 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20121015>

[63] IRC logs: freenode / #whatwg / 20130212 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20130212#l-522>

[64] IRC logs: freenode / #whatwg / 20130213 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20130213#l-999>

[65] IRC logs: freenode / #whatwg / 20071003 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20071003>

[66] IRC logs: freenode / #whatwg / 20080210 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20080210>

[67] IRC logs: w3c / #html-wg / 20070925 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/html-wg/20070925>

[68] IRC logs: freenode / #whatwg / 20090520 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20090520>

[69] IRC logs: freenode / #whatwg / 20080710 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20080710>

[70] IRC logs: freenode / #whatwg / 20080621 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20080621#l-134>

[71] IRC logs: freenode / #whatwg / 20080620 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20080620>

[72] IRC logs: freenode / #whatwg / 20080407 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20080407#l-266>

[73] IRC logs: freenode / #whatwg / 20080221 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20080221>

[74] IRC logs: freenode / #whatwg / 20080213 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20080213>

[75] IRC logs: freenode / #whatwg / 20080211 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20080211#l-281>

[76] IRC logs: freenode / #whatwg / 20080113 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20080113>

[77] IRC logs: freenode / #whatwg / 20071210 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20071210>

[78] IRC logs: freenode / #whatwg / 20070710 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20070710>

[79] IRC logs: freenode / #whatwg / 20070627 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20070627>

[80] IRC logs: freenode / #whatwg / 20070616 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20070616>

[81] IRC logs: freenode / #whatwg / 20070411 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20070411>

[82] IRC logs: w3c / #html-wg / 20071119 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/html-wg/20071119#l-210>

[83] IRC logs: w3c / #html-wg / 20070726 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/html-wg/20070726>

[84] Bug 5851 – Consider adding .toArray() on NodeList and HTMLCollection ( ( 版)) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=5851>

[85] IRC logs: freenode / #whatwg / 20131105 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20131105#l-599>

[86] IRC logs: freenode / #whatwg / 20131111 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20131111#l-525>

[121] WHATWG への移動後 W3C 版は放置されていましたが、 なぜか HTML WG の担当にかわって W3C DOM4 として出版されるようになりました。内容は WHATWG 版の劣化コピーですが (そのままのコピーではない)、基本的に本家より数ヶ月遅れの放置プレイ状態のようです。 やる気があるのか無いのかわかりません。

[123] W3C DOM4 ( ( 版)) <http://www.w3.org/TR/2015/WD-dom-20150428/>

[124] W3C DOM4 ( ( 版)) <http://www.w3.org/TR/2015/WD-dom-20150618/>

[125] IRC logs: freenode / #whatwg / 20150810 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20150810>

# [00:14] <Domenic> I wonder if it's worthwhile pushing for DOM4 to be abandoned now that it has no active editors doing the work of porting

[126] W3C DOM4 ( ( 版)) <http://www.w3.org/TR/2015/PR-dom-20151006/>

[127] W3C DOM4 ( 版) <http://www.w3.org/TR/2015/REC-dom-20151119/>

[133] >>127W3C勧告となったW3CDOM4attributes IDL属性NamedNodeMap 型としています。ところが W3CDOM4 では NamedNodeMap が定義されておらず、 かわりになぜか DOM3 Core W3C勧告へのリンクになっています。 (DOM3 CoreNormative Reference ではなく non-normative ですが...)

元々これは WHATWGNamedNodeMap を廃止しようと試みた名残りで、 WHATWG 版では NamedNodeMap が復活したのですが、 W3C 版ではなぜか復活させず、型だけ書き換えたようです。 (なんでそんな中途半端なことをしたのでしょう。他と同じようにコピペするだけなのですから、 労力も変わらないでしょうに... もしかして、 W3C Process 的に大きな変更とみなされて LCWD からやり直しになるのを避けるためだったりするのですかね...)

W3C に報告があってから2ヶ月弱、W3C勧告となってから約半年になりますが、 放置されているようです。勧告になったらもうそれ以上メンテナンスする気はないのですかね。 (W3C ではよくあることですね。)

[130] Reference the DOM Standard for the tree order concept · whatwg/html@130af62 ( 版) <https://github.com/whatwg/html/commit/130af62724bff8b627587e2eafd8496d4c69cf69>

[131] Upstream Shadow DOM spec to DOM/HTML Standard · Issue #377 · w3c/webcomponents ( 版) <https://github.com/w3c/webcomponents/issues/377>

[134] W3C WPWGHTML 5.1HTML 5.2 と同方式で WHATWG DOM Standard の劣化コピー版 DOM 4.1 を出版しようと企てているようです。

[136] Meta: enable PR preview (annevk著, ) <https://github.com/whatwg/dom/commit/32538d1bc4c469535b567d792d1dfdbcc5e4708a>

[137] Re: Updating the DOM specification (Anne van Kesteren著, ) <https://lists.w3.org/Archives/Public/www-dom/2017JanMar/0006.html>

[138] Re: [w3c-dom4] Typo in the specification (chaals@yandex-team.ru著, ) <https://lists.w3.org/Archives/Public/www-dom/2017JanMar/0008.html>

[139] 1文字追加するだけに一体何ヶ月かけるつもりなんですかねぇ。。。 と思ってよく調べると、指摘があった W3C勧告W3C DOM4 () <https://www.w3.org/TR/2015/REC-dom-20151119/> はそのまま放置で、その後出版された FPWDW3C DOM 4.1 () <https://www.w3.org/TR/2017/WD-dom41-20170321/> ではその章ごと削除されています。すごい解決策だ。 元々指摘されていたのは <https://www.w3.org/TR/dom/> なのだけど、 この URL 自体は元の DOM4 W3C勧告のままで、 DOM 4.1 FPWD を指すように更新はされていない。

[141] この部分は元々 WHATWG 版にあったのだけど: Lots of typo and grammar corrections thanks to timeless! (annevk著, ) <https://github.com/whatwg/dom/commit/abd00ec7dcdd66b337db20f60710058655304648#diff-a467e681501e456ce8c1ef31425e1b41L151>、 それをコピペしてるだけのはずの W3C 版ではなぜか欠字が生じて、 PR になり: W3C DOM4 () <https://www.w3.org/TR/2015/PR-dom-20151006/>、 欠字に気づかずに W3C勧告になったようです。

1文字だけで気づきにくい間違いではあるのですが、 「This document has been reviewed by W3C Members, by software developers, and by other W3C groups and interested parties, and is endorsed by the Director as a W3C Recommendation.」 の皆様、とりわけ W3C勧告の承認に投票した Advisory Committee Representatives の皆様方は、ちゃんと読んだのでしょうか。

[143] Meta: add a service worker to make the spec viewable offline (domenic著, ) <https://github.com/whatwg/dom/commit/e79b9ab2b791106b1b3ea7a3b57305fe122c1a02>

[144] Meta: add a service worker to make the spec viewable offline by domenic · Pull Request #476 · whatwg/dom () <https://github.com/whatwg/dom/pull/476>

[145] Add the ability for any spec to have a service worker by domenic · Pull Request #53 · whatwg/resources.whatwg.org () <https://github.com/whatwg/resources.whatwg.org/pull/53>

[146] Meta: use new WHATWG boilerplate and license (domenic著, ) <https://github.com/whatwg/dom/commit/4953b84021fbeaf27df63c6c437e673f5db3c197>

[147] Meta: use new WHATWG boilerplate and license by domenic · Pull Request #553 · whatwg/dom () <https://github.com/whatwg/dom/pull/553>

[148] Meta: define merge policy and add CONTRIBUTING.md (annevk著, ) <https://github.com/whatwg/dom/commit/676fcbe6f1f9a3acab9e47aa6425715a818826a0>

[149] Remove additions from the historical section (annevk著, ) <https://github.com/whatwg/dom/commit/b287d36647315a0b6f1737955bd0cf4e174b3d7d>

[150] Remove "Historical" section? · Issue #394 · whatwg/dom () <https://github.com/whatwg/dom/issues/394>

[151] Remove additions from the historical section by annevk · Pull Request #592 · whatwg/dom () <https://github.com/whatwg/dom/pull/592>

[152] Editorial: ShadowRoot is sufficiently upstreamed (annevk著, ) <https://github.com/whatwg/dom/commit/5be84cc52d072197cae81131badd10751f9e1d51>

[153] Review Draft Publication: June 2018 (annevk著, ) <https://github.com/whatwg/dom/commit/32efc48fef28c34ed914b60cfb3c29807e617365>

[154] Review Draft Publication: June 2018 by annevk · Pull Request #658 · whatwg/dom () <https://github.com/whatwg/dom/pull/658>