[4] 超大域属性は、すべての要素で使うことができる属性です。
[5] ただの大域属性とは違って、 HTML要素以外の要素でも使うことができます。
[6] 厳密には、超大域属性は名前空間に関わらずすべての要素で共通の動作が規定されていますが、 著者がこれを用いてもよいかどうかは名前空間ごとに定められることになっています。 HTML は (ほぼ無制限に) 使うことを認めていますが、他の名前空間では認められているとは限りません。
[7] XML は当初 xml
で始まる属性名を予約し、
XML 本体および関連仕様で利用するとしていました。
これが超大域属性の先例といえます。
[8] XML名前空間の導入により、 XML の予約属性名は名前空間の仕組みに組み込まれました。
XML 本体および関連仕様の属性は xml
名前空間に、
XML名前空間の属性は xmlns
名前空間に収容される形となりました。
[9] 更に、XML名前空間を使った属性により要素を拡張できると考えられ、 大域属性と呼ばれました。 この大域属性も、後の超大域属性の一例と言えます。
[11] その後 HTML5 は HTML名前空間のすべての要素の共通の属性 (XHTML m12n 時代の共通属性を発展させたもの) を大域属性と呼ぶようになりました。 XML の大域属性よりも狭い範囲であり、 意味が衝突していましたが、 XML の衰退に伴い XML の用語が使われなくなっていったため、 次第に大域属性といえば HTML の意味に変わっていきました。
[12] DOM Standard は、 DOM API で名前空間に関わらず使われる
class
と id
の属性の処理を HTML Standard
にかわって定義するようになりました。
更に、 Web Components (Shadow DOM) により新たに slot
属性が設けられ、名前空間に関わらず使われることとなりました。
slot
が追加される少し前くらいから、
これを超大域属性と呼ぶようになりました。
[1] Shadow: define superglobal slot content attribute · whatwg/dom@e3d8291 ( 版) <https://github.com/whatwg/dom/commit/e3d82914676ad1e1bf590e1042636e60feddb6ae>
[2] The DOM Standard defines the class, id, and slot attributes · whatwg/html@36c9938 ( 版) <https://github.com/whatwg/html/commit/36c9938b102fecadf6029a248f40aae83ea099d2>