Skip to content

Commit 531e50d

Browse files
mfreed7annevk
andauthored
Add shadowrootclonable attribute
And make declarative shadow roots not clonable by default. Closes #10107. Co-authored-by: Anne van Kesteren <annevk@annevk.nl>
1 parent 12b0d58 commit 531e50d

File tree

1 file changed

+31
-13
lines changed

1 file changed

+31
-13
lines changed

source

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3131,7 +3131,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
31313131
<li><dfn data-x-href="https://dom.spec.whatwg.org/#concept-node-document">node document</dfn> concept</li>
31323132
<li><dfn data-x="concept-document-type" data-x-href="https://dom.spec.whatwg.org/#concept-document-type">document type</dfn> concept</li>
31333133
<li><dfn data-x="concept-DocumentFragment-host" data-x-href="https://dom.spec.whatwg.org/#concept-documentfragment-host">host</dfn> concept</li>
3134-
<li>The <dfn data-x-href="https://dom.spec.whatwg.org/#concept-shadow-root">shadow root</dfn> concept, and its <dfn data-x-href="https://dom.spec.whatwg.org/#shadowroot-delegates-focus">delegates focus</dfn> and <dfn data-x-href="https://dom.spec.whatwg.org/#shadowroot-available-to-element-internals">available to element internals</dfn>.</li>
3134+
<li>The <dfn data-x-href="https://dom.spec.whatwg.org/#concept-shadow-root">shadow root</dfn> concept, and its <dfn data-x-href="https://dom.spec.whatwg.org/#shadowroot-delegates-focus">delegates focus</dfn>, <dfn data-x-href="https://dom.spec.whatwg.org/#shadowroot-available-to-element-internals">available to element internals</dfn>, and <dfn data-x-href="https://dom.spec.whatwg.org/#shadowroot-clonable">clonable</dfn>.</li>
31353135
<li>The <dfn data-x-href="https://dom.spec.whatwg.org/#element-shadow-host">shadow host</dfn> concept</li>
31363136
<li><dfn data-x-href="https://dom.spec.whatwg.org/#interface-htmlcollection"><code>HTMLCollection</code></dfn> interface, its
31373137
<dfn data-x="dom-HTMLCollection-length" data-x-href="https://dom.spec.whatwg.org/#dom-htmlcollection-length"><code>length</code></dfn> attribute, and its
@@ -63166,6 +63166,7 @@ not-slash = %x0000-002E / %x0030-10FFFF
6316663166
<dd><span>Global attributes</span></dd>
6316763167
<dd><code data-x="attr-template-shadowrootmode">shadowrootmode</code></dd>
6316863168
<dd><code data-x="attr-template-shadowrootdelegatesfocus">shadowrootdelegatesfocus</code></dd>
63169+
<dd><code data-x="attr-template-shadowrootclonable">shadowrootclonable</code></dd>
6316963170
<dt><span
6317063171
data-x="concept-element-accessibility-considerations">Accessibility considerations</span>:</dt>
6317163172
<dd><a href="https://w3c.github.io/html-aria/#el-template">For authors</a>.</dd>
@@ -63179,6 +63180,7 @@ interface <dfn interface>HTMLTemplateElement</dfn> : <span>HTMLElement</span> {
6317963180
readonly attribute <span>DocumentFragment</span> <span data-x="dom-template-content">content</span>;
6318063181
[<span>CEReactions</span>] attribute DOMString <span data-x="dom-template-shadowrootmode">shadowRootMode</span>;
6318163182
[<span>CEReactions</span>] attribute boolean <span data-x="dom-template-shadowrootdelegatesfocus">shadowRootDelegatesFocus</span>;
63183+
[<span>CEReactions</span>] attribute boolean <span data-x="dom-template-shadowrootclonable">shadowRootClonable</span>;
6318263184
};</code></pre>
6318363185
</dd>
6318463186
<dd w-dev>Uses <code>HTMLTemplateElement</code>.</dd>
@@ -63219,6 +63221,10 @@ interface <dfn interface>HTMLTemplateElement</dfn> : <span>HTMLElement</span> {
6321963221
data-x="attr-template-shadowrootdelegatesfocus">shadowrootdelegatesfocus</code></dfn> content
6322063222
attribute is a <span>boolean attribute</span>.</p>
6322163223

63224+
<p>The <dfn element-attr for="template"><code
63225+
data-x="attr-template-shadowrootclonable">shadowrootclonable</code></dfn> content attribute is a
63226+
<span>boolean attribute</span>.</p>
63227+
6322263228
<p>The <span>template contents</span> of a <code>template</code> element <a
6322363229
href="#template-syntax">are not children of the element itself</a>.</p>
6322463230

@@ -63360,6 +63366,10 @@ interface <dfn interface>HTMLTemplateElement</dfn> : <span>HTMLElement</span> {
6336063366
data-x="attr-template-shadowrootdelegatesfocus">shadowrootdelegatesfocus</code> content
6336163367
attribute.</p>
6336263368

63369+
<p>The <dfn><code data-x="dom-template-shadowrootclonable">shadowRootClonable</code></dfn> IDL
63370+
attribute must <span>reflect</span> the <code
63371+
data-x="attr-template-shadowrootclonable">shadowrootclonable</code> content attribute.</p>
63372+
6336363373
<hr>
6336463374

6336563375
<p>The <span data-x="concept-node-clone-ext">cloning steps</span> for a <code>template</code>
@@ -126130,17 +126140,20 @@ document.body.appendChild(text);
126130126140
<li><p>Let <var>template</var> be the result of <span>insert a foreign element</span>
126131126141
for <var>template start tag</var>, with <span>HTML namespace</span> and true.</p></li>
126132126142

126133-
<li><p>Let <var>declarative shadow mode</var> be <var>template start tag</var>'s
126134-
<code data-x="attr-template-shadowrootmode">shadowrootmode</code> attribute.</p></li>
126143+
<li><p>Let <var>mode</var> be <var>template start tag</var>'s <code
126144+
data-x="attr-template-shadowrootmode">shadowrootmode</code> attribute's value.</p></li>
126145+
126146+
<li><p>Let <var>clonable</var> be true if <var>template start tag</var> has a <code
126147+
data-x="attr-template-shadowrootclonable">shadowrootclonable</code> attribute; otherwise
126148+
false.</p></li>
126135126149

126136-
<li><p>If <var>template start tag</var> had a
126137-
<code data-x="attr-template-shadowrootdelegatesfocus">shadowrootdelegatesfocus</code>
126138-
attribute, then let <var>declarative shadow delegates focus</var> be true. Otherwise let
126139-
it be false.</p></li>
126150+
<li><p>Let <var>delegatesFocus</var> be true if <var>template start tag</var> has a <code
126151+
data-x="attr-template-shadowrootdelegatesfocus">shadowrootdelegatesfocus</code> attribute;
126152+
otherwise false.</p></li>
126140126153

126141126154
<li><p><span data-x="concept-attach-a-shadow-root">Attach a shadow root</span> with
126142-
<var>declarative shadow host element</var>, <var>declarative shadow mode</var>, true,
126143-
<var>declarative shadow delegates focus</var>, and "<code data-x="">named</code>".</p></li>
126155+
<var>declarative shadow host element</var>, <var>mode</var>, <var>clonable</var>,
126156+
<var>delegatesFocus</var>, and "<code data-x="">named</code>".</p></li>
126144126157

126145126158
<li>
126146126159
<p>If an exception was thrown by <span data-x="concept-attach-a-shadow-root">attach a
@@ -139043,10 +139056,15 @@ interface <dfn interface>External</dfn> {
139043139056
<td> "<code data-x="">open</code>";
139044139057
"<code data-x="">closed</code>"
139045139058
<tr>
139046-
<th> <code data-x="">shadowrootdelegatesfocus</code>
139047-
<td> <code data-x="attr-template-shadowrootdelegatesfocus">template</code>
139048-
<td> Sets <span>delegates focus</span> on a declarative shadow root
139049-
<td> <span>Boolean attribute</span>
139059+
<th> <code data-x="">shadowrootdelegatesfocus</code>
139060+
<td> <code data-x="attr-template-shadowrootdelegatesfocus">template</code>
139061+
<td> Sets <span>delegates focus</span> on a declarative shadow root
139062+
<td> <span>Boolean attribute</span>
139063+
<tr>
139064+
<th> <code data-x="">shadowrootclonable</code>
139065+
<td> <code data-x="attr-template-shadowrootclonable">template</code>
139066+
<td> Sets <span>clonable</span> on a declarative shadow root
139067+
<td> <span>Boolean attribute</span>
139050139068
<tr>
139051139069
<th> <code data-x="">shape</code>
139052139070
<td> <code data-x="attr-area-shape">area</code>

0 commit comments

Comments
 (0)