[110] [DFN[[CODE(HTMLe)@en[slot]]]] [[要素]]は、
[[スロット]]を表します。[[スロット]]は、[[影木]]中にあって、[[光木]]中の[[節点]]が
(仮想的に) 挿入されるべき位置を表します。

* 仕様書

[REFS[
- [11] [CITE@en[DOM Standard]] ([TIME[2016-04-22 01:14:08 +09:00]] 版) <https://dom.spec.whatwg.org/#shadow-tree-slots>
- [25] [CITE@en[DOM Standard]] ([TIME[2016-04-22 01:14:08 +09:00]] 版) <https://dom.spec.whatwg.org/#light-tree-slotables>
- [42] [CITE@en[DOM Standard]] ([TIME[2016-04-22 01:14:08 +09:00]] 版) <https://dom.spec.whatwg.org/#finding-slots-and-slotables>
- [73] [CITE@en[DOM Standard]] ([TIME[2016-04-22 01:14:08 +09:00]] 版) <https://dom.spec.whatwg.org/#assigning-slotables-and-slots>
- [39] [CITE@en[DOM Standard]] ([TIME[2016-04-22 01:14:08 +09:00]] 版) <https://dom.spec.whatwg.org/#signaling-slot-change>
- [105] [CITE@en[DOM Standard]] ([TIME[2016-04-22 01:14:08 +09:00]] 版) <https://dom.spec.whatwg.org/#mixin-slotable>
- [134] [CITE@en[DOM Standard]] ([TIME[2016-04-22 01:14:08 +09:00]] 版) <https://dom.spec.whatwg.org/#dom-element-slot>
- [131] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-04-24 23:36:04 +09:00]] 版) <https://html.spec.whatwg.org/#attr-slot>
- [109] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-04-24 23:36:04 +09:00]] 版) <https://html.spec.whatwg.org/#the-slot-element>
]REFS]

* 意味

[118] [CODE(HTMLe)@en[slot]] [[要素]]は、
[F[割り当て済み節点群]]があればそれを、なければ[[内容]]を[[表現][表現 (DOM)]]します [SRC[>>109]]。

[13] [CODE(HTMLe)@en[slot]] [[要素]]は、[[スロット]]です [SRC[>>11]]。
他に[[スロット]]を作る方法はありません [SRC[>>11]]。

[12] [CODE(HTMLe)@en[slot]] [[要素]]は、普通[[影木]]で使います [SRC[>>109]]。
[[影木]]は、[[スロット]]をいくつか持つことがあります [SRC[>>11]]。

[4] [DFN[[RUBYB[既定スロット]@en[default slot]]]]は、
[[影木]]中、[F[名前][スロット名]]が[[空文字列]]の[[スロット]]のうち[[木順]]で最初のものです
[SRC[>>11]]。

[111] [CODE(HTMLe)@en[slot]] [[要素]]は、次の通り分類されています [SRC[>>109]]。
[FIG(list short)[
- [[フロー内容]]
- [[語句内容]]
]FIG]

* 構文

[114] [[開始タグ]]も[[終了タグ]]も必須です [SRC[>>109]]。

* 属性

[115] 次の[[内容属性]]を指定できます。
[FIG(short list)[
- [[大域属性]]
- [CODE(HTMLa)@en[name][<slot name>]]
]FIG]

* 内容

[113] [CODE(HTMLe)@en[slot]] [[要素]]は、[[透過内容]]を持ちます [SRC[>>109]]。

* 文脈

[112] [CODE(HTMLe)@en[slot]] [[要素]]は、[[語句内容]]が使える場所に置くことができます
[SRC[>>109]]。

[143] [[影木]]以外で使っても意味がありません。[[影木]]以外に置くことも禁止はされていませんし、
[[影木]]以外の[[スクリプト]]の独自の処理に流用することもできなくはありませんが、
あまり適切ではなさそうです。[[影木]]や[[雛形内容]]以外の
[CODE(HTMLe)@en[slot]] [[要素]]のは何らかの誤りかもしれません。

* 状態

[14] [[スロット]]は、次の状態を持ちます。
[FIG(list members)[
: [DFN[[F[[RUBYB[[[名前][スロット名]]]@en[name]]]]]] :
[[既定値]]は、[[空文字列]]です。 [SRC[>>11]]
[CODE(HTMLa)@en[name][<slot name>]] [[属性値]]となります。
: [DFN[[F[[RUBYB[割り当て済み節点群]@en[assigned nodes]]]]]] :
[[スロット可能]]の[[リスト]]です。[[既定値]]は、空です。 [SRC[>>11]]
]FIG]

[15] [[属性変更手順群]]は、次のようなものです [SRC[>>11]]。
[FIG(steps)[
= [16] 次の条件のすべてを満たす場合:
[FIG(list)[
- [18] [VAR[要素]]が [CODE(HTMLe)@en[slot]]
- [17] [VAR[局所名]]が [CODE(HTMLa)@en[name][<slot name>]] で[VAR[名前空間]]が [[null]]
- [19] 次のいずれかではない:
-- [VAR[値]]が[VAR[古い値]]と等しい
-- [VAR[値]]が [[null]] で[VAR[古い値]]が[[空文字列]]
-- [VAR[値]]が[[空文字列]]で[VAR[古い値]]が [[null]]
]FIG]
== [20] [VAR[値]]が [[null]] や[[空文字列]]なら、
=== [21] [VAR[要素]]の[F[名前][スロット名]]を、[[空文字列]]に設定します。
== [22] それ以外なら、
=== [23] [VAR[要素]]の[F[名前][スロット名]]を、[VAR[値]]に設定します。
== [24] [VAR[要素]]の[F[木]]について、[[木のスロット可能群を割り当て]]します。
]FIG]

;; [91] つまり[[影木]]の[[スロット]]すべてについて割り当てを再度やり直します。
本[[要素]]への変更で他の[[要素]]と同じ名前になる可能性があるためと思われます。

* [CODE(DOMi)@en[HTMLSlotElement]] インターフェイス

[116] [CODE(HTMLe)@en[slot]] [[要素]]の[[要素インターフェイス]]は、
[CODE(DOMi)@en[HTMLSlotElement]] です [SRC[>>109]]。

[117] [DFN[[CODE(DOMi)@en[HTMLSlotElement]]]] [[インターフェイス]]は、
[CODE(DOMi)@en[HTMLElement]] [[インターフェイス]]を[[継承]]する [SRC[>>109]] と共に、
次の[[メンバー]]を持ちます。
[FIG(short list)[
- [CODE(DOMa)@en[name][<slot name>]]
- [CODE(DOMm)@en[assignedNodes]]
- [CODE(DOMm)@en[assignedElements]]
]FIG]

* [CODE(HTMLe)@en[slot]] 要素 [CODE(HTMLa)@en[name][<slot name>]] 属性

[119] [CODE(HTMLe)@en[slot]] [[要素]]の [DFN[[CODE(HTMLa)@en[name][<slot name>]]]]
[[内容属性]]は、[[スロット]]の[F[名前][スロット名]]を表します [SRC[>>109]]。

[120] [[属性値]]は、任意の[[文字列]]です [SRC[>>109]]。
[[著者]]の都合により好きに値を決めることができます。

[121] 省略は、[[空文字列]]と等価です。[[空文字列]]は、[[既定のスロット]]を表します。

[122] 同名の[[スロット]]が複数含まれることは禁止されていませんが、
[[木順]]で最初の[[スロット]]しか機能しなくなるので、意味がありません。

[123] [CODE(DOMi)@en[HTMLSlotElement]] [[インターフェイス]]の
[DFN[[CODE(DOMa)@en[name][<slot name>]]]] [[IDL属性]]は、
[CODE(IDL xattr)@en[CEReactions]] が適用され、
[CODE(HTMLa)@en[name][<slot name>]] [[内容属性]]を[[反映]]しなければ[MUST[なりません]]
[SRC[>>109]]。

* スロット可能

[26] [DFN[[RUBYB[スロット可能]@en[slotable]]]]は、
[CODE(DOMi)@en[Element]] と [CODE(DOMi)@en[Text]] です [SRC[>>25]]。
両[[インターフェイス]]は、 [DFN[[CODE(DOMi)@en[Slotable]]]] を[[実装]]します [SRC[>>105]]。

[27] [[スロット]]も[[スロット可能]]です [SRC[>>25]]。

;; [41] [[スロット]]も[[スロット可能]]も共に同名の「[F[名前][スロット名]]」
を持ちますが、両者は別の内部状態と思われます。

[28] [[スロット可能]]は、次の状態を持ちます。
[FIG(list members)[
: [DFN[[F[[RUBYB[[[名前][スロット名]]]@en[name]]]]]] :
[[既定値]]は、[[空文字列]]です。 [SRC[>>25]]
[[要素]]では [CODE(HTMLa)@en[slot]] [[属性値]]となります。
[[テキスト節点]]では常に[[空文字列]]となります。
: [DFN[[F[[RUBYB[[[割り当て済みスロット]]]@en[assigned slot]]]]]] :
[[スロット]]または [[null]]。[[既定値]]は [[null]] です。 [SRC[>>25]]
[[イベント経路]]の決定で[[親の取得]]から参照されます。
: [DFN[[F[[RUBYB[[[割り当て済み]]]@en[assigned]]]]]] :
[F[割り当て済みスロット]]が [[null]] でないことをいいます [SRC[>>25]]。
]FIG]

;; [148] [F[割り当て済みスロット]]が[[イベント経路]]の決定に使われるので、
割り当てられた[[節点]]で[[発火]]された[[イベント]]は、[[スロット]]へと伝播します。

[106] [CODE(DOMi)@en[Slotable]] は、 [CODE(IDL xattr)@en[NoInterfaceObject]]
で、[[文書環境]]にのみ[[晒され]]ます [SRC[>>105]]。
次の[[メンバー]]を持ちます。

[FIG(list short)[
- [CODE(DOMa)@en[assignedSlot]]
]FIG]

[132] [DFN[[CODE(HTMLa)@en[slot]]]] [[内容属性]]は、[[超大域属性]]です。

[133] [CODE(HTMLa)@en[slot]] [[内容属性]]は、すべての[[HTML要素]]に指定できます
[SRC[>>131]]。特別な制限はなく [SRC[>>131]]、任意の[[属性値]]を指定できます。

[144] [CODE(HTMLa)@en[slot]] [[属性値]]は、
当該[[要素]]が[[影木]]内の[[スロット]] ([CODE(HTMLe)@en[slot]] [[要素]])
に割り振られるときに、どの[[スロット]]が選ばれるべきかを指定するものです。
ですから、いずれかの[[スロット]]に割り当てられるべき時は、
その[[スロット名]]とする必要があります。
無視するべき時は、存在しない[[スロット名]]を指定できます。

[145] [CODE(HTMLa)@en[slot]] [[内容属性]]はどの[[要素]]にも指定できますが、
実用上は [CODE(DOMm)@en[attachShadow]] できる[[要素]]の[[子要素]]でしか意味を持ちません。

[135] [CODE(DOMi)@en[Element]] [[インターフェイス]]の
[DFN[[CODE(DOMa)@en[slot]]]] [[IDL属性]]は、
[CODE(IDL xattr)@en[CEReactions]] と
[CODE(IDL xattr)@en[Unscopeable]] が適用され、
[CODE(HTMLa)@en[slot]] [[内容属性]]を[[反映]]しなければ[MUST[なりません]]
[SRC[>>134]]。

[29] [[属性変更手順群]]は、次のようなものです [SRC[>>25]]。
[FIG(steps)[
= [30] 次の条件のすべてを満たす場合:
[FIG(list)[
- [31] [VAR[局所名]]が [CODE[slot]] で[VAR[名前空間]]が [[null]]
- [32] 次のいずれかではない:
-- [VAR[値]]が[VAR[古い値]]と等しい
-- [VAR[値]]が [[null]] で[VAR[古い値]]が[[空文字列]]
-- [VAR[値]]が[[空文字列]]で[VAR[古い値]]が [[null]]
]FIG]
== [33] [VAR[値]]が [[null]] や[[空文字列]]なら、
=== [34] [VAR[要素]]の[F[名前][スロット名]]を、[[空文字列]]に設定します。
== [35] それ以外なら、
=== [36] [VAR[要素]]の[F[名前][スロット名]]を、[VAR[値]]に設定します。
== [37] [VAR[要素]]が[F[割り当て済み][割り当て済みスロット]]なら、
=== [38] [VAR[要素]]の[F[割り当て済みスロット]]について、[[スロット可能の割り当て]]をします。
== [40] [VAR[要素]]について[[スロットの割り当て]]をします。
]FIG]

;; [92] [[スロット]]の名前が変更された場合とは違って、
他の[[スロット]]の割り当て再実行は発生しません。

* 探す

[43] [VAR[スロット可能]]、[VAR[開き]]フラグ ([[既定値]]は未設定)
について[DFN[[RUBYB[スロットを探す]@en[find a slot]]]]には、次のようにします [SRC[>>42]]。
[FIG(steps)[
= [44] 次のいずれかを満たすなら:
[FIG(list)[
- [55] [VAR[スロット可能]]の[F[親][parentNode]]が [[null]]
- [45] [VAR[スロット可能]]の[F[親][parentNode]]の[F[影根]]が [[null]]
- [46] [VAR[開き]]フラグが設定されていて、
[VAR[スロット可能]]の[F[親][parentNode]]の[F[影根]]の[F[モード][影根]]が [CODE[open]] ''以外''
- [47] [VAR[スロット可能]]の[F[親][parentNode]]の[F[影根]]の[F[木]]に、
[F[名前][スロット名]]が[VAR[スロット可能]]の[F[名前][スロット名]]である[[スロット]]がない
]FIG]
== [48] [[null]] を返します。
= [53] それ以外なら、
== [54] [VAR[スロット可能]]の[F[親][parentNode]]の[F[影根]]の[F[木]]の、
[F[名前][スロット名]]が[VAR[スロット可能]]の[F[名前][スロット名]]である最初の[[スロット]]を返します。
]FIG]

[107] [CODE(DOMi)@en[Slotable]] [[インターフェイス]]の
[DFN[[CODE(DOMa)@en[assignedSlot]]]] [[IDL属性]]の[[取得器]]は、
次のようにしなければ[MUST[なりません]] [SRC[>>105]]。
[FIG(steps)[
= [108] [[スロットを探す]]を実行した結果を返します。
[FIG(list members)[
: [VAR[スロット可能]] : [[文脈オブジェクト]]
: [VAR[開き]]フラグ : 設定する
]FIG]
]FIG]

[49] [VAR[スロット]]について[DFN[[RUBYB[スロット可能群を探す]@en[find slotables]]]]には、
次のようにします [SRC[>>42]]。
[FIG(steps)[
= [50] [VAR[結果]]を、空のリストに設定します。
= [51] [VAR[スロット]]の[F[根]]が[[影根]]なら、
== [57] [VAR[スロット]]の[F[根]]の[F[ホスト][ホスト (DOM)]]の[[子供]]の[[スロット可能]][VAR[スロット可能]]について、[[木順]]に、
=== [59] [VAR[見つかったスロット]]を、[VAR[スロット可能]]について[[スロットを探す]]を実行した結果に設定します。
=== [60] [VAR[見つかったスロット]]が[VAR[スロット]]なら、
==== [61] [VAR[結果]]の末尾に[VAR[見つかったスロット]]を追加します。
= [62] [VAR[結果]]を返します。
]FIG]

[52] これはつまり、
[FIG(list)[
- [[影木]]外の[[スロット]]では、[[空]]になります。
- [[木順]]で前に同名の[[スロット]]があれば、[[空]]になります。
- [VAR[スロット]]の [CODE(HTMLa)@en[name][<slot name>]] [[属性]]が無指定または[[空文字列]]なら、
[F[ホスト][ホスト (DOM)]]の[[子要素]]で [CODE(HTMLa)@en[slot]] [[属性]]が無指定または[[空文字列]]のものと、
[[テキスト節点]]が[[木順]]で含まれます。
- [VAR[スロット]]の [CODE(HTMLa)@en[name][<slot name>]] [[属性]]が空でない[[文字列]]なら、
[F[ホスト][ホスト (DOM)]]の[[子要素]]で [CODE(HTMLa)@en[slot]] [[属性]]がそれと一致するものが[[木順]]で含まれます。
]FIG]

[56] [VAR[スロット]]について[DFN[[RUBYB[平坦化されたスロット可能群を探す]@en[find flattened slotables]]]]には、次のようにします [SRC[>>42]]。
[FIG(steps)[
= [58] [VAR[結果]]を、空のリストに設定します。
= [99] [VAR[スロット]]の[F[根]]が[[影根]]の場合、
== [63] [VAR[スロット可能群]]を、[VAR[スロット]]について[[スロット可能群を探す]]を実行した結果に設定します。
== [64] [VAR[スロット可能群]]が空なら、
=== [65] [VAR[スロット可能群]]に[VAR[スロット]]の[[子供]]の[[スロット可能]]を[[木順]]で追加します。
== [66] [VAR[スロット可能群]]の各[[節点]]について順に、
=== [67] [VAR[節点]]が[[スロット]]で、[VAR[節点]]の[F[根]]が[[影根]]の場合、
==== [68] [VAR[結果]]の末尾に[VAR[節点]]について[[平坦化されたスロット可能群を探す]]を実行した結果に含まれるものを追加します。
=== [69] それ以外なら、
==== [70] [VAR[結果]]の末尾に[VAR[節点]]を追加します。
= [71] [VAR[結果]]を返します。
]FIG]

[72] つまり[[スロット可能群を探す]]処理を更に拡張したもので、
最終結果に[[スロット]]がなくなるまで再帰的に処理すると共に、
[[スロット可能]]が見つからない時には[[スロット]]の[[子供]]をかわりに利用します。

[124] [CODE(DOMi)@en[HTMLSlotElement]] [[インターフェイス]]の
[DFN[[CODE(DOMm)@en[assignedNodes]]]] [[メソッド]]は、
次のようにしなければ[MUST[なりません]] [SRC[>>109]]。
[FIG(steps)[
= [125] [VAR[オプション群]]を、第1引数を省略可能な
[CODE(DOMi)@en[AssignedNodeOptions]] として解釈した結果に設定します。
= [126] [VAR[オプション群]]の [CODE[flatten][AssignedNodeOptions]] が[[真]]なら、
== [129] [[文脈オブジェクト]]について[[平坦化されたスロット可能群を探す]]を実行した結果を返します。
= [127] それ以外なら、
== [128] [[文脈オブジェクト]]の[F[割り当て済み節点群]]を返します。
]FIG]

[130] [[辞書]] [DFN[[CODE(DOMi)@en[AssignedNodeOptions]]]] [SRC[>>109]] は、
次の[[メンバー]]を持ちます。
[FIG(list short)[
- [DFN[[CODE(DOMa)@en[flatten]]][AssignedNodeOptions]] ([CODE(IDL)@en[boolean]])
]FIG]

* 割り当てる

[74] [VAR[スロット]]について[DFN[[RUBYB[スロット可能群を割り当て]@en[assign slotables]]]]するには、
次のようにします [SRC[>>73]]。
[FIG(steps)[
= [75] [VAR[スロット可能群]]を、[VAR[スロット]]について[[スロット可能群を探す]]を実行した結果に設定します。
= [76] 
[VAR[スロット可能群]]と[VAR[スロット]]の[F[割り当て済み節点群]]が異なるなら、
== [77] [VAR[スロット]]について[[スロット変更を信号]]します。
== [78] [VAR[スロット]]の[F[割り当て済み節点群]]を、[VAR[スロット可能群]]に設定します。
= [79] [VAR[スロット可能群]]の各[VAR[スロット可能]]について、
== [80] [VAR[スロット可能]]の[F[割り当て済みスロット]]を、[VAR[スロット]]に設定します。
]FIG]

;; [90] [[属性変更手順群]] (>>29) と[[削除][削除 (DOM)]]から呼び出されます。
>>81 および >>84 からも呼び出されます。

[81] [VAR[木]]に関する[DFN[[RUBYB[木についてスロット可能群の割り当て]@en[assign slotables for a tree]]]]は、
次のようにします [SRC[>>73]]。
[FIG(steps)[
= [82] [VAR[木]]の各[[スロット]][VAR[スロット]]について、[[木順]]に、
== [83] [VAR[スロット]]について、[[スロット可能群の割り当て]]を実行します。
]FIG]

;; [89] [[属性変更手順群]] (>>15) の他、[[挿入]]や[[削除][削除 (DOM)]]から呼び出されます。

[84] [VAR[スロット可能]]について[DFN[[RUBYB[スロットの割り当て]@en[assign a slot]]]]は、
次のようにします [SRC[>>73]]。
[FIG(steps)[
= [85] [VAR[スロット]]を、[VAR[スロット可能]]について[[スロットを探す]]を実行した結果に設定します。
= [86] [VAR[スロット]]が [[null]] でなければ、
== [87] [VAR[スロット]]について[[スロット可能群の割り当て]]を実行します。
]FIG]

;; [88] [[属性変更手順群]] (>>29) の他、[[挿入]]から呼び出されることもあります。

[93] [[関連する類似起源閲覧文脈群の単位]]は、
[DFN[[F[[RUBYB[[[信号スロットリスト]]]@en[signal slot list]]]]]]を持ちます。
初期値は空です。 [SRC[>>39]]

;; [104] このリストは、[[変異観察器]]で種別 [CODE[slotchange]] の通知のために使われます。

[94] [VAR[スロット]]の[DFN[[RUBYB[スロット変更を信号]@en[signal a slot change]]]]するには、
次のようにします [SRC[>>39]]。
[FIG(steps)[
= [95] [VAR[スロット]]が[[関連する類似起源閲覧文脈群の単位]]の[F[信号スロットリスト]]になければ、
== [96] [[関連する類似起源閲覧文脈群の単位]]の[F[信号スロットリスト]]の末尾に[VAR[スロット]]を追加します。
= [102] [[変異観察器複合マルチタスクをキューに追加]]します。
]FIG]

;; [103] >>74 の他、[[挿入]]や[[削除][削除 (DOM)]]から呼び出されます。

[159] 
[CODE[GlobalEventHandlers]]
と
[CODE[ShadowRoot]]
の
[DFN[[CODE[onslotchange]]]]
[[IDL属性]]は、
[CODE[slotchange]]
[[イベント]]の[[イベントハンドラーIDL属性]]です。
[SRC[[CITE[HTML Standard]], [CITE[DOM Standard]]]]

* 歴史

** XBL1

@@

** XBL2 [CODE(XMLe)@en[content]] 要素

[REFS[
- [136] [CITE@en-US[XBL 2.0]]
( ([TIME[2012-05-03 02:23:03 +09:00]] 版))
<http://dev.w3.org/2006/xbl2/Overview.html#the-content-element>
- [137] [CITE@en-US[XBL 2.0]]
( ([TIME[2012-05-03 02:23:03 +09:00]] 版))
<http://dev.w3.org/2006/xbl2/Overview.html#processing-content-elements>
- [138] [CITE@en-US[XBL 2.0]]
( ([TIME[2012-05-03 02:23:03 +09:00]] 版))
<http://dev.w3.org/2006/xbl2/Overview.html#the-xblcontentelement-interface>
- [139] [CITE@en-US[XML Binding Language (XBL) 2.0]]
( ([TIME[2007-03-16 22:20:16 +09:00]] 版))
<http://www.w3.org/TR/2007/CR-xbl-20070316/#the-content>
- [140] [CITE@en-US[XML Binding Language (XBL) 2.0]]
( ([TIME[2007-03-16 22:20:16 +09:00]] 版))
<http://www.w3.org/TR/2007/CR-xbl-20070316/#processing0>
]REFS]


[178] 
[CITE@en-US[XBL 2.0]], [TIME[2024-09-08T07:38:19.000Z]], [TIME[2012-03-06T23:51:18.383Z]] <https://web.archive.org/web/20120306233919/http://dev.w3.org/2006/xbl2/Overview.html#content>

[FIG(data)[ [179] [[HTML要素概説]]

:[F[要素名]]:[CODE[content]]
:日付:[TIME[2010-09-03]]
:説明:
[TIME[2010-09-03]]、
[CITE[XBL 2.0]]
で
[CODE[content]]
が定義された。
歴史的には [[XBL 2.0]] ([[XML]] 版) [CODE(XMLe)[content]],
[[XBL 1.0]] [CODE(XMLe)[children]] に遡る。
:出典:
[REFS[

-
[CITE@en-US[XBL 2.0]], 
[DATA(.author)[[[W3C]]]],
[[Ian Hickson]],
[TIME(.published)[3 September 2010][2010-09-03]],
[TIME[2024-09-08T07:29:42.000Z]], [TIME[2012-03-06T23:42:40.506Z]] <https://web.archive.org/web/20120306233919/http://dev.w3.org/2006/xbl2/Overview.html>

]REFS]

]FIG]




** データ雛形

[142] [[HTML]] の[[データ雛形]]には [CODE(HTMLe)@en[nest]] [[要素]]がありました。
(しかしその性質は [CODE(HTMLe)@en[slot]] [[要素]]とは少し違ったもので、
どちらかといえば [[XSLT]] の [CODE(XMLe)@en[apply-templates]] [[要素]]の方が近いかもしれません。)

** Web Components

[168] 
[[Web Components]] の 
[CITE[Shadow DOM]]
は当初
[CODE[content]]
[[要素]]を定義していました。

[174] 前史は [[Web Components]] も参照。


- [175] 
[CITE@en["<content> element" and "Rendering" stubs, some minor touch-up.]], [[Roland Steiner]], [TIME[2011-09-13 08:13:17 +09:00]], [TIME[2024-09-08T06:08:52.000Z]] <https://github.com/dglazkov/component-model/commit/186208205004ba32b84e10595363c831eda517a7>


- [173] [CITE@en[Component Model - WHATWG Wiki]], [TIME[2024-03-18T17:55:19.000Z]], [TIME[2024-09-08T06:04:54.628Z]] <https://wiki.whatwg.org/wiki/Component_Model>

- [172] 
[CITE@en[15519: '''['''Shadow''']''': The content model of <content> should be flow conten…]], [[dglazkov]], [TIME[2012-01-13 07:14:33 +09:00]], [TIME[2024-09-08T05:58:24.000Z]] <https://github.com/WICG/webcomponents/commit/24f347e359fdc8187fed486c638911b93839d90d>
- [180] 
[CITE@en[Added explainer, needs cleanup and lots of work.]], [[dglazkov]], [TIME[2011-11-19 03:10:39 +09:00]], [TIME[2024-09-12T13:52:55.000Z]] <https://github.com/dglazkov/component-model/commit/bf45ddcfa4b574ab94dc4b8e18843e322816d5a5#diff-cbc10fb4d19472d5b1b3fdc6f39509c1f90afaba3822f0a4f18396175120a24c>





[FIG(data)[ [176] [[HTML要素概説]]

:[F[要素名]]:[CODE[content]]
:日付:[TIME[2011-09-12]]
:説明:
[TIME[2011-09-12]]、
[CITE[Component Model]] 
に
[CODE[content]]
が追加された。
:出典:
[REFS[

-
[DFN[CMContentRendering]]:
[CITE@en["<content> element" and "Rendering" stubs, some minor touch-up.]], 
[DATA(.author)[[[Roland Steiner]]]], 
[TIME(.published)[2011-09-13 08:13:17 +09:00]], [TIME[2024-09-08T06:08:52.000Z]] <https://github.com/dglazkov/component-model/commit/186208205004ba32b84e10595363c831eda517a7>

]REFS]

]FIG]




[169] 
[TIME[2015-07-31]]から[TIME[2015-08-07]]にかけて、
[CODE[content]]
は
[CODE[slot]] に改称されました。

- [171] 
[CITE@en['''['''Issue #289''']''' Introduce slots]], [[hayatoito]], [TIME[2015-07-31 15:48:07 +09:00]], [TIME[2024-09-08T05:47:51.000Z]] <https://github.com/WICG/webcomponents/commit/91c90e56558af3014f0a211653e40e457acd9874>
- [167] [CITE@en['''['''Close #92, #289''']''' Remove <content> elements.]], [[hayatoito]], [TIME[2015-08-07 14:24:17 +09:00]], [TIME[2024-09-08T05:44:29.000Z]] <https://github.com/WICG/webcomponents/commit/a4ec41e529834c6a4788b1e2e0c189926e869c45>
- [166] 
[CITE@en[28561 – '''['''Shadow''']''': rename <content> to <slot>]], [TIME[2019-04-02T04:48:11.000Z]], [TIME[2024-09-08T05:44:12.205Z]] <https://www.w3.org/Bugs/Public/show_bug.cgi?id=28561>
- [165] 
[CITE@en[Spec the v1 · Issue #289 · WICG/webcomponents · GitHub]], [TIME[2024-09-08T05:43:26.000Z]] <https://github.com/WICG/webcomponents/issues/289>

[FIG(data)[ [177] [[HTML要素概説]]

:[F[要素名]]:[CODE[content]]
:[F[要素名]]:[CODE[slot]]
:日付:[TIME[2015-08-07]]
:説明:
[TIME[2015-08]]、
[CITE[Shadow DOM]] 
の
[CODE[content]]
は削除され
[CODE[slot]]
が追加された。
:出典:
[REFS[

-
[CITE@en[28561 – __&&[&&__Shadow__&&]&&__: rename <content> to <slot>]], 
[TIME(.published)[2019-04-02T04:48:11.000Z]], [TIME[2024-09-08T05:44:12.205Z]] <https://www.w3.org/Bugs/Public/show_bug.cgi?id=28561>

]REFS]

]FIG]



[170] 
[CITE[What's New in Shadow DOM v1 (by examples) — hayato.io]], [TIME[2024-09-08T05:46:17.000Z]], [TIME[2016-06-06T23:40:55.314Z]] <https://web.archive.org/web/20160606233908/http://hayato.io/2016/shadowdomv1/>

** DOM Standard との統合

[1] [CITE@en[Shadow: define slots and slotables · whatwg/dom@a2b04df]]
([TIME[2016-03-24 21:51:28 +09:00]] 版)
<https://github.com/whatwg/dom/commit/a2b04df51b4342d7617c128e80e5aa892889d2e0>

[2] [CITE@en[Shadow: define assignedSlot of Element and Text · whatwg/dom@b8e1ccf]]
([TIME[2016-03-24 21:54:25 +09:00]] 版)
<https://github.com/whatwg/dom/commit/b8e1ccf857b6ac483f708336dff4b7ee48393191>

[3] [CITE@en[Shadow: define superglobal slot content attribute · whatwg/dom@e3d8291]]
([TIME[2016-03-24 21:56:23 +09:00]] 版)
<https://github.com/whatwg/dom/commit/e3d82914676ad1e1bf590e1042636e60feddb6ae>

[5] [CITE@en[Editorial: mention that step="" conformance requirements are out of s… · whatwg/dom@e996bdc]]
([TIME[2016-03-24 22:00:10 +09:00]] 版)
<https://github.com/whatwg/dom/commit/e996bdc52ef951113d2a6edc43828ec2dba23e83>

[6] [CITE@en[The DOM Standard defines the class, id, and slot attributes · whatwg/html@36c9938]]
([TIME[2016-03-24 22:01:06 +09:00]] 版)
<https://github.com/whatwg/html/commit/36c9938b102fecadf6029a248f40aae83ea099d2>

[7] [CITE@en[Shadow: define slotchange event · whatwg/dom@81566a3]]
([TIME[2016-04-20 12:29:10 +09:00]] 版)
<https://github.com/whatwg/dom/commit/81566a31a393d6fc07332f92a2a5d551dc7c96bd>

[8] [CITE@en[Editorial: distributed -> flattened · whatwg/dom@e35b570]]
([TIME[2016-04-20 12:32:04 +09:00]] 版)
<https://github.com/whatwg/dom/commit/e35b5706252b99f69a836e82e6ae9ebc76cdb2c7>

[9] [CITE@en[Editorial: add "shadow host" and "assigned" as terms · whatwg/dom@8ae8749]]
([TIME[2016-04-21 12:47:20 +09:00]] 版)
<https://github.com/whatwg/dom/commit/8ae87496beb249925a3a72cf62aee9987e3620eb>

[10] [CITE@en[Shadow: <slot> is now defined in HTML · whatwg/dom@fdad8cb]]
([TIME[2016-04-22 17:45:48 +09:00]] 版)
<https://github.com/whatwg/dom/commit/fdad8cb90a78b399cd2bdf5a20c1960649697462>

[141] [CITE@en[Add a new <slot> element for shadow trees · whatwg/html@3c15737]]
([TIME[2016-04-26 19:17:08 +09:00]] 版)
<https://github.com/whatwg/html/commit/3c157377135d05fbdd74f8c69199b47408bc6a9a>

[147] [CITE@en[Shadow: define event retargeting for shadow trees]]
([[annevk]]著, [TIME[2016-04-29 21:04:07 +09:00]])
<https://github.com/whatwg/dom/commit/ed94c9f2f1850b2e6a9b357c6870186859da4c2d>


[FIG(data)[ [177] [[HTML要素概説]]

:[F[要素名]]:[CODE[slot]]
:日付:[TIME[2016-04-20]]
:説明:
[TIME[2016-04-20]]、
[CITE[HTML Standard]]
に
[CODE[slot]]
が追加された。
現行仕様である。
:出典:
[REFS[

-
[DFN[DOMSlot]]:
[CITE@en[Add a new <slot> element for shadow trees]], 
[DATA(.author)[[[annevk]]]], 
[TIME(.published)[2016-04-20 23:00:26 +09:00]], [TIME[2024-09-08T06:26:37.000Z]] <https://github.com/whatwg/html/commit/3c157377135d05fbdd74f8c69199b47408bc6a9a>

]REFS]

]FIG]




[146] [CITE@en[Do not let mutation observer callbacks influence the used signal slot…]]
( ([[annevk]]著, [TIME[2016-06-09 16:27:03 +09:00]]))
<https://github.com/whatwg/dom/commit/d4ca21707fe3eb5d60dd1de0111752504b3da185>


[149] [CITE@en[Mark Element's slot IDL attribute '''['''Unscopable''']''']]
([[hayatoito]]著, [TIME[2016-09-15 17:12:04 +09:00]])
<https://github.com/whatwg/dom/commit/bf1c902437408d1b681bdfbf696afbc5d1e038de>

[150] [CITE@en[Shadow: stop re-signaling a slotchange event]]
([[hayatoito]]著, [TIME[2016-10-27 13:06:32 +09:00]])
<https://github.com/whatwg/dom/commit/89a849a54f123b3409be4bf371735fd0f901ef20>

[97] [CITE@en[Clarify the purpose of the slot attribute]]
([[sideshowbarker]]著, [TIME[2017-02-08 03:50:42 +09:00]])
<https://github.com/whatwg/html/commit/67536b2730a4c75edd9ff0ba453ce32e2cf0b815>

[98] [CITE@en[Make slots do nothing outside shadow trees]]
([[hayatoito]]著, [TIME[2017-07-04 18:01:33 +09:00]])
<https://github.com/whatwg/dom/commit/8f8c1c30c39be38480336e7fc39c1cc7b40b6a83>

[100] [CITE@en[Shadow: Specify when `slotchange` fires · Issue #447 · whatwg/dom]]
([TIME[2017-07-08 16:13:44 +09:00]])
<https://github.com/whatwg/dom/issues/447>

[101] [CITE@en[Don't let a slot do anything special if it isn't in a shadow tree by hayatoito · Pull Request #459 · whatwg/dom]]
([TIME[2017-07-08 16:19:24 +09:00]])
<https://github.com/whatwg/dom/pull/459>

[151] [CITE@en[Make <slot>'s UA style, "display: contents", be !important · Issue #3143 · whatwg/html]]
([TIME[2017-11-22 20:50:28 +09:00]])
<https://github.com/whatwg/html/issues/3143>

[152] [CITE@en[Use interface mixins in IDL]]
([[romandev]]著, [TIME[2017-12-19 19:22:26 +09:00]])
<https://github.com/whatwg/dom/commit/12b069802b771c145fd3b1917c5b82f2a8c1ff9f>

[153] [CITE@en[Add <slot>.assignedElements()]]
([[cyrilletuzi]]著, [TIME[2017-12-19 23:50:58 +09:00]])
<https://github.com/whatwg/html/commit/b626a63647972cf70bcf1b58a1daf1347b2d3435>

[154] [CITE@en[A node doesn't have an associated tree]]
([[annevk]]著, [TIME[2018-03-15 16:46:11 +09:00]])
<https://github.com/whatwg/dom/commit/06dae6577f55af9ef2ff8228ac1a8a60b9f68cb3>

[155] [CITE@en["node's tree" seems to be an undefined concept · Issue #526 · whatwg/dom]]
([TIME[2018-03-17 17:41:52 +09:00]])
<https://github.com/whatwg/dom/issues/526>

[156] [CITE@en[A node doesn't have an associated tree by annevk · Pull Request #599 · whatwg/dom]]
([TIME[2018-03-17 17:42:12 +09:00]])
<https://github.com/whatwg/dom/pull/599>

[157] [CITE@en[Add onslotchange to GlobalEventHandlers]]
([[annevk]]著, [TIME[2019-09-20 12:54:31 +09:00]])
<https://github.com/whatwg/html/commit/a387c7b8986bbac6f5acf1999cac075e76fe577e>

[158] [CITE@en[Define the onslotchange event handler IDL attribute]]
([[domenic]]著, [TIME[2019-09-20 13:20:19 +09:00]])
<https://github.com/whatwg/dom/commit/a6c6d984e756ad099624350f62c97ab902956cce>

[160] [CITE@en[Add onslotchange · Issue #3487 · whatwg/html]]
([TIME[2020-05-14 13:26:10 +09:00]])
<https://github.com/whatwg/html/issues/3487>

[161] [CITE@en[Add onslotchange by annevk · Pull Request #4129 · whatwg/html]]
([TIME[2020-05-14 13:27:06 +09:00]])
<https://github.com/whatwg/html/pull/4129>

[162] [CITE@en[Define the onslotchange event handler IDL attribute]]
([[domenic]]著, [TIME[2019-09-20 13:20:19 +09:00]])
<https://github.com/whatwg/dom/commit/a6c6d984e756ad099624350f62c97ab902956cce>

[163] [CITE@en[Add onabort definition and add onslotchange by domenic · Pull Request #785 · whatwg/dom]]
([TIME[2020-05-14 13:29:29 +09:00]])
<https://github.com/whatwg/dom/pull/785>

[164] [CITE@en[Dispatching slotchange within a compound microtask · Issue #734 · whatwg/dom]]
([TIME[2021-03-25T12:02:46.000Z]])
<https://github.com/whatwg/dom/issues/734>