custom-elements

edit

WPT coverage of the tests of custom-elements at the revision 5602b0f210e3. The tests link to their results in the browsers on wpt.fyi. The tentative tests (experimental features) and the reftests are listed separately from the stable tests.

GroupPassingTestsDisabledPass rate
Stable183189097%
Tentative27029%
Reftests13033%
All186199093%

Failure reasons

The tests that do not pass (failing or disabled), by kind of reason. A test with several reasons counts once per kind.

  • BUG: 2
  • TEST BUG: 2
  • NOT IMPLEMENTED: 9

Stable tests

TestResultSubtestsKindDescription
CustomElementRegistry-constructor-and-callbacks-are-held-strongly.htmlPass5 / 5
CustomElementRegistry-getName.htmlPass4 / 4
CustomElementRegistry.htmlPass46 / 46
Document-createElement-customized-builtins.htmlPass4 / 4
Document-createElement-svg.svgPass2 / 2
Document-createElement.htmlPass36 / 36
Document-createElementNS-customized-builtins.htmlPass3 / 3
Document-createElementNS-prefix-timing.htmlPass3 / 3
Document-createElementNS.htmlPass4 / 4
ElementInternals-accessibility-values.htmlPass49 / 49
ElementInternals-accessibility.htmlPass50 / 50
ElementInternals-role.htmlPass68 / 68
HTMLElement-attachInternals.htmlPass4 / 4
HTMLElement-constructor-customized-builtins.htmlPass2 / 2
HTMLElement-constructor.htmlPass12 / 12
adopted-callback.htmlPass71 / 71
append-children-to-new-parent-cycle.htmlPass1 / 1
attribute-changed-callback.htmlPass13 / 13
builtin-coverage.htmlPass444 / 444
connected-callbacks-html-fragment-parsing.htmlPass8 / 8
connected-callbacks-template.htmlPass1 / 1
connected-callbacks.htmlPass40 / 40
createElement-reentrant-construction.window.jsPass2 / 2
cross-realm-callback-report-exception.htmlPass5 / 5
custom-element-reaction-queue.htmlPass6 / 6
customized-built-in-constructor-exceptions.htmlPass5 / 5
disconnected-callbacks.htmlPass40 / 40
element-internals-aria-element-reflection.htmlPass9 / 9
element-internals-shadowroot.htmlPass7 / 7
enqueue-custom-element-callback-reactions-inside-another-callback.htmlPass8 / 8
form-associated/ElementInternals-NotSupportedError.htmlPass1 / 1
form-associated/ElementInternals-form.htmlPass2 / 2
form-associated/ElementInternals-labels.htmlPass3 / 3
form-associated/ElementInternals-setFormValue-nullish-value.htmlPass2 / 2
form-associated/ElementInternals-setFormValue.htmlPass55 / 55
form-associated/ElementInternals-setValidity-normalize-newlines.htmlPass2 / 2
form-associated/ElementInternals-target-element-is-held-strongly.htmlPass1 / 1
form-associated/ElementInternals-validation.htmlPass14 / 14
form-associated/disabled-delegatesFocus.htmlPass1 / 1
form-associated/fieldset-elements-after-upgrade.htmlPass1 / 1
form-associated/fieldset-elements-during-construction.htmlPass1 / 1
form-associated/fieldset-elements.htmlPass1 / 1
form-associated/focusability.htmlPass1 / 1
form-associated/form-associated-callback.htmlPass5 / 5
form-associated/form-disabled-callback.htmlPass10 / 10
form-associated/form-disabled-legend.htmlPass6 / 6
form-associated/form-elements-namedItem.htmlPass3 / 3
form-associated/form-reset-callback.htmlPass3 / 3
form-associated/label-delegatesFocus.htmlPass2 / 2
historical.htmlPass3 / 3
htmlconstructor/newtarget-customized-builtins.htmlPass10 / 10
htmlconstructor/newtarget.htmlPass10 / 10
microtasks-and-constructors.htmlPass5 / 5
overwritten-customElements-global.htmlPass4 / 4
parser/parser-constructs-custom-element-in-document-write.htmlPass2 / 2
parser/parser-constructs-custom-element-synchronously.htmlPass1 / 1
parser/parser-constructs-custom-elements-with-is.htmlPass2 / 2
parser/parser-constructs-custom-elements.htmlPass2 / 2
parser/parser-custom-element-in-foreign-content.htmlPass1 / 1
parser/parser-fallsback-to-unknown-element.htmlPass4 / 4
parser/parser-sets-attributes-after-autonomous-constructor.htmlPass3 / 3
parser/parser-sets-attributes-after-built-in-constructor.htmlFail8 / 9TEST BUGthe document.anchors subtest of the empty name: the test expects the parser to move the first <a is=named-anchor> out of #anchor-container, where its constructor inserted it, but HTML's "insert an element at the adjusted insertion location" returns without inserting an element whose parent is non-null, so it stays before the second anchor (also appended to #anchor-container by its constructor), and document.anchors is [parser-anchor, empty] in tree order
parser/parser-sets-attributes-and-children.htmlPass5 / 5
parser/parser-uses-constructed-element.htmlPass2 / 2
parser/parser-uses-create-an-element-for-a-token-svg.svgPass2 / 2
parser/parser-uses-registry-of-owner-document.htmlPass10 / 10
parser/serializing-html-fragments-customized-builtins.htmlPass3 / 3
parser/xml-parser-custom-element-reparents-during-construction.xhtmlPass2 / 2
perform-microtask-checkpoint-before-construction-xml-parser.xhtmlPass1 / 1
perform-microtask-checkpoint-before-construction.htmlPass2 / 2
pseudo-class-defined-customized-builtins.htmlPass16 / 16
pseudo-class-defined.htmlPass24 / 24
range-and-constructors.htmlPass2 / 2
reaction-timing.htmlPass3 / 3
reactions/Animation.htmlPass3 / 3
reactions/AriaMixin-element-attributes.htmlPass16 / 16
reactions/AriaMixin-string-attributes.htmlPass80 / 80
reactions/Attr.htmlPass2 / 2
reactions/CSSStyleDeclaration.htmlPass30 / 30
reactions/ChildNode.htmlPass7 / 7
reactions/DOMStringMap.htmlPass8 / 8
reactions/DOMTokenList.htmlPass19 / 19
reactions/Document.htmlPass12 / 12
reactions/Element.htmlPass47 / 47
reactions/ElementContentEditable.htmlPass2 / 2
reactions/HTMLAnchorElement.htmlPass1 / 1
reactions/HTMLElement.htmlPass22 / 22
reactions/HTMLOptionElement.htmlPass2 / 2
reactions/HTMLOptionsCollection.htmlPass6 / 6
reactions/HTMLOutputElement.htmlPass2 / 2
reactions/HTMLSelectElement.htmlPass7 / 7
reactions/HTMLTableElement.htmlPass10 / 10
reactions/HTMLTableRowElement.htmlPass1 / 1
reactions/HTMLTableSectionElement.htmlPass2 / 2
reactions/HTMLTitleElement.htmlPass1 / 1
reactions/NamedNodeMap.htmlPass14 / 14
reactions/Node.htmlPass14 / 14
reactions/ParentNode.htmlPass4 / 4
reactions/Range.htmlPass10 / 10
reactions/Selection.htmlPass1 / 1
reactions/ShadowRoot.htmlPass3 / 3
reactions/customized-builtins/HTMLAreaElement.htmlPass16 / 16
reactions/customized-builtins/HTMLBaseElement.htmlPass4 / 4
reactions/customized-builtins/HTMLButtonElement.htmlPass20 / 20
reactions/customized-builtins/HTMLCanvasElement.htmlPass4 / 4
reactions/customized-builtins/HTMLDataElement.htmlPass2 / 2
reactions/customized-builtins/HTMLDetailsElement.htmlPass2 / 2
reactions/customized-builtins/HTMLEmbedElement.htmlPass8 / 8
reactions/customized-builtins/HTMLFieldSetElement.htmlPass4 / 4
reactions/customized-builtins/HTMLImageElement.htmlPass22 / 22
reactions/customized-builtins/HTMLInputElement.htmlPass1 / 1
reactions/customized-builtins/HTMLLIElement.htmlPass6 / 6
reactions/customized-builtins/HTMLLabelElement.htmlPass2 / 2
reactions/customized-builtins/HTMLMapElement.htmlPass2 / 2
reactions/customized-builtins/HTMLMediaElement.htmlPass28 / 28
reactions/customized-builtins/HTMLMetaElement.htmlPass6 / 6
reactions/customized-builtins/HTMLMeterElement.htmlPass12 / 12
reactions/customized-builtins/HTMLModElement.htmlPass8 / 8
reactions/customized-builtins/HTMLOListElement.htmlPass6 / 6
reactions/customized-builtins/HTMLOptGroupElement.htmlPass4 / 4
reactions/customized-builtins/HTMLParamElement.htmlPass4 / 4
reactions/customized-builtins/HTMLProgressElement.htmlPass4 / 4
reactions/customized-builtins/HTMLQuoteElement.htmlPass4 / 4
reactions/customized-builtins/HTMLSlotElement.htmlPass2 / 2
reactions/customized-builtins/HTMLSourceElement.htmlPass10 / 10
reactions/customized-builtins/HTMLStyleElement.htmlPass2 / 2
reactions/customized-builtins/HTMLTableCellElement.htmlPass16 / 16
reactions/customized-builtins/HTMLTableColElement.htmlPass2 / 2
reactions/customized-builtins/HTMLTimeElement.htmlPass2 / 2
reactions/with-exceptions.htmlPass1 / 1
registries/Construct.htmlPass3 / 3
registries/CustomElementRegistry-define.htmlPass3 / 3
registries/CustomElementRegistry-initialize.htmlPass13 / 13
registries/CustomElementRegistry-multi-register.htmlPass2 / 2
registries/CustomElementRegistry-upgrade.htmlFail2 / 5TEST BUGthe subtests that read clone.elementInternals.shadowRoot: DOM's "clone a single node" creates the copy of <some-host> with the synchronous custom elements flag unset, so it is undefined (its upgrade is only enqueued) when "clone a node" attaches its shadow root, and "attach a shadow root" only sets "available to element internals" for a precustomized or custom element: ElementInternals.shadowRoot is null, and upgrade(null) throws a TypeError
registries/Document-createElement.htmlPass10 / 10
registries/Document-createElementNS.htmlPass10 / 10
registries/Document-customElementRegistry.htmlPass4 / 4
registries/Document-importNode-cross-document.window.jsPass15 / 15
registries/Document-importNode.htmlPass20 / 20
registries/Element-customElementRegistry-exceptions.htmlPass3 / 3
registries/Element-customElementRegistry.htmlPass11 / 11
registries/Element-innerHTML.htmlFail11 / 12BUGcreateContextualFragment() on a range inside a <template> whose registry is scoped gives the parsed elements the registry of the template (the root of the fragment parser gets the registry of the context, as the HTML Standard says); the test expects the null registry
registries/ShadowRoot-init-customElementRegistry.htmlPass12 / 12
registries/ShadowRoot-init-declarative.htmlPass3 / 3
registries/ShadowRoot-innerHTML.htmlPass4 / 4
registries/adoption.window.jsPass36 / 36
registries/constructor-direct-call-fallback-registry.window.jsPass2 / 2
registries/constructor-reentry-createElement.window.jsPass4 / 4
registries/constructor-reentry-with-different-definition.htmlPass4 / 4
registries/define-customized-builtins.htmlPass15 / 15
registries/define.htmlPass70 / 70
registries/element-mutation-null-registry-removal.htmlPass1 / 1
registries/element-mutation.htmlPass15 / 15
registries/global.window.jsPass5 / 5
registries/initial-about-blank.window.jsPass1 / 1
registries/per-document.htmlPass3 / 3
registries/pseudo-class-defined.window.jsPass3 / 3
registries/scoped-custom-element-registry-customelementregistry-attribute-in-xhtml.xhtmlFail0 / 4NOT IMPLEMENTEDthe customelementregistry content attribute (the parsed element and its descendants keep a null registry)
registries/scoped-custom-element-registry-customelementregistry-attribute.htmlFail7 / 23NOT IMPLEMENTEDthe customelementregistry content attribute (the parsed element and its descendants keep a null registry)
registries/scoped-registry-append.htmlFail15 / 16BUGan element of the global registry adopted into a tree whose parent uses a scoped registry does not get the effective global registry
registries/scoped-registry-define-upgrade-criteria.htmlPass14 / 14
registries/scoped-registry-define-upgrade-order.htmlPass7 / 7
registries/scoped-registry-effective-global-registry.htmlPass66 / 66
registries/scoped-registry-initialize-upgrades.htmlPass12 / 12
registries/scoped-registry-initialize.htmlPass27 / 27
registries/scoped-registry-registry-define-get-etc.htmlPass7 / 7
registries/template.window.jsPass10 / 10
registries/upgrade.htmlPass5 / 5
registries/valid-custom-element-names.htmlPass1,975 / 1,975
shadow-descendant-lifecycle-order.htmlPass2 / 2
state/ElementInternals-states.htmlPass4 / 4
state/custom-state-set-strong-ref.htmlPass1 / 1
state/state-css-selector-nth-of.htmlPass3 / 3
state/state-css-selector-shadow-dom.htmlPass3 / 3
state/state-css-selector.htmlPass10 / 10
state/state-pseudo-class.htmlPass8 / 8
throw-on-dynamic-markup-insertion-counter-construct-xml-parser.xhtmlPass11 / 11
throw-on-dynamic-markup-insertion-counter-construct.htmlPass11 / 11
throw-on-dynamic-markup-insertion-counter-reactions-xml-parser.xhtmlPass11 / 11
throw-on-dynamic-markup-insertion-counter-reactions.htmlPass11 / 11
upgrading.htmlPass28 / 28
upgrading/Document-importNode-customized-builtins.htmlPass2 / 2
upgrading/Document-importNode.htmlPass2 / 2
upgrading/Node-cloneNode-customized-builtins.htmlPass1 / 1
upgrading/Node-cloneNode.htmlPass9 / 9
upgrading/upgrade-custom-element-error-event.htmlPass4 / 4
upgrading/upgrading-enqueue-reactions.htmlPass5 / 5
upgrading/upgrading-parser-created-element.htmlPass6 / 6

Tentative tests

TestResultSubtestsKindDescription
ElementInternals-accessibility.tentative.htmlPass3 / 3
element-internals-aria-element-reflection-shadow-including-root.tentative.htmlFail4 / 7NOT IMPLEMENTEDthe tentative ARIA element reflection of ElementInternals returning the elements of the custom element's own shadow tree and of another shadow tree of the document
element-internals-behaviors.tentative.htmlFail1 / 15NOT IMPLEMENTEDElementInternals behaviors (attachInternals({behaviors}), HTMLSubmitButtonBehavior)
form-associated/ElementInternals-behavior-accessibility.tentative.htmlError0 / 0NOT IMPLEMENTEDElementInternals behaviors (attachInternals({behaviors}), HTMLSubmitButtonBehavior)
form-associated/ElementInternals-submit-behavior-dialog.tentative.htmlError0 / 0NOT IMPLEMENTEDElementInternals behaviors (attachInternals({behaviors}), HTMLSubmitButtonBehavior)
form-associated/ElementInternals-submit-behavior.tentative.htmlError0 / 0NOT IMPLEMENTEDElementInternals behaviors (attachInternals({behaviors}), HTMLSubmitButtonBehavior)
reactions/AriaMixin-string-attributes.tentative.htmlPass8 / 8

Reftests

TestResultVariantsKindDescription
form-associated/ElementInternals-reportValidity-bubble.htmlFail0 / 1NOT IMPLEMENTEDthe validation message bubble shown by reportValidity() (a user interface of the browsers) is not rendered: the page is identical to the reference that does not report the validity
form-associated/ElementInternals-reportValidity-delegatesFocus.htmlFail0 / 1NOT IMPLEMENTEDthe validation message bubble shown by reportValidity() (a user interface of the browsers) is not rendered: the page is identical to the reference that does not report the validity
pseudo-class-defined-print.htmlPass1 / 1