diff --git a/source b/source
index 40b02b992cb..7f3d48abd5b 100644
--- a/source
+++ b/source
@@ -3155,6 +3155,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
is
value
MutationObserver
interface and mutation observers in generalThe following features are defined in UI Events:
@@ -69985,43 +69986,52 @@ document.body.append(parent);A valid custom element name is a sequence of characters name that - meets all of the following requirements:
+A string name is a valid custom element name if all of the + following conditions are true:
name must match the PotentialCustomElementName
production:
name is a valid element local name;
-PotentialCustomElementName ::=
[a-z] (PCENChar)* '-'
- (PCENChar)*
PCENChar ::=
"-" | "." | [0-9] | "_" | [a-z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] |
- [#xF8-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] |
- [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] |
- [#x10000-#xEFFFF]
This ensures the custom element can be created with createElement()
.
name's first code point is an ASCII lower alpha;
+ +This ensures the HTML parser will treat the name as a tag name instead of as + text.
+This uses the EBNF notation from the - XML specification.
+name does not contain any ASCII upper + alphas;
+ +This ensures the user agent can always treat HTML elements + ASCII-case-insensitively.
name must not be any of the following:
+name contains a U+002D (-); and
+ +This used for namespacing and to ensure forward compatibility (since no + elements will be added to HTML, SVG, or MathML with hyphen-containing local names in the + future).
+name is not one of the following:
annotation-xml
color-profile
font-face
font-face-src
font-face-uri
font-face-format
font-face-name
missing-glyph
annotation-xml
"color-profile
"font-face
"font-face-src
"font-face-uri
"font-face-format
"font-face-name
"missing-glyph
"The list of names above is the summary of all hyphen-containing element names @@ -70030,34 +70040,14 @@ document.body.append(parent);
These requirements ensure a number of goals for valid - custom element names:
- -They start with an ASCII lower alpha, ensuring that the HTML parser will - treat them as tags instead of as text.
They do not contain any ASCII upper alphas, - ensuring that the user agent can always treat HTML elements ASCII-case-insensitively.
They contain a hyphen, used for namespacing and to ensure forward compatibility (since no - elements will be added to HTML, SVG, or MathML with hyphen-containing local names in the - future).
They can always be created with createElement()
and createElementNS()
, which have restrictions that go
- beyond the parser's.
Apart from these restrictions, a large variety of names is allowed, to give maximum
- flexibility for use cases like <math-α>
or <emotion-😍>
.
Apart from these restrictions, a large variety of names is allowed, to give maximum
+ flexibility for use cases like <math-α>
or <emotion-😍>
.
A custom element definition describes a custom element and consists of: