diff --git a/source b/source index 8f4842be964..4dea9c65380 100644 --- a/source +++ b/source @@ -9336,6 +9336,7 @@ interface HTMLElement : Element { HTMLElement implements DocumentAndElementEventHandlers; HTMLElement implements ElementContentEditable; +// Note: intentionally not [HTMLConstructor] interface HTMLUnknownElement : HTMLElement { };
The HTMLElement
interface holds methods and attributes related to a number of
@@ -12027,7 +12028,8 @@ gave me some of the songs they wrote. I love sharing my music.</p>
interface HTMLHeadElement : HTMLElement {};
+ [HTMLConstructor] +interface HTMLHeadElement : HTMLElement {};
name
[HTMLConstructor] +// Note: intentionally not [HTMLConstructor] interface HTMLKeygenElement : HTMLElement { - [CEReactions] attribute boolean autofocus; - [CEReactions] attribute DOMString challenge; - [CEReactions] attribute boolean disabled; + attribute boolean autofocus; + attribute DOMString challenge; + attribute boolean disabled; readonly attribute HTMLFormElement? form; - [CEReactions] attribute DOMString keytype; - [CEReactions] attribute DOMString name; + attribute DOMString keytype; + attribute DOMString name; readonly attribute DOMString type; @@ -65796,6 +65798,24 @@ console.log(plasticButton2.getAttribute("is")); // will output "plastic-button"< data-x="concept-form-submit">form submission, thedisabled
attribute, and so on. +Customized built-in elements are designed to allow extension of existing HTML + elements that have useful user-agent supplied behavior or APIs. As such, they can only extend + existing HTML elements defined in this specification, and cannot extend legacy elements such as +
+ +bgsound
,blink
,isindex
,multicol
, +nextid
, orspacer
that have been defined to use +HTMLUnknownElement
as their element interface.One reason for this requirement is future-compatibility: if a customized built-in + element was defined that extended a currently-unknown element, for example
+ +combobox
, this would prevent this specification from defining acombobox
element in the future, as consumers of the derived customized + built-in element would have come to depend on their base element having no interesting + user-agent-supplied behavior.Additionally,
+applet
andkeygen
elements cannot be extended, as they + are in the process of being removed from the Web platform.Drawbacks of autonomous custom elements
@@ -112586,18 +112606,19 @@ if (s = prompt('What is your name?')) {The
-applet
element must implement theHTMLAppletElement
interface.interface HTMLAppletElement : HTMLElement { - [CEReactions] attribute DOMString align; - [CEReactions] attribute DOMString alt; - [CEReactions] attribute DOMString archive; - [CEReactions] attribute DOMString code; - [CEReactions] attribute USVString codeBase; - [CEReactions] attribute DOMString height; - [CEReactions] attribute unsigned long hspace; - [CEReactions] attribute DOMString name; - [CEReactions] attribute USVString _object; // the underscore is not part of the identifier - [CEReactions] attribute unsigned long vspace; - [CEReactions] attribute DOMString width; +// Note: intentionally not [HTMLConstructor] +interface HTMLAppletElement : HTMLElement { + attribute DOMString align; + attribute DOMString alt; + attribute DOMString archive; + attribute DOMString code; + attribute USVString codeBase; + attribute DOMString height; + attribute unsigned long hspace; + attribute DOMString name; + attribute USVString _object; // the underscore is not part of the identifier + attribute unsigned long vspace; + attribute DOMString width; };The
-align
,The
marquee
element must implement theHTMLMarqueeElement
interface.interface HTMLMarqueeElement : HTMLElement { +[HTMLConstructor] +interface HTMLMarqueeElement : HTMLElement { [CEReactions] attribute DOMString behavior; [CEReactions] attribute DOMString bgColor; [CEReactions] attribute DOMString direction; @@ -112845,7 +112867,8 @@ if (s = prompt('What is your name?')) {The
-frameset
element must implement theHTMLFrameSetElement
interface.interface HTMLFrameSetElement : HTMLElement { +[HTMLConstructor] +interface HTMLFrameSetElement : HTMLElement { [CEReactions] attribute DOMString cols; [CEReactions] attribute DOMString rows; }; @@ -112965,7 +112988,8 @@ if (s = prompt('What is your name?')) {The
-frame
element must implement theHTMLFrameElement
interface.interface HTMLFrameElement : HTMLElement { +[HTMLConstructor] +interface HTMLFrameElement : HTMLElement { [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString scrolling; [CEReactions] attribute USVString src;