From d869f596d27e7d9a3658366f20ad587f2eb682ec Mon Sep 17 00:00:00 2001
From: Anne van Kesteren
Date: Sat, 18 Jul 2026 09:39:15 +0200
Subject: [PATCH] Order shadow root concepts consistently
Match DOM's order for the template IDL, attributes, parser, and
"attach a shadow root" call site: mode, delegates focus, serializable,
slot assignment, clonable, custom element registry. Reorders IDL
members, observable via property enumeration.
---
source | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/source b/source
index 98aa9b6135b..a926f4c2c48 100644
--- a/source
+++ b/source
@@ -69166,9 +69166,9 @@ not-slash = %x0000-002E / %x0030-10FFFF
Global attributes
shadowrootmode
shadowrootdelegatesfocus
+ shadowrootserializable
shadowrootslotassignment
shadowrootclonable
- shadowrootserializable
shadowrootcustomelementregistry
Accessibility considerations:
@@ -69185,9 +69185,9 @@ interface HTMLTemplateElement : HTMLElement {
readonly attribute DocumentFragment content;
[CEReactions] attribute DOMString shadowRootMode;
[CEReactions, Reflect] attribute boolean shadowRootDelegatesFocus;
+ [CEReactions, Reflect] attribute boolean shadowRootSerializable;
[CEReactions] attribute DOMString shadowRootSlotAssignment;
[CEReactions, Reflect] attribute boolean shadowRootClonable;
- [CEReactions, Reflect] attribute boolean shadowRootSerializable;
[CEReactions, Reflect] attribute DOMString shadowRootCustomElementRegistry;
};
@@ -69229,6 +69229,10 @@ interface HTMLTemplateElement : HTMLElement {
data-x="attr-template-shadowrootdelegatesfocus">shadowrootdelegatesfocus content
attribute is a boolean attribute.
+ The shadowrootserializable content
+ attribute is a boolean attribute.
+
The shadowrootslotassignment content
attribute is an enumerated attribute with the following keywords and states:
@@ -69259,10 +69263,6 @@ interface HTMLTemplateElement : HTMLElement {
data-x="attr-template-shadowrootclonable">shadowrootclonable content attribute is a
boolean attribute.
- The shadowrootserializable content
- attribute is a boolean attribute.
-
The shadowrootcustomelementregistry
content attribute is a boolean attribute.
@@ -145504,6 +145504,14 @@ document.body.appendChild(text);
Let mode be templateStartTag's shadowrootmode attribute's value.
+ Let delegatesFocus be true if templateStartTag has a shadowrootdelegatesfocus attribute;
+ otherwise false.
+
+ Let serializable be true if templateStartTag has a shadowrootserializable attribute;
+ otherwise false.
+
Let slotAssignment be "named".
If templateStartTag's shadowrootclonable attribute; otherwise
false.
- Let serializable be true if templateStartTag has a shadowrootserializable attribute;
- otherwise false.
-
- Let delegatesFocus be true if templateStartTag has a shadowrootdelegatesfocus attribute;
- otherwise false.
-
If declarativeShadowHostElement is a shadow host, then
insert an element at the adjusted insertion location with
template.
@@ -145538,8 +145538,8 @@ document.body.appendChild(text);
Attach a shadow root with
- declarativeShadowHostElement, mode, clonable,
- serializable, delegatesFocus, slotAssignment, and
+ declarativeShadowHostElement, mode, delegatesFocus,
+ serializable, slotAssignment, clonable, and
registry.
If an exception is thrown, then catch it and: