diff --git a/spec/custom/index.html b/spec/custom/index.html index c7227622..fc5c7471 100644 --- a/spec/custom/index.html +++ b/spec/custom/index.html @@ -336,11 +336,11 @@

Types of Callbacks

Unless specified otherwise, this callback must be enqueued whenever custom element's attribute is added, changed or removed. Depending on the type of attribute modification, the following additional strings are added to the queue item:
attribute is set
-
attribute name, null and new attribute value
+
attribute name, null, new attribute value, and the attribute namespace.
attribute is changed
-
attribute name, old attribute value and new attribute value
+
attribute name, old attribute value, new attribute value, and the attribute namespace.
attribute is removed -
attribute name, old attribute value and null
+
attribute name, old attribute value, null, and the attribute namespace.
@@ -372,6 +372,7 @@

Creating and Passing Registries

In all other cases, new documents must not have a registry.

@@ -531,11 +532,21 @@

Extensions to type extension -- that is, this element does not introduce a new tag (like the custom tag elements do), but rather extends an existing element of type HTMLParagraphElement. Here's how one could instantiate this element:

+

+<p is="x-foo">Paragraph of amazement</p>
+
+Or imperatively, in JavaScript: +

+var foo = document.createElement('p', 'x-foo');
 
+

Elements with SVGElement prototype deserve a special mention: using custom tag approach results in ignored elements in SVG. Thus, your SVG-based custom elements would almost always be type extensions.

Unresolved Element Pseudoclass

@@ -586,12 +597,12 @@

Instantiating Custom Elements

Extensions to Document Interface

-

To allow creating both custom tag and type extension-style custom elements, the createElement or createElementNS methods have an optional typeExtension argument:

+

To allow creating both custom tag and type extension-style custom elements, the createElement or createElementNS methods have overloads with a typeExtension argument:


 partial interface Document {
-    Element createElement(DOMString localName, optional DOMString typeExtension);
-    Element createElementNS(DOMString? namespace, DOMString qualifiedName, optional DOMString typeExtension);
+    Element createElement(DOMString localName, DOMString typeExtension);
+    Element createElementNS(DOMString? namespace, DOMString qualifiedName, DOMString typeExtension);
 };