diff --git a/sections/changes.include b/sections/changes.include index 007269a32e..cc093cd8f6 100644 --- a/sections/changes.include +++ b/sections/changes.include @@ -13,8 +13,10 @@

Changes since the HTML 5.3 Second Public Working Draft

-
Add the :defined psuedo-class selector definition
+
Add the slot element
Substantive change for custom elements.
+
Add the :defined psuedo-class selector definition
+
Substantive change for custom elements. This is at risk with only one known implementation
Add autonomous custom elements
Substantive change, implemented in Firefox, Blink, Webkit
Includes the {{CustomElementRegistry}} object, the {{CEReactions}} and {{HTMLConstructor}} diff --git a/sections/elements.include b/sections/elements.include index dd544d9cea..621f0325e1 100644 --- a/sections/elements.include +++ b/sections/elements.include @@ -1204,6 +1204,18 @@ {{HTMLElement}} + + <{slot}> + Shadow root slot + flow; + phrasing + phrasing + transparent + globals; + <{slot/name}> + {{HTMLElement}} + + <{source}> Media source for <{video}> or <{audio}> or as image source for <{picture}> diff --git a/sections/semantics-scriptings.include b/sections/semantics-scriptings.include index e7697c3bbc..a84ae810be 100644 --- a/sections/semantics-scriptings.include +++ b/sections/semantics-scriptings.include @@ -2350,4 +2350,95 @@ Some of these requirements are checked during [=create an element|element creation=], and failing to follow them will result in a custom element that cannot be instantiated by the parser or DOM APIs.

+ +

The slot element

+ +
+
Categories:
+
Flow content.
+
Phrasing content.
+
Contexts in which this element can be used:
+
Where phrasing content is expected.
+
Content model:
+
Transparent
+
Tag omission in text/html:
+
Neither tag is omissible
+
Content attributes:
+
Global attributes
+
<{slot/name}> - the name of the slot created.
+
[=Allowed ARIA role attribute values=]:
+
+ Any role value. +
+
[=Allowed ARIA state and property attributes=]:
+
Any aria-* attributes + applicable to the default or allowed roles.
+
DOM interface:
+
+
+      [Exposed=Window, HTMLConstructor]
+        interface HTMLSlotElement : HTMLElement {
+          [CEReactions] attribute DOMString name;
+          sequence<Node> assignedNodes(optional AssignedNodesOptions options);
+          sequence<Element> assignedElements(optional AssignedNodesOptions options);
+        };
+
+        dictionary AssignedNodesOptions {
+          boolean flatten = false;
+        };
+      
+
+
+ DPub Roles: +
+
+ Any +
+
+ + The <{slot}> element creates a named slot within a shadow tree. + If it has an assigned node it represents that, if not it represents its contents. + + The name attribute's value is a string. + It represents the name of the slot created in a shadow tree. + + The {{slot/name}} IDL attribute must reflect the <{slot/name}> content attribute. + +
+
slot . name
+
Get or set the slot's name.
+
slot . assignedNodes()
+
Returns the slot's assigned nodes.
+
slot . assignedNodes({ flatten: true})
+
Returns the slot's assigned nodes, including those of any <{slot}> elements that are descendants, calculated recursively. If there are not assigned nodes it returns the elements children.
+
slot . assignedElements()
+
Returns the slot's assigned nodes that are Elements.
+
slot . assignedElements({ flatten: true})
+
Returns only the Elements that would be returned by + assignedNodes({ flatten: true}).
+
+ + The assignedNodes(), when invoked on an element element, + and given options options, must run the following algorithm: + +
    +
  1. If the flatten member of options is false, + return the element's assigned nodes.
  2. +
  3. otherwise, return the result of + [=find flattened slotables|finding flattened slottables=] for element.
  4. +
+ + The assignedElements(), when invoked on an element element, + and given options options, must run the following algorithm: + +
    +
  1. Let result be empty.
  2. +
  3. If the flatten member of options is false, + set result to the element's assigned nodes.
  4. +
  5. otherwise, set result to the result of + [=find flattened slotables|finding flattened slottables=] for element.
  6. +
  7. Remove all nodes from result that are not elements.
  8. +
  9. Return result.
  10. +
+ diff --git a/single-page.bs b/single-page.bs index 8482f6c9f5..d9d117ab34 100644 --- a/single-page.bs +++ b/single-page.bs @@ -954,6 +954,7 @@ urlPrefix: https://www.w3.org/TR/WebIDL-1/#; spec: WEBIDL-1 text: double text: Error text: long + text: sequence text: unrestricted double text: unsigned long text: enumeration @@ -963,6 +964,8 @@ urlPrefix: https://www.w3.org/TR/WebIDL-1/#; spec: WEBIDL-1 type: interface; text: DOMString[]; url: DOMString text: EmptyString; url: TreatNullAs + urlPrefix: slot-; type: dfn; + text: assigned nodes # ****************************** XML (and related) ******************************************