dom

edit

WPT coverage of the tests of dom 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
Stable665684698%
Tentative3055257%
Reftests440100%
All699743895%

Failure reasons

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

  • TEST BUG: 7
  • NOT IMPLEMENTED: 27
  • REQUIRES: 1
    • user-input: 1
  • TEST RUNNER: 2
  • OUT OF SCOPE: 1
  • PERFORMANCE: 6

Stable tests

TestResultSubtestsKindDescription
abort/AbortSignal.any.jsPass4 / 4
abort/abort-signal-any.any.jsPass28 / 28
abort/abort-signal-timeout.htmlPass1 / 1
abort/event.any.jsPass32 / 32
abort/reason-constructor.htmlPass1 / 1
abort/timeout.any.jsPass6 / 6
attributes-are-nodes.htmlPass4 / 4
collections/HTMLCollection-as-prototype.htmlPass2 / 2
collections/HTMLCollection-delete.htmlPass4 / 4
collections/HTMLCollection-detached-root-gc.htmlPass5 / 5
collections/HTMLCollection-empty-name.htmlPass7 / 7
collections/HTMLCollection-iterator.htmlPass6 / 6
collections/HTMLCollection-live-item-removal.htmlPass2 / 2
collections/HTMLCollection-live-mutations.window.jsPass5 / 5
collections/HTMLCollection-own-props.htmlPass8 / 8
collections/HTMLCollection-supported-property-indices.htmlPass7 / 7
collections/HTMLCollection-supported-property-names.htmlPass6 / 6
collections/domstringmap-supported-property-names.htmlPass5 / 5
collections/namednodemap-supported-property-names.htmlPass3 / 3
eventPathRemoved.htmlPass1 / 1
events/AddEventListenerOptions-once.any.jsPass8 / 8
events/AddEventListenerOptions-passive.any.jsPass10 / 10
events/AddEventListenerOptions-signal.any.jsPass22 / 22
events/Body-FrameSet-Event-Handlers.htmlPass48 / 48
events/CustomEvent.htmlPass3 / 3
events/Event-cancelBubble.htmlPass8 / 8
events/Event-constants.htmlPass4 / 4
events/Event-constructors.any.jsPass28 / 28
events/Event-defaultPrevented-after-dispatch.htmlPass2 / 2
events/Event-defaultPrevented.htmlPass8 / 8
events/Event-dispatch-bubble-canceled.htmlPass1 / 1
events/Event-dispatch-bubbles-false.htmlPass5 / 5
events/Event-dispatch-bubbles-true.htmlPass5 / 5
events/Event-dispatch-click.htmlPass33 / 33
events/Event-dispatch-detached-click.htmlPass2 / 2
events/Event-dispatch-detached-input-and-change.htmlPass12 / 12
events/Event-dispatch-handlers-changed.htmlPass1 / 1
events/Event-dispatch-listener-order.window.jsPass1 / 1
events/Event-dispatch-multiple-cancelBubble.htmlPass1 / 1
events/Event-dispatch-multiple-stopPropagation.htmlPass1 / 1
events/Event-dispatch-omitted-capture.htmlPass1 / 1
events/Event-dispatch-on-disabled-elements.htmlPass9 / 9
events/Event-dispatch-order-at-target.htmlPass1 / 1
events/Event-dispatch-order.htmlPass1 / 1
events/Event-dispatch-other-document.htmlPass1 / 1
events/Event-dispatch-propagation-stopped.htmlPass1 / 1
events/Event-dispatch-redispatch.htmlPass4 / 4
events/Event-dispatch-reenter.htmlPass1 / 1
events/Event-dispatch-single-activation-behavior.htmlPass132 / 132
events/Event-dispatch-target-moved.htmlPass1 / 1
events/Event-dispatch-target-removed.htmlPass1 / 1
events/Event-dispatch-throwing-multiple-globals.htmlPass2 / 2
events/Event-dispatch-throwing.htmlPass2 / 2
events/Event-init-while-dispatching.htmlPass5 / 5
events/Event-initEvent.htmlPass12 / 12
events/Event-isTrusted.any.jsPass2 / 2
events/Event-propagation.htmlPass7 / 7
events/Event-returnValue.htmlPass7 / 7
events/Event-stopImmediatePropagation.htmlPass1 / 1
events/Event-stopPropagation-cancel-bubbling.htmlPass1 / 1
events/Event-subclasses-constructors.htmlPass49 / 49
events/Event-timestamp-cross-realm-getter.htmlPass1 / 1
events/Event-timestamp-high-resolution.htmlPass4 / 4
events/Event-timestamp-high-resolution.https.htmlFail0 / 1NOT IMPLEMENTEDGamepadEvent
events/Event-timestamp-safe-resolution.htmlPass1 / 1
events/Event-type-empty.htmlPass2 / 2
events/Event-type.htmlPass3 / 3
events/EventListener-addEventListener.sub.window.jsPass1 / 1
events/EventListener-handleEvent-cross-realm.htmlPass5 / 5
events/EventListener-handleEvent.htmlPass6 / 6
events/EventListener-incumbent-global-1.sub.htmlFail0 / 1NOT IMPLEMENTEDthe incumbent settings object of callbacks (the callback context recorded by addEventListener()), so postMessage() from a listener reports the wrong source origin
events/EventListener-incumbent-global-2.sub.htmlFail0 / 1NOT IMPLEMENTEDthe incumbent settings object of callbacks (the callback context recorded by addEventListener()), so postMessage() from a listener reports the wrong source origin
events/EventListener-invoke-legacy.htmlPass6 / 6
events/EventListenerOptions-capture.htmlPass4 / 4
events/EventTarget-add-listener-platform-object.htmlPass1 / 1
events/EventTarget-add-remove-listener.any.jsPass2 / 2
events/EventTarget-addEventListener.any.jsPass2 / 2
events/EventTarget-constructible.any.jsPass6 / 6
events/EventTarget-dispatchEvent-returnvalue.htmlPass2 / 2
events/EventTarget-dispatchEvent.htmlPass25 / 25
events/EventTarget-removeEventListener.any.jsPass2 / 2
events/EventTarget-this-of-listener.htmlPass6 / 6
events/EventTarget-window-constructor.htmlPass1 / 1
events/KeyEvent-initKeyEvent.htmlPass3 / 3
events/click-on-absolute-pseudo.htmlPass1 / 1
events/element-click.htmlPass3 / 3
events/event-disabled-dynamic.htmlPass1 / 1
events/event-global-event-targets.htmlPass5 / 5
events/event-global-extra.window.jsPass6 / 6
events/event-global-is-still-set-when-coercing-beforeunload-result.htmlPass1 / 1
events/event-global-is-still-set-when-reporting-exception-onerror.htmlPass1 / 1
events/event-global-replaceable.htmlPass2 / 2
events/event-global-set-before-handleEvent-lookup.window.jsPass1 / 1
events/event-global.htmlPass8 / 8
events/event-global.worker.jsPass1 / 1
events/event-handler-attribute-replace-preserves-passive.htmlPass2 / 2
events/event-listener-not-fully-active-adopted-node.htmlPass5 / 5
events/event-listener-not-fully-active-callback.htmlPass4 / 4
events/event-listener-not-fully-active-navigated.htmlPass3 / 3
events/event-listener-not-fully-active-target.htmlPass16 / 16
events/event-src-element-nullable.htmlPass1 / 1
events/focus-event-document-move.htmlPass1 / 1
events/handler-count.htmlPass6 / 6
events/label-default-action.htmlPass1 / 1
events/legacy-pre-activation-behavior.window.jsPass1 / 1
events/mouse-event-retarget.htmlPass1 / 1
events/no-focus-events-at-clicking-editable-content-in-link.htmlPass2 / 2
events/non-cancelable-when-passive/generic-events-stay-cancelable.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-mousewheel-event-listener-on-body.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-mousewheel-event-listener-on-div.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-mousewheel-event-listener-on-document.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-mousewheel-event-listener-on-root.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-mousewheel-event-listener-on-window.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-touchmove-event-listener-on-body.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-touchmove-event-listener-on-div.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-touchmove-event-listener-on-document.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-touchmove-event-listener-on-root.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-touchmove-event-listener-on-window.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-touchstart-event-listener-on-body.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-touchstart-event-listener-on-div.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-touchstart-event-listener-on-document.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-touchstart-event-listener-on-root.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-touchstart-event-listener-on-window.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-wheel-event-listener-on-body.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-wheel-event-listener-on-div.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-wheel-event-listener-on-document.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-wheel-event-listener-on-root.htmlPass1 / 1
events/non-cancelable-when-passive/non-passive-wheel-event-listener-on-window.htmlPass1 / 1
events/non-cancelable-when-passive/passive-mousewheel-event-listener-on-body.htmlPass1 / 1
events/non-cancelable-when-passive/passive-mousewheel-event-listener-on-div.htmlPass1 / 1
events/non-cancelable-when-passive/passive-mousewheel-event-listener-on-document.htmlPass1 / 1
events/non-cancelable-when-passive/passive-mousewheel-event-listener-on-root.htmlPass1 / 1
events/non-cancelable-when-passive/passive-mousewheel-event-listener-on-window.htmlPass1 / 1
events/non-cancelable-when-passive/passive-touchmove-event-listener-on-body.htmlPass1 / 1
events/non-cancelable-when-passive/passive-touchmove-event-listener-on-div.htmlPass1 / 1
events/non-cancelable-when-passive/passive-touchmove-event-listener-on-document.htmlPass1 / 1
events/non-cancelable-when-passive/passive-touchmove-event-listener-on-root.htmlPass1 / 1
events/non-cancelable-when-passive/passive-touchmove-event-listener-on-window.htmlPass1 / 1
events/non-cancelable-when-passive/passive-touchstart-event-listener-on-body.htmlPass1 / 1
events/non-cancelable-when-passive/passive-touchstart-event-listener-on-div.htmlPass1 / 1
events/non-cancelable-when-passive/passive-touchstart-event-listener-on-document.htmlPass1 / 1
events/non-cancelable-when-passive/passive-touchstart-event-listener-on-root.htmlPass1 / 1
events/non-cancelable-when-passive/passive-touchstart-event-listener-on-window.htmlPass1 / 1
events/non-cancelable-when-passive/passive-wheel-event-listener-on-body.htmlPass1 / 1
events/non-cancelable-when-passive/passive-wheel-event-listener-on-div.htmlPass1 / 1
events/non-cancelable-when-passive/passive-wheel-event-listener-on-document.htmlPass1 / 1
events/non-cancelable-when-passive/passive-wheel-event-listener-on-root.htmlPass1 / 1
events/non-cancelable-when-passive/passive-wheel-event-listener-on-window.htmlPass1 / 1
events/non-cancelable-when-passive/synthetic-events-cancelable.htmlPass12 / 12
events/passive-by-default-non-node.htmlPass2 / 2
events/passive-by-default.htmlPass100 / 100
events/pointer-event-document-move.htmlPass1 / 1
events/preventDefault-during-activation-behavior.htmlPass1 / 1
events/relatedTarget.window.jsFail3 / 6TEST BUG3 subtests contradict the dispatch algorithm of the DOM Standard: a target that is its retargeted relatedTarget is not dispatched to (so target stays null), and target/relatedTarget are only cleared when the last shadow-adjusted target or its relatedTarget is in a shadow tree (they fail in Chrome and Safari, Firefox passes 1)
events/remove-all-listeners.htmlPass2 / 2
events/scrolling/iframe-chains.htmlPass1 / 1
events/scrolling/input-text-scroll-event-when-using-arrow-keys.htmlPass2 / 2
events/scrolling/save-iframe-scroll-offset-when-display-none.htmlPass2 / 2
events/scrolling/scroll-cross-origin-iframes.htmlPass1 / 1
events/scrolling/scroll-event-fired-to-element.htmlPass4 / 4
events/scrolling/scroll-event-fired-to-iframe.htmlPass4 / 4
events/scrolling/scroll-event-not-fired-on-ancestor-style-change.htmlPass1 / 1
events/scrolling/scroll-events-fired-once-per-frame-across-display-none.htmlPass2 / 2
events/scrolling/scrollIntoView-in-onscroll-to-sticky.htmlPass1 / 1
events/scrolling/scrollend-event-fired-after-instant-scroll-in-microtask.htmlPass1 / 1
events/scrolling/scrollend-event-fired-after-layout-clamping.htmlPass1 / 1
events/scrolling/scrollend-event-fired-after-snap.htmlPass2 / 2
events/scrolling/scrollend-event-fired-for-mandatory-snap-point-after-load.htmlPass1 / 1
events/scrolling/scrollend-event-fired-for-programmatic-scroll.htmlPass8 / 8
events/scrolling/scrollend-event-fired-for-scroll-attr-change.htmlPass8 / 8
events/scrolling/scrollend-event-fired-for-scrollIntoView.htmlPass5 / 5
events/scrolling/scrollend-event-fired-to-document.htmlPass2 / 2
events/scrolling/scrollend-event-fired-to-element-with-overscroll-behavior.htmlPass1 / 1
events/scrolling/scrollend-event-fired-to-window.htmlPass1 / 1
events/scrolling/scrollend-event-fires-for-repeat-key-ending-after-scroll-container-end-is-reached.htmlPass1 / 1
events/scrolling/scrollend-event-fires-on-visual-viewport.htmlError0 / 0REQUIRES(user-input)pinch zoom: the move of two touches does not zoom, and the visual viewport is never scaled nor scrolled relative to the layout viewport (its scale is 1, its offsets 0)
events/scrolling/scrollend-event-fires-to-iframe-window.htmlPass6 / 6
events/scrolling/scrollend-event-for-user-scroll.htmlPass5 / 5
events/scrolling/scrollend-event-handler-content-attributes.htmlPass4 / 4
events/scrolling/scrollend-event-not-fired-on-no-scroll.htmlPass4 / 4
events/scrolling/scrollend-fires-to-text-input.htmlPass5 / 5
events/scrolling/scrollend-with-snap-on-fractional-offset.htmlPass1 / 1
events/scrolling/visibility-hidden-scrolls.htmlPass2 / 2
events/scrolling/wheel-event-composed.htmlPass1 / 1
events/scrolling/wheel-event-no-scroll-after-prevent-default.htmlPass1 / 1
events/scrolling/wheel-event-transactions-basic.htmlPass3 / 3
events/scrolling/wheel-event-transactions-multiple-action-chains.htmlPass1 / 1
events/scrolling/wheel-event-transactions-target-display-change.htmlPass2 / 2
events/scrolling/wheel-event-transactions-target-elements.htmlPass1 / 1
events/scrolling/wheel-event-transactions-target-move.htmlPass1 / 1
events/scrolling/wheel-event-transactions-target-removal.htmlPass1 / 1
events/scrolling/wheel-event-transactions-target-resize.htmlPass2 / 2
events/shadow-relatedTarget.htmlPass2 / 2
events/webkit-animation-end-event.htmlPass13 / 13
events/webkit-animation-iteration-event.htmlPass13 / 13
events/webkit-animation-start-event.htmlPass13 / 13
events/webkit-transition-end-event.htmlPass13 / 13
events/window-composed-path.htmlPass1 / 1
events/window-event-restored-after-throwing-onerror.htmlPass1 / 1
historical-mutation-events.htmlPass10 / 10
historical.htmlPass80 / 80
idlharness.any.jsPass438 / 438
idlharness.window.jsFail1,949 / 1,979NOT IMPLEMENTEDXSLTProcessor
interface-objects.htmlPass23 / 23
lists/DOMTokenList-Iterable.htmlPass6 / 6
lists/DOMTokenList-coverage-for-attributes.htmlFail174 / 175NOT IMPLEMENTEDrelList on the MathML <a> element (MathMLAnchorElement only reflects href)
lists/DOMTokenList-iteration.htmlPass6 / 6
lists/DOMTokenList-stringifier.htmlPass1 / 1
lists/DOMTokenList-value.htmlPass1 / 1
nodes/Attr-prefix-xhtml.xhtmlPass2 / 2
nodes/Attr-prefix.htmlPass6 / 6
nodes/CharacterData-appendChild.htmlPass9 / 9
nodes/CharacterData-appendData.htmlPass14 / 14
nodes/CharacterData-data.htmlPass16 / 16
nodes/CharacterData-deleteData.htmlPass18 / 18
nodes/CharacterData-insertData.htmlPass18 / 18
nodes/CharacterData-remove.htmlPass12 / 12
nodes/CharacterData-replaceData.htmlPass34 / 34
nodes/CharacterData-substringData.htmlPass28 / 28
nodes/CharacterData-surrogates.htmlPass8 / 8
nodes/ChildNode-after.htmlPass45 / 45
nodes/ChildNode-before.htmlPass45 / 45
nodes/ChildNode-replaceWith.htmlPass33 / 33
nodes/Comment-constructor.htmlPass16 / 16
nodes/Comment-in-doctype.xhtmlPass1 / 1
nodes/DOMImplementation-createDocument-no-browsing-context.htmlPass5 / 5
nodes/DOMImplementation-createDocument.htmlPass434 / 434
nodes/DOMImplementation-createDocumentType.htmlPass82 / 82
nodes/DOMImplementation-createHTMLDocument-with-saved-implementation.htmlPass1 / 1
nodes/DOMImplementation-createHTMLDocument.htmlPass13 / 13
nodes/DOMImplementation-hasFeature.htmlPass137 / 137
nodes/Document-URL.htmlPass1 / 1
nodes/Document-adoptNode-DocumentFragment-with-host.window.jsPass7 / 7
nodes/Document-adoptNode.htmlPass7 / 7
nodes/Document-base-url-not-live.window.jsPass2 / 2
nodes/Document-characterSet-normalization-1.htmlPass315 / 315
nodes/Document-characterSet-normalization-2.htmlPass339 / 339
nodes/Document-cloneNode-about-base-url-relative.window.jsPass4 / 4
nodes/Document-cloneNode-about-base-url.window.jsPass5 / 5
nodes/Document-cloneNode-base-url-xml.window.jsPass3 / 3
nodes/Document-cloneNode-base-url.window.jsPass11 / 11
nodes/Document-cloneNode-srcdoc-base-url.window.jsPass4 / 4
nodes/Document-constructor-svg.svgPass4 / 4
nodes/Document-constructor-xml.xmlPass4 / 4
nodes/Document-constructor.htmlPass5 / 5
nodes/Document-contentType/contentType/contenttype_bmp.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_css.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_datauri_02.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_gif.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_html.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_javascripturi.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_jpg.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_mimeheader_01.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_mimeheader_02.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_mimeheader_03.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_png.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_txt.htmlPass1 / 1
nodes/Document-contentType/contentType/contenttype_xml.htmlPass1 / 1
nodes/Document-contentType/contentType/createDocument.htmlPass1 / 1
nodes/Document-contentType/contentType/createHTMLDocument.htmlPass1 / 1
nodes/Document-contentType/contentType/xhr_responseType_document.htmlPass1 / 1
nodes/Document-createAttribute.htmlPass36 / 36
nodes/Document-createCDATASection-xhtml.xhtmlPass7 / 7
nodes/Document-createCDATASection.htmlPass1 / 1
nodes/Document-createComment.htmlPass6 / 6
nodes/Document-createElement-namespace.htmlPass51 / 51
nodes/Document-createElement.htmlPass147 / 147
nodes/Document-createElementNS.htmlPass596 / 596
nodes/Document-createEvent-touchevent.window.jsPass3 / 3
nodes/Document-createEvent.https.htmlFail273 / 279OUT OF SCOPEthe TouchEvent aliases: as the desktop browsers, the library does not expose the legacy touch event APIs, so the subtests report a failed precondition
nodes/Document-createProcessingInstruction-xhtml.xhtmlPass12 / 12
nodes/Document-createProcessingInstruction.htmlPass12 / 12
nodes/Document-createTextNode.htmlPass6 / 6
nodes/Document-createTreeWalker.htmlPass5 / 5
nodes/Document-doctype.htmlPass2 / 2
nodes/Document-getElementById.htmlPass18 / 18
nodes/Document-getElementsByClassName.htmlPass1 / 1
nodes/Document-getElementsByTagName-xhtml.xhtmlPass10 / 10
nodes/Document-getElementsByTagName.htmlPass18 / 18
nodes/Document-getElementsByTagNameNS.htmlPass14 / 14
nodes/Document-implementation.htmlPass2 / 2
nodes/Document-importNode.htmlPass5 / 5
nodes/DocumentFragment-constructor.htmlPass2 / 2
nodes/DocumentFragment-getElementById.htmlPass5 / 5
nodes/DocumentFragment-querySelectorAll-after-modification.htmlPass1 / 1
nodes/DocumentType-literal-xhtml.xhtmlPass1 / 1
nodes/DocumentType-literal.htmlPass1 / 1
nodes/DocumentType-remove.htmlPass4 / 4
nodes/Element-childElement-null-svg.svgPass1 / 1
nodes/Element-childElement-null-xhtml.xhtmlPass1 / 1
nodes/Element-childElement-null.htmlPass1 / 1
nodes/Element-childElementCount-dynamic-add-svg.svgPass1 / 1
nodes/Element-childElementCount-dynamic-add-xhtml.xhtmlPass1 / 1
nodes/Element-childElementCount-dynamic-add.htmlPass1 / 1
nodes/Element-childElementCount-dynamic-remove-svg.svgPass1 / 1
nodes/Element-childElementCount-dynamic-remove-xhtml.xhtmlPass1 / 1
nodes/Element-childElementCount-dynamic-remove.htmlPass1 / 1
nodes/Element-childElementCount-nochild-svg.svgPass1 / 1
nodes/Element-childElementCount-nochild-xhtml.xhtmlPass1 / 1
nodes/Element-childElementCount-nochild.htmlPass1 / 1
nodes/Element-childElementCount-svg.svgPass1 / 1
nodes/Element-childElementCount-xhtml.xhtmlPass1 / 1
nodes/Element-childElementCount.htmlPass1 / 1
nodes/Element-children.htmlPass2 / 2
nodes/Element-classlist.htmlPass1,420 / 1,420
nodes/Element-closest-null-selectors.htmlPass2 / 2
nodes/Element-closest.htmlPass29 / 29
nodes/Element-firstElementChild-entity-xhtml.xhtmlPass1 / 1
nodes/Element-firstElementChild-entity.svgPass1 / 1
nodes/Element-firstElementChild-namespace-svg.svgPass1 / 1
nodes/Element-firstElementChild-namespace-xhtml.xhtmlPass1 / 1
nodes/Element-firstElementChild-namespace.htmlPass1 / 1
nodes/Element-firstElementChild-svg.svgPass1 / 1
nodes/Element-firstElementChild-xhtml.xhtmlPass1 / 1
nodes/Element-firstElementChild.htmlPass1 / 1
nodes/Element-getElementsByClassName.htmlPass3 / 3
nodes/Element-getElementsByTagName-change-document-HTMLNess.htmlPass1 / 1
nodes/Element-getElementsByTagName.htmlPass19 / 19
nodes/Element-getElementsByTagNameNS.htmlPass16 / 16
nodes/Element-hasAttribute.htmlPass2 / 2
nodes/Element-hasAttributes.htmlPass2 / 2
nodes/Element-insertAdjacentElement.htmlPass6 / 6
nodes/Element-insertAdjacentText.htmlPass6 / 6
nodes/Element-lastElementChild-svg.svgPass1 / 1
nodes/Element-lastElementChild-xhtml.xhtmlPass1 / 1
nodes/Element-lastElementChild.htmlPass1 / 1
nodes/Element-matches-active-pseudo-class.htmlPass4 / 4
nodes/Element-matches-complex-nth-last-of-type.htmlPass1 / 1
nodes/Element-matches-disabled-pseudo-class.htmlPass11 / 11
nodes/Element-matches-namespaced-elements.htmlPass6 / 6
nodes/Element-matches.htmlPass669 / 669
nodes/Element-nextElementSibling-svg.svgPass1 / 1
nodes/Element-nextElementSibling-xhtml.xhtmlPass1 / 1
nodes/Element-nextElementSibling.htmlPass1 / 1
nodes/Element-previousElementSibling-svg.svgPass1 / 1
nodes/Element-previousElementSibling-xhtml.xhtmlPass1 / 1
nodes/Element-previousElementSibling.htmlPass1 / 1
nodes/Element-querySelectorAll-context-element.htmlPass3 / 3
nodes/Element-remove.htmlPass4 / 4
nodes/Element-removeAttribute.htmlPass2 / 2
nodes/Element-removeAttributeNS.htmlPass1 / 1
nodes/Element-setAttribute-crbug-1138487.htmlPass1 / 1
nodes/Element-setAttribute.htmlPass2 / 2
nodes/Element-setAttributeNodeNS.htmlPass3 / 3
nodes/Element-siblingElement-null-svg.svgPass1 / 1
nodes/Element-siblingElement-null-xhtml.xhtmlPass1 / 1
nodes/Element-siblingElement-null.htmlPass1 / 1
nodes/Element-tagName-adopt.htmlPass1 / 1
nodes/Element-tagName.htmlPass6 / 6
nodes/Element-webkitMatchesSelector.htmlPass669 / 669
nodes/MutationObserver-attributes.htmlPass42 / 42
nodes/MutationObserver-callback-arguments.htmlPass1 / 1
nodes/MutationObserver-callback-order.window.jsPass3 / 3
nodes/MutationObserver-callback-tricky.htmlPass2 / 2
nodes/MutationObserver-characterData.htmlPass23 / 23
nodes/MutationObserver-childList.htmlPass40 / 40
nodes/MutationObserver-cross-realm-callback-report-exception.htmlPass1 / 1
nodes/MutationObserver-disconnect.htmlPass2 / 2
nodes/MutationObserver-document.htmlPass4 / 4
nodes/MutationObserver-inner-outer.htmlPass3 / 3
nodes/MutationObserver-overlapping-registrations.htmlPass3 / 3
nodes/MutationObserver-sanity.htmlPass16 / 16
nodes/MutationObserver-takeRecords.htmlPass3 / 3
nodes/MutationObserver-textContent.htmlPass4 / 4
nodes/MutationObserver-transient-registered-observers.window.jsPass15 / 15
nodes/MutationObserver-xml-parser.xhtmlPass1 / 1
nodes/Node-appendChild-cereactions-vs-script.window.jsPass1 / 1
nodes/Node-appendChild.htmlPass11 / 11
nodes/Node-baseURI.htmlPass9 / 9
nodes/Node-childNodes-cache-2.htmlPass1 / 1
nodes/Node-childNodes-cache.htmlPass1 / 1
nodes/Node-childNodes.htmlPass6 / 6
nodes/Node-cloneNode-XMLDocument.htmlPass1 / 1
nodes/Node-cloneNode-document-allow-declarative-shadow-roots.window.jsPass1 / 1
nodes/Node-cloneNode-document-with-doctype.htmlPass3 / 3
nodes/Node-cloneNode-external-stylesheet-no-bc.sub.htmlPass1 / 1
nodes/Node-cloneNode-parser-created-names.htmlPass2 / 2
nodes/Node-cloneNode-svg.htmlPass4 / 4
nodes/Node-cloneNode.htmlPass135 / 135
nodes/Node-compareDocumentPosition.htmlPass1,444 / 1,444
nodes/Node-constants.htmlPass8 / 8
nodes/Node-contains-xml.xmlPass8 / 8
nodes/Node-contains.htmlPass1,482 / 1,482
nodes/Node-insertBefore.htmlPass40 / 40
nodes/Node-isConnected-shadow-dom.htmlPass2 / 2
nodes/Node-isConnected.htmlPass2 / 2
nodes/Node-isEqualNode-xhtml.xhtmlPass14 / 14
nodes/Node-isEqualNode.htmlPass9 / 9
nodes/Node-isSameNode.htmlPass9 / 9
nodes/Node-lookupNamespaceURI.htmlPass75 / 75
nodes/Node-lookupPrefix.xhtmlPass11 / 11
nodes/Node-mutation-adoptNode.htmlPass2 / 2
nodes/Node-nodeName-xhtml.xhtmlPass7 / 7
nodes/Node-nodeName.htmlPass6 / 6
nodes/Node-nodeValue.htmlPass7 / 7
nodes/Node-normalize-2.htmlPass2 / 2
nodes/Node-normalize.htmlPass4 / 4
nodes/Node-parentElement.htmlPass12 / 12
nodes/Node-parentNode.htmlPass5 / 5
nodes/Node-properties.htmlPass726 / 726
nodes/Node-removeChild.htmlPass28 / 28
nodes/Node-replaceChild.htmlPass29 / 29
nodes/Node-textContent.htmlPass81 / 81
nodes/NodeList-Iterable.htmlPass8 / 8
nodes/NodeList-live-mutations.window.jsPass4 / 4
nodes/NodeList-static-length-getter-tampered-1.htmlDisabled–PERFORMANCEJavaScript engine stress test (millions of property accesses in a loop, ~18 seconds per test alone in a Release build): too slow for every run, and it does not test the DOM
nodes/NodeList-static-length-getter-tampered-2.htmlDisabled–PERFORMANCEJavaScript engine stress test (millions of property accesses in a loop, ~18 seconds per test alone in a Release build): too slow for every run, and it does not test the DOM
nodes/NodeList-static-length-getter-tampered-3.htmlDisabled–PERFORMANCEJavaScript engine stress test (millions of property accesses in a loop, ~18 seconds per test alone in a Release build): too slow for every run, and it does not test the DOM
nodes/NodeList-static-length-getter-tampered-indexOf-1.htmlDisabled–PERFORMANCEJavaScript engine stress test (millions of property accesses in a loop, ~18 seconds per test alone in a Release build): too slow for every run, and it does not test the DOM
nodes/NodeList-static-length-getter-tampered-indexOf-2.htmlDisabled–PERFORMANCEJavaScript engine stress test (millions of property accesses in a loop, ~18 seconds per test alone in a Release build): too slow for every run, and it does not test the DOM
nodes/NodeList-static-length-getter-tampered-indexOf-3.htmlDisabled–PERFORMANCEJavaScript engine stress test (millions of property accesses in a loop, ~18 seconds per test alone in a Release build): too slow for every run, and it does not test the DOM
nodes/NonDocumentTypeChildNode-sibling-element.htmlPass6 / 6
nodes/ParentNode-append.htmlPass25 / 25
nodes/ParentNode-children.htmlPass1 / 1
nodes/ParentNode-prepend.htmlPass22 / 22
nodes/ParentNode-properties.htmlPass12 / 12
nodes/ParentNode-querySelector-All-comma-selector.htmlPass2 / 2
nodes/ParentNode-querySelector-All-multiple-not.htmlPass1 / 1
nodes/ParentNode-querySelector-All-scope.htmlPass8 / 8
nodes/ParentNode-querySelector-All-xht.xhtPass1,975 / 1,975
nodes/ParentNode-querySelector-All.htmlPass1,975 / 1,975
nodes/ParentNode-querySelector-argument-stringification.htmlPass3 / 3
nodes/ParentNode-querySelector-attribute-change.htmlPass7 / 7
nodes/ParentNode-querySelector-basic-has.htmlPass1 / 1
nodes/ParentNode-querySelector-case-insensitive.htmlPass2 / 2
nodes/ParentNode-querySelector-class-change.htmlPass6 / 6
nodes/ParentNode-querySelector-dupe-id.htmlPass2 / 2
nodes/ParentNode-querySelector-empty-attribute-value.htmlPass2 / 2
nodes/ParentNode-querySelector-escapes.htmlFail66 / 68TEST BUGthe test predates the restriction of the non-ASCII ident code points of CSS Syntax (U+00A0 and U+2003 are not ident code points, so # followed by one of them is not a valid selector); the browsers still accept them
nodes/ParentNode-querySelector-host-pseudo-class.htmlPass1 / 1
nodes/ParentNode-querySelector-hyphen-prefix.htmlPass4 / 4
nodes/ParentNode-querySelector-innerHTML.htmlPass1 / 1
nodes/ParentNode-querySelector-invalid-comment-like.htmlPass3 / 3
nodes/ParentNode-querySelector-is-nested-pseudo-class.htmlPass2 / 2
nodes/ParentNode-querySelector-is-not.htmlPass1 / 1
nodes/ParentNode-querySelector-last-child-combinator.htmlPass1 / 1
nodes/ParentNode-querySelector-matches.htmlPass4 / 4
nodes/ParentNode-querySelector-multiple-attributes-xml.xhtmlPass1 / 1
nodes/ParentNode-querySelector-namespace-tagname-attribute.htmlPass8 / 8
nodes/ParentNode-querySelector-nested-nth-child.htmlPass1 / 1
nodes/ParentNode-querySelector-nested.htmlPass1 / 1
nodes/ParentNode-querySelector-nth-of-type-complex.htmlPass1 / 1
nodes/ParentNode-querySelector-orphan-scope.htmlPass2 / 2
nodes/ParentNode-querySelector-parent-context.htmlPass1 / 1
nodes/ParentNode-querySelector-scope-in-not.htmlPass1 / 1
nodes/ParentNode-querySelector-scope-numeric-id.xhtmlPass1 / 1
nodes/ParentNode-querySelector-scope.htmlPass4 / 4
nodes/ParentNode-querySelector-shadowroot-nth-child.htmlPass1 / 1
nodes/ParentNode-querySelector-svg-not-root.htmlPass1 / 1
nodes/ParentNode-querySelector-tag-case.htmlPass6 / 6
nodes/ParentNode-querySelector-underscore-local-name.xhtmlPass1 / 1
nodes/ParentNode-querySelector-xml-capitalization.window.jsPass3 / 3
nodes/ParentNode-querySelectorAll-case-insensitive-attribute-flag.htmlPass2 / 2
nodes/ParentNode-querySelectorAll-namespace.htmlPass1 / 1
nodes/ParentNode-querySelectorAll-nested-not-has.htmlPass1 / 1
nodes/ParentNode-querySelectorAll-not-descendant.htmlPass1 / 1
nodes/ParentNode-querySelectorAll-removed-elements.htmlPass1 / 1
nodes/ParentNode-querySelectorAll-scope-change.htmlPass1 / 1
nodes/ParentNode-querySelectorAll-scope-colon-id-class.htmlPass2 / 2
nodes/ParentNode-querySelectorAll-svg-append.htmlPass2 / 2
nodes/ParentNode-querySelectorAll-svg-class.htmlPass1 / 1
nodes/ParentNode-querySelectors-exclusive.htmlPass1 / 1
nodes/ParentNode-querySelectors-namespaces.htmlPass1 / 1
nodes/ParentNode-querySelectors-space-and-dash-attribute-value.htmlPass2 / 2
nodes/ParentNode-replaceChildren.htmlPass31 / 31
nodes/ProcessingInstruction-escapes-1.xhtmlPass1 / 1
nodes/ProcessingInstruction-in-doctype.xhtmlPass1 / 1
nodes/ProcessingInstruction-literal-1.xhtmlPass1 / 1
nodes/ProcessingInstruction-literal-2.xhtmlPass1 / 1
nodes/Text-constructor.htmlPass16 / 16
nodes/Text-splitText.htmlPass6 / 6
nodes/Text-wholeText.htmlPass1 / 1
nodes/adoption.window.jsPass6 / 6
nodes/append-on-Document.htmlPass5 / 5
nodes/attach-shadow-realm-after-adoption.htmlPass5 / 5
nodes/attributes-namednodemap-cross-document.window.jsPass2 / 2
nodes/attributes-namednodemap.htmlPass8 / 8
nodes/attributes.htmlPass67 / 67
nodes/case.htmlPass285 / 285
nodes/create-element-realm-after-adoption.htmlPass5 / 5
nodes/getElementById-namespaced-id.htmlPass4 / 4
nodes/getElementsByClassName-01.htmPass1 / 1
nodes/getElementsByClassName-02.htmPass1 / 1
nodes/getElementsByClassName-03.htmPass1 / 1
nodes/getElementsByClassName-04.htmPass1 / 1
nodes/getElementsByClassName-05.htmPass1 / 1
nodes/getElementsByClassName-06.htmPass1 / 1
nodes/getElementsByClassName-07.htmPass1 / 1
nodes/getElementsByClassName-08.htmPass1 / 1
nodes/getElementsByClassName-09.htmPass1 / 1
nodes/getElementsByClassName-10.xmlPass1 / 1
nodes/getElementsByClassName-11.xmlPass1 / 1
nodes/getElementsByClassName-12.htmPass1 / 1
nodes/getElementsByClassName-13.htmPass1 / 1
nodes/getElementsByClassName-14.htmPass2 / 2
nodes/getElementsByClassName-15.htmPass1 / 1
nodes/getElementsByClassName-16.htmPass1 / 1
nodes/getElementsByClassName-17.htmPass1 / 1
nodes/getElementsByClassName-18.htmPass1 / 1
nodes/getElementsByClassName-19.htmPass1 / 1
nodes/getElementsByClassName-20.htmPass1 / 1
nodes/getElementsByClassName-21.htmPass1 / 1
nodes/getElementsByClassName-22.htmPass1 / 1
nodes/getElementsByClassName-23.htmPass1 / 1
nodes/getElementsByClassName-24.htmPass1 / 1
nodes/getElementsByClassName-25.htmPass1 / 1
nodes/getElementsByClassName-26.htmPass1 / 1
nodes/getElementsByClassName-27.htmPass1 / 1
nodes/getElementsByClassName-28.htmPass1 / 1
nodes/getElementsByClassName-29.htmPass1 / 1
nodes/getElementsByClassName-30.htmPass1 / 1
nodes/getElementsByClassName-31.htmPass1 / 1
nodes/getElementsByClassName-32.htmlPass4 / 4
nodes/getElementsByClassName-empty-set.htmlPass3 / 3
nodes/getElementsByClassName-whitespace-class-names.htmlPass26 / 26
nodes/insert-adjacent.htmlPass14 / 14
nodes/insertion-removing-steps/Node-append-form-and-script-from-fragment.htmlPass1 / 1
nodes/insertion-removing-steps/Node-append-meta-referrer-and-script-from-fragment.htmlPass1 / 1
nodes/insertion-removing-steps/Node-appendChild-script-and-button-from-div.htmlPass1 / 1
nodes/insertion-removing-steps/Node-appendChild-script-and-custom-from-fragment.htmlPass1 / 1
nodes/insertion-removing-steps/Node-appendChild-script-and-default-style-meta-from-fragment.htmlFail0 / 1NOT IMPLEMENTED<meta http-equiv=default-style> (selecting the preferred alternate style sheet set)
nodes/insertion-removing-steps/Node-appendChild-script-and-div-from-fragment.htmlPass1 / 1
nodes/insertion-removing-steps/Node-appendChild-script-and-iframe.htmlPass4 / 4
nodes/insertion-removing-steps/Node-appendChild-script-and-source-from-fragment.htmlPass1 / 1
nodes/insertion-removing-steps/Node-appendChild-script-and-style.htmlFail2 / 5TEST BUG3 subtests expect the style sheet of a <link rel=stylesheet> with a data: URL to be created synchronously by its insertion steps (as in Chrome), while the HTML Standard creates it when the fetch completes (they fail in Firefox and Safari)
nodes/insertion-removing-steps/Node-appendChild-script-in-script.htmlPass1 / 1
nodes/insertion-removing-steps/Node-appendChild-script-with-mutation-observer-takeRecords.htmlPass1 / 1
nodes/insertion-removing-steps/Node-appendChild-text-and-script-in-style.htmlPass1 / 1
nodes/insertion-removing-steps/Node-appendChild-text-in-script.htmlPass1 / 1
nodes/insertion-removing-steps/Node-appendChild-three-scripts-from-fragment.htmlPass1 / 1
nodes/insertion-removing-steps/Node-appendChild-three-scripts.htmlPass1 / 1
nodes/insertion-removing-steps/blur-event.window.jsPass2 / 2
nodes/insertion-removing-steps/change-event.window.jsPass2 / 2
nodes/insertion-removing-steps/frame-post-connection-steps.htmlPass4 / 4
nodes/insertion-removing-steps/insertion-removing-steps-iframe.window.jsPass4 / 4
nodes/insertion-removing-steps/insertion-removing-steps-script.window.jsPass1 / 1
nodes/insertion-removing-steps/later-script-removed-by-earlier-script.htmlPass2 / 2
nodes/insertion-removing-steps/script-does-not-run-on-child-removal.window.jsPass1 / 1
nodes/live-collections-batched-mutations.window.jsPass2 / 2
nodes/moveBefore/Node-moveBefore.htmlPass32 / 32
nodes/moveBefore/child-style-preserve.htmlPass1 / 1
nodes/moveBefore/continue-css-animation-left.htmlPass1 / 1
nodes/moveBefore/continue-css-animation-transform.htmlPass1 / 1
nodes/moveBefore/continue-css-transition-left-pseudo.htmlPass1 / 1
nodes/moveBefore/continue-css-transition-left.htmlPass1 / 1
nodes/moveBefore/continue-css-transition-transform-pseudo.htmlPass1 / 1
nodes/moveBefore/continue-css-transition-transform.htmlPass1 / 1
nodes/moveBefore/css-animation-commit-styles.htmlPass1 / 1
nodes/moveBefore/css-transition-cross-document.htmlPass1 / 1
nodes/moveBefore/css-transition-cross-shadow.htmlPass1 / 1
nodes/moveBefore/css-transition-to-disconnected-document.htmlPass1 / 1
nodes/moveBefore/css-transition-trigger.htmlPass1 / 1
nodes/moveBefore/custom-element-move-reactions.htmlPass7 / 7
nodes/moveBefore/fieldset-child-blur-event.htmlPass1 / 1
nodes/moveBefore/fieldset-child-date-input-blur-event.htmlPass1 / 1
nodes/moveBefore/fire-focusin-focusout.htmlPass5 / 5
nodes/moveBefore/focus-preserve.htmlPass5 / 5
nodes/moveBefore/focus-within.htmlPass5 / 5
nodes/moveBefore/fullscreen-preserve.htmlPass1 / 1
nodes/moveBefore/hover-style-update.htmlPass2 / 2
nodes/moveBefore/iframe-document-preserve.window.jsPass7 / 7
nodes/moveBefore/listed-form-element-reset.htmlPass1 / 1
nodes/moveBefore/live-range-updates.htmlPass3 / 3
nodes/moveBefore/modal-dialog.htmlPass1 / 1
nodes/moveBefore/moveBefore-child-list-selector-invalidation.htmlPass9 / 9
nodes/moveBefore/moveBefore-dir.htmlPass1 / 1
nodes/moveBefore/moveBefore-disconnected-id-map.htmlPass4 / 4
nodes/moveBefore/moveBefore-from-light-to-shadow.htmlPass1 / 1
nodes/moveBefore/moveBefore-id-map.htmlPass4 / 4
nodes/moveBefore/moveBefore-into-display-none.htmlPass1 / 1
nodes/moveBefore/moveBefore-lang.htmlPass1 / 1
nodes/moveBefore/moveBefore-name-map.htmlPass3 / 3
nodes/moveBefore/moveBefore-nodeiterator.htmlPass1 / 1
nodes/moveBefore/moveBefore-optgroup.htmlPass3 / 3
nodes/moveBefore/moveBefore-option-recalc-style.htmlPass1 / 1
nodes/moveBefore/moveBefore-selector-matching.htmlPass1 / 1
nodes/moveBefore/moveBefore-shadow-boundary-id-change.htmlPass2 / 2
nodes/moveBefore/moveBefore-shadow-host-id-map.htmlPass4 / 4
nodes/moveBefore/moveBefore-shadow-inside.htmlPass1 / 1
nodes/moveBefore/moveBefore-shadow-root.htmlPass1 / 1
nodes/moveBefore/moveBefore-size-query.htmlPass1 / 1
nodes/moveBefore/mutation-observer-moved-subtree.window.jsPass1 / 1
nodes/moveBefore/mutation-observer.htmlPass2 / 2
nodes/moveBefore/nonce.htmlPass1 / 1
nodes/moveBefore/object-crash-regression.htmlPass1 / 1
nodes/moveBefore/pointer-events.htmlPass1 / 1
nodes/moveBefore/popover-preserve.htmlPass1 / 1
nodes/moveBefore/preserve-render-blocking-script.htmlPass1 / 1
nodes/moveBefore/preserve-render-blocking-style.htmlPass1 / 1
nodes/moveBefore/relevant-mutations.htmlPass2 / 2
nodes/moveBefore/role-updates-after-move.htmlPass1 / 1
nodes/moveBefore/script-move-before.htmlPass2 / 2
nodes/moveBefore/select-option-optgroup.htmlPass2 / 2
nodes/moveBefore/selection-preserve.htmlFail1 / 6TEST BUG5 of 6 subtests: the test selects with a drag of the pointer and, as its own comment says, relies on an internal of Chromium: getSelection() is recomputed from the visible selection after moveBefore(), so it expects the boundary points to have moved to the closest text that did not move (notMove.firstChild). The library keeps the live range of the selection, which the DOM specification updates when a node is moved: its boundary points are in the old parent (<div id=old_parent>).
nodes/moveBefore/slotchange-events.htmlPass4 / 4
nodes/moveBefore/style-applies.htmlPass1 / 1
nodes/moveBefore/stylesheet-cascade-order.htmlPass1 / 1
nodes/moveBefore/stylesheet-no-refetch.htmlPass1 / 1
nodes/moveBefore/throws-exception.htmlPass1 / 1
nodes/name-validation.htmlPass5 / 5
nodes/namespaced-attribute-mutations.htmlPass24 / 24
nodes/node-creation-realm.htmlPass13 / 13
nodes/node-realm-adoption-after-frame-removal.htmlPass3 / 3
nodes/node-realm-mixed-across-adoption.htmlPass4 / 4
nodes/node-realm-preserved-across-adoption.htmlPass5 / 5
nodes/node-realm-preserved-across-frameless-adoption.htmlPass4 / 4
nodes/post-connection-steps-shadow-tree.htmlPass1 / 1
nodes/prepend-on-Document.htmlPass5 / 5
nodes/processing-instruction-attributes.htmlFail130 / 140NOT IMPLEMENTEDthe attributes of the processing instructions created by the XML parser (<?target attr="value"?> in XML documents)
nodes/query-target-in-load-event.htmlPass1 / 1
nodes/querySelector-empty-id.htmlPass1 / 1
nodes/querySelector-id-nth-child.htmlPass2 / 2
nodes/querySelector-mixed-case.htmlPass1 / 1
nodes/remove-and-adopt-thcrash.htmlPass1 / 1
nodes/remove-next-sibling-during-replace-with.htmlPass1 / 1
nodes/remove-unscopable.htmlPass6 / 6
nodes/rootNode.htmlPass5 / 5
nodes/svg-template-querySelector.htmlPass3 / 3
ranges/Range-adopt-test.htmlPass4 / 4
ranges/Range-attribute-nodes.htmlPass26 / 26
ranges/Range-attributes.htmlPass1 / 1
ranges/Range-cloneContents-around-shadow.htmlPass25 / 25
ranges/Range-cloneContents-in-ShadowRoot.htmlPass4 / 4
ranges/Range-cloneContents.htmlPass187 / 187
ranges/Range-cloneRange.htmlPass62 / 62
ranges/Range-collapse.htmlPass186 / 186
ranges/Range-commonAncestorContainer-2.htmlPass6 / 6
ranges/Range-commonAncestorContainer.htmlPass63 / 63
ranges/Range-compareBoundaryPoints.htmlPass9,313 / 9,313
ranges/Range-comparePoint-2.htmlPass3 / 3
ranges/Range-comparePoint.htmlPass5,580 / 5,580
ranges/Range-constructor.htmlPass1 / 1
ranges/Range-deleteContents-around-shadow.htmlPass27 / 27
ranges/Range-deleteContents-in-ShadowRoot.htmlPass4 / 4
ranges/Range-deleteContents.htmlPass125 / 125
ranges/Range-detach.htmlPass1 / 1
ranges/Range-extractContents-around-shadow.htmlPass44 / 44
ranges/Range-extractContents-dynamic-end.htmlPass1 / 1
ranges/Range-extractContents-in-ShadowRoot.htmlPass4 / 4
ranges/Range-extractContents.htmlPass187 / 187
ranges/Range-in-shadow-after-the-shadow-removed.htmlPass4 / 4
ranges/Range-insertNode.htmlPass1,840 / 1,840
ranges/Range-intersectsNode-2.htmlPass1 / 1
ranges/Range-intersectsNode-binding.htmlPass1 / 1
ranges/Range-intersectsNode-shadow.htmlPass1 / 1
ranges/Range-intersectsNode.htmlPass2,356 / 2,356
ranges/Range-isPointInRange.htmlPass5,733 / 5,733
ranges/Range-mutations-appendChild.htmlPass70 / 70
ranges/Range-mutations-appendData.htmlPass384 / 384
ranges/Range-mutations-dataChange.htmlPass2,808 / 2,808
ranges/Range-mutations-deleteData.htmlPass564 / 564
ranges/Range-mutations-insertBefore.htmlPass76 / 76
ranges/Range-mutations-insertData.htmlPass382 / 382
ranges/Range-mutations-normalize.htmlPass4 / 4
ranges/Range-mutations-removeChild.htmlPass20 / 20
ranges/Range-mutations-replaceChild.htmlPass60 / 60
ranges/Range-mutations-replaceData.htmlPass1,146 / 1,146
ranges/Range-mutations-splitText.htmlPass116 / 116
ranges/Range-selectNode.htmlPass292 / 292
ranges/Range-set.htmlPass10,920 / 10,920
ranges/Range-stringifier.htmlPass5 / 5
ranges/Range-surroundContents.htmlPass1,840 / 1,840
ranges/StaticRange-constructor.htmlPass17 / 17
traversal/NodeFilter-constants.htmlPass2 / 2
traversal/NodeIterator-removal-during-filtering.htmlPass4 / 4
traversal/NodeIterator-removal.htmlPass25 / 25
traversal/NodeIterator.htmlPass766 / 766
traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context.htmlPass1 / 1
traversal/TreeWalker-acceptNode-filter-cross-realm.htmlPass5 / 5
traversal/TreeWalker-acceptNode-filter.htmlPass12 / 12
traversal/TreeWalker-basic.htmlPass6 / 6
traversal/TreeWalker-currentNode.htmlPass4 / 4
traversal/TreeWalker-nextNode-detached-currentNode.window.jsPass3 / 3
traversal/TreeWalker-previousNodeLastChildReject.htmlPass1 / 1
traversal/TreeWalker-previousSiblingLastChildSkip.htmlPass1 / 1
traversal/TreeWalker-realm.htmlPass2 / 2
traversal/TreeWalker-traversal-reject.htmlPass6 / 6
traversal/TreeWalker-traversal-skip-most.htmlPass2 / 2
traversal/TreeWalker-traversal-skip.htmlPass6 / 6
traversal/TreeWalker-walking-outside-a-tree.htmlPass1 / 1
traversal/TreeWalker.htmlPass761 / 761
window-extends-event-target.htmlPass3 / 3
xpath-evaluation-detached-nodes.htmlPass17 / 17
xpath-result-single-node-value-nullable.htmlPass1 / 1

Tentative tests

TestResultSubtestsKindDescription
events/Event-dispatch-click.tentative.htmlPass6 / 6
events/scrolling/scrollend-event-fired-after-sequence-of-scrolls.tentative.htmlPass2 / 2
events/scrolling/scrollend-event-not-fired-after-removing-scroller.tentative.htmlPass3 / 3
observable/tentative/crashtests/observable-gc.any.jsDisabled–TEST RUNNERthe crashtests directories are not run
observable/tentative/crashtests/observable-takeUntil-toArray.any.jsDisabled–TEST RUNNERthe crashtests directories are not run
observable/tentative/idlharness.htmlPass36 / 36
observable/tentative/observable-catch.any.jsPass18 / 18
observable/tentative/observable-constructor.any.jsPass88 / 88
observable/tentative/observable-constructor.window.jsPass4 / 4
observable/tentative/observable-drop.any.jsPass14 / 14
observable/tentative/observable-event-target.any.jsPass6 / 6
observable/tentative/observable-event-target.window.jsPass2 / 2
observable/tentative/observable-every.any.jsPass20 / 20
observable/tentative/observable-filter.any.jsPass12 / 12
observable/tentative/observable-finally.any.jsPass20 / 20
observable/tentative/observable-find.any.jsPass12 / 12
observable/tentative/observable-first.any.jsPass10 / 10
observable/tentative/observable-flatMap.any.jsPass14 / 14
observable/tentative/observable-forEach.any.jsPass12 / 12
observable/tentative/observable-forEach.window.jsPass2 / 2
observable/tentative/observable-from.any.jsPass96 / 96
observable/tentative/observable-inspect.any.jsPass26 / 26
observable/tentative/observable-last.any.jsPass10 / 10
observable/tentative/observable-map.any.jsPass12 / 12
observable/tentative/observable-map.window.jsPass1 / 1
observable/tentative/observable-reduce.any.jsPass16 / 16
observable/tentative/observable-some.any.jsPass14 / 14
observable/tentative/observable-switchMap.any.jsPass12 / 12
observable/tentative/observable-take.any.jsPass12 / 12
observable/tentative/observable-takeUntil.any.jsPass24 / 24
observable/tentative/observable-takeUntil.window.jsPass2 / 2
observable/tentative/observable-toArray.any.jsPass12 / 12
ranges/Range-cloneContents-around-shadow.tentative.htmlFail4 / 5TEST BUGthe tentative test contradicts the Selection API, whose getRangeAt() throws an IndexSizeError when the focus is not in the document tree (a selection whose range ends in a shadow tree), as in Safari
ranges/Range-deleteContents-around-shadow.tentative.htmlFail3 / 4TEST BUGthe tentative test contradicts the Selection API, whose getRangeAt() throws an IndexSizeError when the focus is not in the document tree (a selection whose range ends in a shadow tree), as in Safari
ranges/Range-expand-shadow.tentative.htmlFail0 / 13NOT IMPLEMENTEDRange.expand() (a proposal)
ranges/Range-extractContents-around-shadow.tentative.htmlFail9 / 10TEST BUGthe tentative test contradicts the Selection API, whose getRangeAt() throws an IndexSizeError when the focus is not in the document tree (a selection whose range ends in a shadow tree), as in Safari
ranges/tentative/OpaqueRange-auto-disconnect.htmlFail0 / 17NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-basic.htmlFail0 / 3NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-disconnect.htmlFail0 / 5NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-display-none.htmlFail0 / 18NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-geometry-basic.htmlFail0 / 14NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-geometry-complexity-and-visibility.htmlFail0 / 6NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-geometry-multiline.htmlFail0 / 13NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-geometry-mutations.htmlFail0 / 12NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-highlight.htmlFail0 / 8NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-highlightsFromPoint.htmlFail0 / 11NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-interactive-basic.htmlFail0 / 16NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-interactive-overlap-and-selection.htmlFail0 / 10NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-offset.htmlFail0 / 11NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-programmatic-updates.htmlFail0 / 28NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-range-updates.htmlFail0 / 4NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-supported-elements.htmlFail0 / 6NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-unsupported-elements.htmlFail0 / 1NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-update-event-order.htmlFail0 / 4NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls
ranges/tentative/OpaqueRange-validation.htmlFail0 / 2NOT IMPLEMENTEDOpaqueRange and createValueRange() of the text controls

Reftests

TestResultVariantsKindDescription
nodes/moveBefore/focus-preserve-render.htmlPass1 / 1
nodes/moveBefore/moveBefore-as-flex-item.htmlPass1 / 1
nodes/remove-from-shadow-host-and-adopt-into-iframe.htmlPass1 / 1
slot-recalc.htmlPass1 / 1