[13] AttrExodus は、DOM の Attr
の仕様を大幅に簡略化しようとする試みです。
[15] W3C DOM が規定していた内容属性に関する機能のうち、 XML に対応することなどを目的に必要以上に複雑化していた部分は、 2007年頃より Web DOM Core (現 DOM Standard) が新たに DOM 仕様を規定しなおした際に省かれ、実装と仕様を大幅に簡略化することが試みられました。
[16] その後数年かけて徐々に実装も追随を試みましたが、その結果多くは Web互換性のために必要であることがわかり、2014年にはほとんどの機能が仕様上も復活しています。
[14] 次の機能は削除されていました (一部は仕様書の注釈として隠されていました) が、までに削除できないことが明確になり、復活しました。
[17] 対象となる機能は DOM0 や IE4 DOM には存在せず、 W3C DOM 時代に追加されたものです。
[18] DOM1 では Node
の一種としての Attr
が導入され、それを操作する多くのメソッドが Document
や Element
に追加されました。
[19] DOM2 ではXML名前空間に対応するために多くのメソッドに「NS」 をつけたコピーが追加されました。
[20] DOM3 では ID属性に関する理論上不足していた機能を補うメソッドが追加されました。
[21] DOM2 までの機能はほとんどの Webブラウザーが、 DOM3 の機能は一部の Webブラウザーが実装しましたが、 全般的に必ずしも仕様通りの実装とはなっていませんでした。
[1] IRC logs: freenode / #whatwg / 20140818 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20140818#l-224>
[2] Bug 25016 – AttrExodus: Element.getAttributeNode ( ( 版)) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=25016>
[3] Bug 21986 – AttrExodus: Element.attributes needs to have a named getter ( ( 版)) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=21986>
[4] Bug 25093 – AttrExodus: "Setting the value attribute must change value t..." ( ( 版)) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=25093>
[5] Bug 21522 – AttrExodus: Restore hasAttributes() ( ( 版)) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=21522>
[6] Bug 26596 – Attr.value cannot be readonly ( ( 版)) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=26596>
[7] Bug 25086 – AttrExodus: Attr should retain ownerElement property ( ( 版)) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=25086>
[8] Bug 25370 – AttrExodus: Specify document.createAttributeNS ( ( 版)) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=25370>
[9] Bug 25370 – AttrExodus: Specify document.createAttributeNS ( ( 版)) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=25370>
[10] DOM: attributes sadness — Anne’s Blog ( ( 版)) <http://annevankesteren.nl/2014/08/attributes>
[11] 611787 – (AttrExodus) Make Attr not inherit from Node ( ( 版)) <https://bugzilla.mozilla.org/show_bug.cgi?id=611787>
[12] IRC logs: freenode / #whatwg / 20140820 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20140820#l-424>
[22] Define getAttributeNode[NS] and removeAttributeNode · 5a881d9 · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/5a881d9b5f328f8e32f0fa8e73b4e8799772cb0c>
[23] Re: [DOMCore] Attr ( (Jonas Sicking 著, 版)) <http://lists.w3.org/Archives/Public/public-webapps/2010JulSep/0797.html>
[24] Put Attr.prototype.ownerElement back; give Attr.prototype.value a setter... · f64b0c8 · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/f64b0c82896d68ad534544ed8109ac41c175840d>
[25] Add createAttribute and createAttributeNS :-( · 522710b · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/522710bc4be13d2e1d826f94c54d1de9956ec920>
[26] Put hasAttributes() back. Fixes https://www.w3.org/Bugs/Public/show_bug.... · d0ff369 · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/d0ff369b1ccbbd428fd22c283d94535e5befe5c7>
[27] Introduce NamedNodeMap for attributes. Clean up algorithms around attrib... · 8af4826 · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/8af48267390b971a2ac02c7005ba42c08264b7e1>
[28] Define Element.prototype.setAttributeNode[NS], removeAttributeNode, Name... · 12d0114 · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/12d011437faef5ada7b816c94aab39b10cdb2f4b>
[29] INUSE_ATTRIBUTE_ERR makes a comeback · 142a129 · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/142a12980cf1b8a2da97b9d0624d9df001c7e926>
[30] Add Attr.prototype.nodeValue per https://www.w3.org/Bugs/Public/show_bug... · 2b76ab8 · whatwg/dom ( 版) <https://github.com/whatwg/dom/commit/2b76ab8f2426d545550d81053a962aac2f6d9e49>
[31] Attr
は Node
を継承しないとした変更も、
未だ実装がなく、実現が疑問視されています。この先旧来の仕様に戻される可能性もあります。
[32] Fix #171: Add Attr#nodeName as an alias for name · whatwg/dom@90427aa ( 版) <https://github.com/whatwg/dom/commit/90427aa0aa267da88937fc83fb9023eb99f4dbcd>
[33] Make Attr inherit from Node again (annevk著, ) <https://github.com/whatwg/dom/commit/625a0747f137454c155a7b577a9e45be1aa35a34>