@@ -3255,7 +3255,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
32553255 <li><dfn data-x-href="https://dom.spec.whatwg.org/#concept-node-document">node document</dfn> concept</li>
32563256 <li><dfn data-x="concept-document-type" data-x-href="https://dom.spec.whatwg.org/#concept-document-type">document type</dfn> concept</li>
32573257 <li><dfn data-x="concept-DocumentFragment-host" data-x-href="https://dom.spec.whatwg.org/#concept-documentfragment-host">host</dfn> concept</li>
3258- <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>, <dfn data-x-href="https://dom.spec.whatwg.org/#shadowroot-clonable">clonable</dfn>, <dfn data-x="shadow-serializable" data-x-href="https://dom.spec.whatwg.org/#shadowroot-serializable">serializable</dfn>, <dfn data-x="shadow-marker" data-x-href="https://dom.spec.whatwg.org/#shadowroot-marker">marker</dfn>, <dfn data-x="shadow- root-custom-element-registry" data-x-href="https://dom.spec.whatwg.org/#shadowroot-custom-element-registry">custom element registry</dfn>, and <dfn data-x-href="https://dom.spec.whatwg.org/#shadowroot-keep-custom-element-registry-null">keep custom element registry null</dfn>.</li>
3258+ <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>, <dfn data-x-href="https://dom.spec.whatwg.org/#shadowroot-clonable">clonable</dfn>, <dfn data-x="shadow-serializable" data-x-href="https://dom.spec.whatwg.org/#shadowroot-serializable">serializable</dfn>, <dfn data-x="shadow-root-custom-element-registry" data-x-href="https://dom.spec.whatwg.org/#shadowroot-custom-element-registry">custom element registry</dfn>, and <dfn data-x-href="https://dom.spec.whatwg.org/#shadowroot-keep-custom-element-registry-null">keep custom element registry null</dfn>.</li>
32593259 <li>The <dfn data-x-href="https://dom.spec.whatwg.org/#element-shadow-host">shadow host</dfn> concept</li>
32603260 <li><dfn data-x-href="https://dom.spec.whatwg.org/#interface-htmlcollection"><code>HTMLCollection</code></dfn> interface, its
32613261 <dfn data-x="dom-HTMLCollection-length" data-x-href="https://dom.spec.whatwg.org/#dom-htmlcollection-length"><code>length</code></dfn> attribute, and its
@@ -12555,8 +12555,6 @@ interface <dfn interface>HTMLElement</dfn> : <span>Element</span> {
1255512555
1255612556 [<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>, <span data-x="xattr-ReflectRange">ReflectRange=(0, 8)</span>] attribute unsigned long <dfn attribute for="HTMLElement" data-x="dom-headingOffset">headingOffset</dfn>;
1255712557 [<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute boolean <dfn attribute for="HTMLElement" data-x="dom-headingReset">headingReset</dfn>;
12558-
12559- [<span>CEReactions</span>, <span data-x="xattr-Reflect">Reflect</span>] attribute DOMString <dfn attribute for="HTMLElement" data-x="dom-marker">marker</dfn>;
1256012558};
1256112559
1256212560dictionary <dfn dictionary>ShowPopoverOptions</dfn> {
@@ -13912,7 +13910,6 @@ https://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%
1391213910 <li><code data-x="attr-itemscope">itemscope</code></li>
1391313911 <li><code data-x="attr-itemtype">itemtype</code></li>
1391413912 <li><code data-x="attr-lang">lang</code></li>
13915- <li><code data-x="attr-marker">marker</code></li>
1391613913 <li><code data-x="attr-nonce">nonce</code></li>
1391713914 <li><code data-x="attr-popover">popover</code></li>
1391813915 <li><code data-x="attr-spellcheck">spellcheck</code></li>
@@ -67901,17 +67898,9 @@ interface <dfn interface>HTMLTemplateElement</dfn> : <span>HTMLElement</span> {
6790167898 <p>In a rendering, the <code>template</code> element <span>represents</span> nothing.</p>
6790267899
6790367900 <p>The <dfn element-attr for="template"><code data-x="attr-template-for">for</code></dfn> content
67904- attribute identifies the <code>Element</code> or <code>ShadowRoot</code> that the
67905- <code>template</code> content applies to, and optionally the <code>ProcessingInstruction</code>
67906- child nodes that deliniate the range to replace. A U+0023 (#) separates the value of a <code
67907- data-x="attr-marker">marker</code> content attribute or <span>shadow root</span>'s <span
67908- data-x="shadow-marker">marker</span> from the <code>ProcessingInstruction</code> <code
67909- data-x="">name</code> attribute value.</p>
67910-
67911- <p>The <dfn element-attr for="htmlsvg-global"><code
67912- data-x="attr-marker">marker</code></dfn> attribute value identifies the element to
67913- update when the <code data-x="attr-template-for">for</code> attribute is
67914- used.</p>
67901+ attribute identifies the <code>ProcessingInstruction</code> that marks the location to insert
67902+ content at (<code data-x=""><?marker></code>) or the start of the range to replace
67903+ (<code data-x=""><?start></code>).</p>
6791567904
6791667905 <p>The <dfn element-attr for="template"><code
6791767906 data-x="attr-template-shadowrootmode">shadowrootmode</code></dfn> content attribute is an
@@ -68141,50 +68130,16 @@ interface <dfn interface>HTMLTemplateElement</dfn> : <span>HTMLElement</span> {
6814168130 <li><p><span>Assert</span>: <var>template</var>'s <code data-x="attr-template-for">for</code>
6814268131 attribute is specified.</p></li>
6814368132
68144- <li><p>Let <var>forAttrValue </var> be <var>template</var>'s <code
68133+ <li><p>Let <var>markerName </var> be <var>template</var>'s <code
6814568134 data-x="attr-template-for">for</code> attribute's value.</p></li>
6814668135
68147- <li><p>If <var>forAttrValue</var> is the empty string, then return false.</p></li>
68148-
68149- <li>
68150- <p>If <var>forAttrValue</var> contains one or more U+0023 (#):</p>
68151-
68152- <ol>
68153- <li><p>Let <var>parentMarkerName</var> be the part of <var>forAttrValue</var> before the first
68154- U+0023 (#).</p></li>
68155-
68156- <li><p>Let <var>childMarkerName</var> be the part of <var>forAttrValue</var> after the first
68157- U+0023 (#).</p></li>
68158- </ol>
68159- </li>
68160-
68161- <li><p>Otherwise, let <var>parentMarkerName</var> be <var>forAttrValue</var> and let
68162- <var>childMarkerName</var> be the empty string.</p></li>
68163-
68164- <li><p>Let <var>parent</var> be null.</p></li>
68165-
68166- <li><p>If <var>scope</var> is a <span>shadow root</span> and its <span
68167- data-x="shadow-marker">marker</span> is equal to <var>parentMarkerName</var>, then set
68168- <var>parent</var> to <var>scope</var>.
68169-
68170- <li>
68171- <p>Otherwise, set <var>parent</var> to the first <span>inclusive descendant</span> of
68172- <var>scope</var> in <span>tree order</span> with a <code data-x="attr-marker">marker</code>
68173- attribute value equal to <var>parentMarkerName</var>, or null if there is no such
68174- element.</p>
68175-
68176- <p class="XXX">Limit <var>parent</var> to "normal" elements.</p>
68177- </li>
68178-
68179- <li><p>If <var>parent</var> is null, then return false.</p></li>
68180-
6818168136 <li><p>Let (<var>start</var>, <var>end</var>) be the result of <span>find markers</span>
68182- given <var>parent </var> and <var>childMarkerName </var>.</p></li>
68137+ given <var>scope </var> and <var>markerName </var>.</p></li>
6818368138
6818468139 <li><p>If <var>start</var> is null, then return false.</p></li>
6818568140
6818668141 <li><p>Set <var>template</var>'s <span>insertion target</span> to
68187- <var>parent </var>.</p></li>
68142+ <var>start </var>'s parent .</p></li>
6818868143
6818968144 <li><p>Set <var>template</var>'s <span>insertion start marker</span> to
6819068145 <var>start</var>.</p></li>
@@ -68214,56 +68169,74 @@ interface <dfn interface>HTMLTemplateElement</dfn> : <span>HTMLElement</span> {
6821468169 </div>
6821568170
6821668171 <div algorithm>
68217- <p>To <dfn>find markers</dfn> given a node <var>parent </var> and a string <var>name</var>:</p>
68172+ <p>To <dfn>find markers</dfn> given a node <var>scope </var> and a string <var>name</var>:</p>
6821868173
6821968174 <ol>
68220- <li><p>Let <var>start</var> be null.</p></li>
68221-
68222- <li><p>Let <var>nesting level</var> be 0.</p></li>
68223-
6822468175 <li>
68225- <p>For each child <code>ProcessingInstruction</code> node < var>pi </var> of <var>parent </var>, in
68226- <span>tree order</span>:</p>
68176+ <p>For each < var>descendant </var> of <var>scope </var>'s <span
68177+ data-x="concept-tree-descendant">descendants</span>, in <span>tree order</span>:</p>
6822768178
6822868179 <ol>
68229- <li><p>Let <var>piName</var> be <var>pi</var>'s <code data-x="">name</code> attribute's value,
68230- or the empty string if the <code data-x="">name</code> attribute is not specified.</p></li>
68180+ <li><p>If <var>descendant</var> is not a <code>ProcessingInstruction</code> node, then
68181+ <span>continue</span>.</p></li>
68182+
68183+ <li><p>If <var>descendant</var>'s <code data-x="">name</code> attribute's value is not
68184+ <var>name</var>, then <span>continue</span>.</p></li>
68185+
68186+ <li><p>If <var>descendant</var>'s <span data-x="concept-pi-target">target</span> is an
68187+ <span>ASCII case-insensitive</span> match for "<code data-x="">marker</code>", then return
68188+ (<var>descendant</var>, <var>descendant</var>).</p></li>
6823168189
6823268190 <li>
68233- <p>Switch on <var>pi</var>'s <span data-x="concept-pi-target">target</span>:</p>
68191+ <p>If <var>descendant</var>'s <span data-x="concept-pi-target">target</span> is an
68192+ <span>ASCII case-insensitive</span> match for "<code data-x="">start</code>":</p>
6823468193
68235- <dl class=switch>
68236- <dt><span>ASCII case-insensitive</span> match for "<code data-x="">marker</code>"</dt>
68237- <dd><p>If <var>start</var> is null and <var>piName</var> is <var>name</var>, then return
68238- (<var>pi</var>, <var>pi</var>).</p></dd>
68194+ <ol>
68195+ <li><p>Let <var>start</var> be <var>descendant</var>.</p></li>
6823968196
68240- <dt><span>ASCII case-insensitive</span> match for "<code data-x="">start</code>"</dt>
68241- <dd>
68242- <p>If <var>start</var> is null and <var>piName</var> is <var>name</var>, then set
68243- <var>start</var> to pi.</p>
68197+ <li><p>Let <var>nesting level</var> be 0.</p></li>
6824468198
68245- <p>Otherwise, if <var>start</var> is not null, then increment <var>nesting level</var> by
68246- one.</p>
68247- </dd>
68199+ <li><p>Let <var>sibling</var> be <var>start</var>'s <span>next sibling</span>.</p></li>
6824868200
68249- <dt><span>ASCII case-insensitive</span> match for "<code data-x="">end</code>"</dt>
68250- <dd>
68251- <p>If <var>start</var> is not null and <var>nesting level</var> is 0, then return
68252- (<var>start</var>, <var>pi</var>).</p>
68201+ <li>
68202+ <p>While <var>sibling</var> is not null:</p>
6825368203
68254- <p>If <var>start</var> is not null, then decrement <var>nesting level</var> by one.</p>
68255- </dd>
68256- </dl>
68204+ <ol>
68205+ <li><p>If <var>sibling</var> is not a <code>ProcessingInstruction</code> node, then
68206+ <span>continue</span>.</p></li>
68207+
68208+ <li><p>If <var>sibling</var>'s <span data-x="concept-pi-target">target</span> is an
68209+ <span>ASCII case-insensitive</span> match for "<code data-x="">start</code>", then
68210+ increment <var>nesting level</var> by one.</p></li>
68211+
68212+ <li>
68213+ <p>Otherwise, if <var>sibling</var>'s <span data-x="concept-pi-target">target</span> is an
68214+ <span>ASCII case-insensitive</span> match for "<code data-x="">end</code>":</p>
68215+
68216+ <ol>
68217+ <li><p>If <var>nesting level</var> is 0, then return (<var>start</var>,
68218+ <var>sibling</var>).</p></li>
68219+
68220+ <li><p>Otherwise, decrement <var>nesting level</var> by one.</p></li>
68221+ </ol>
68222+ </li>
68223+
68224+ <li><p>Let <var>sibling</var> be <var>sibling</var>'s <span>next sibling</span>.</p></li>
68225+ </ol>
68226+ </li>
68227+
68228+ <li>
68229+ <p>Return (<var>start</var>, null).</p>
68230+
68231+ <p class="note">No matching <code data-x=""><?end></code> was found, which is interpreted
68232+ as a range from <var>start</var> to the end of its parent.</p>
68233+ </li>
68234+ </ol>
6825768235 </li>
6825868236 </ol>
6825968237 </li>
6826068238
68261- <li>
68262- <p>Return (<var>start</var>, null).</p>
68263-
68264- <p class="note">No matching <code data-x=""><?end></code> was found, which is interpreted as
68265- a range from <var>start</var> to the end of its parent.</p>
68266- </li>
68239+ <li><p>Return (null, null).</p></li>
6826768240 </ol>
6826868241 </div>
6826968242
@@ -68344,9 +68317,9 @@ interface <dfn interface>HTMLTemplateElement</dfn> : <span>HTMLElement</span> {
6834468317 <h1>How to train your cat</h1>
6834568318 <p>Set realistic goals and don't expect your cat to make a perfect cup of tea
6834668319 on the first try.</p>
68347- <aside marker="recommended" >
68320+ <aside>
6834868321 <p>Recommended reading:</p>
68349- <?start>
68322+ <?start name="recommended" >
6835068323 <ul class="placeholder">
6835168324 <li>...</li>
6835268325 <li>...</li>
@@ -68369,9 +68342,10 @@ interface <dfn interface>HTMLTemplateElement</dfn> : <span>HTMLElement</span> {
6836968342 </body>
6837068343</html></code></pre>
6837168344
68372- <p>The content between <code data-x=""><?start></code> and <code data-x=""><?end></code> is
68373- replaced with the <code>template</code> contents. Since the new content does not use <code
68374- data-x="">class="placeholder"</code>, the placeholder styling no longer applies.</p>
68345+ <p>The content between <code data-x=""><?start name="recommended></code> and <code
68346+ data-x=""><?end></code> is replaced with the <code>template</code> contents. Since the new
68347+ content does not use <code data-x="">class="placeholder"</code>, the placeholder styling no
68348+ longer applies.</p>
6837568349 </div>
6837668350
6837768351
@@ -140483,9 +140457,6 @@ document.body.appendChild(text);
140483140457 data-x="attr-template-shadowrootdelegatesfocus">shadowrootdelegatesfocus</code> attribute;
140484140458 otherwise false.</p></li>
140485140459
140486- <li><p>Let <var>marker</var> be <var>templateStartTag</var>'s <code
140487- data-x="attr-marker">marker</code> attribute's value.</p></li>
140488-
140489140460 <li><p>If <var>declarativeShadowHostElement</var> is a <span>shadow host</span>, then
140490140461 <span>insert an element at the adjusted insertion location</span> with
140491140462 <var>template</var>.</p></li>
@@ -140504,8 +140475,8 @@ document.body.appendChild(text);
140504140475 <li>
140505140476 <p><span data-x="concept-attach-a-shadow-root">Attach a shadow root</span> with
140506140477 <var>declarativeShadowHostElement</var>, <var>mode</var>, <var>clonable</var>,
140507- <var>serializable</var>, <var>delegatesFocus</var>, "<code data-x="">named</code>",
140508- <var>marker</var>, and <var> registry</var>.</p>
140478+ <var>serializable</var>, <var>delegatesFocus</var>, "<code data-x="">named</code>", and
140479+ <var>registry</var>.</p>
140509140480
140510140481 <p>If an exception is thrown, then catch it and:</p>
140511140482
@@ -140617,7 +140588,7 @@ document.body.appendChild(text);
140617140588 <span>parse error</span>.</p></li>
140618140589
140619140590 <li>
140620- <p>Otherwise, if <span>current node</span>'s <span>insertion target</span> is not null:</p>
140591+ <p>Otherwise, if <span>current node</span>'s <span>insertion target</span> is not null:</p>
140621140592
140622140593 <ol>
140623140594 <li><p>Let <var>start</var> be <span>current node</span>'s <span>insertion start
@@ -153199,7 +153170,7 @@ interface <dfn interface>External</dfn> {
153199153170 <tr>
153200153171 <th> <code data-x="">for</code>
153201153172 <td> <code data-x="attr-template-for">template</code>
153202- <td> Enables updates of existing content (used together with the <code data-x="attr-marker">marker</code> attribute)
153173+ <td> Updates existing content
153203153174 <td> Text
153204153175 <tr>
153205153176 <th> <code data-x="">form</code>
@@ -153423,11 +153394,6 @@ interface <dfn interface>External</dfn> {
153423153394 <td> <code data-x="attr-meter-low">meter</code>
153424153395 <td> High limit of low range
153425153396 <td> <span>Valid floating-point number</span>*
153426- <tr>
153427- <th> <code data-x="">marker</code>
153428- <td> <span data-x="attr-marker">HTML elements</span>
153429- <td> Identifier for which element to update (used together with the <code data-x="attr-template-for">for</code> attribute)
153430- <td> <a href="#attribute-text">Text</a>*
153431153397 <tr>
153432153398 <th> <code data-x="">max</code>
153433153399 <td> <code data-x="attr-input-max">input</code>
0 commit comments