超大域属性

超大域属性

[4] 超大域属性 (superglobal attribute) は、すべての要素で使うことができる属性です。

[5] ただの大域属性とは違って、 HTML要素以外の要素でも使うことができます。

属性の一覧

[3] 超大域属性

文脈

[6] 厳密には、超大域属性名前空間に関わらずすべての要素で共通の動作が規定されていますが、 著者がこれを用いてもよいかどうかは名前空間ごとに定められることになっています。 HTML は (ほぼ無制限に) 使うことを認めていますが、他の名前空間では認められているとは限りません。

歴史

[7] XML は当初 xml で始まる属性名予約し、 XML 本体および関連仕様で利用するとしていました。 これが超大域属性の先例といえます。

[8] XML名前空間の導入により、 XML の予約属性名は名前空間の仕組みに組み込まれました。 XML 本体および関連仕様の属性xml名前空間に、 XML名前空間属性xmlns名前空間に収容される形となりました。

[9] 更に、XML名前空間を使った属性により要素を拡張できると考えられ、 大域属性と呼ばれました。 この大域属性も、後の超大域属性の一例と言えます。

[10] 例えば XLinkXLink名前空間大域属性という形で実装されました。

[11] その後 HTML5HTML名前空間のすべての要素の共通の属性 (XHTML m12n 時代の共通属性を発展させたもの) を大域属性と呼ぶようになりました。 XML大域属性よりも狭い範囲であり、 意味が衝突していましたが、 XML の衰退に伴い XML の用語が使われなくなっていったため、 次第に大域属性といえば HTML の意味に変わっていきました。

[12] DOM Standard は、 DOM API名前空間に関わらず使われる classid属性の処理を 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>