intersection-observer

edit

WPT coverage of the tests of intersection-observer 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
Stable140153092%
Tentative000–
Reftests110100%
All141154092%

Failure reasons

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

  • NOT IMPLEMENTED: 12
  • TEST RUNNER: 1

Stable tests

TestResultSubtestsKindDescription
animating.htmlPass1 / 1
bounding-box.htmlPass5 / 5
callback-cross-realm-report-exception.htmlPass1 / 1
client-rect.htmlPass2 / 2
clip-path-animation.htmlPass1 / 1
clip-path.htmlPass1 / 1
containing-block.htmlPass5 / 5
cross-document-root.htmlPass2 / 2
cross-origin-iframe.sub.htmlPass5 / 5
cross-origin-tall-iframe.sub.htmlPass1 / 1
disconnect.htmlPass3 / 3
display-contents.htmlPass1 / 1
display-none.htmlPass1 / 1
document-scrolling-element-root.htmlPass2 / 2
edge-inclusive-intersection.htmlPass5 / 5
empty-root-margin.htmlPass1 / 1
explicit-root-different-document.htmlPass1 / 1
fixed-position-child-scroll.htmlPass3 / 3
fixed-position-iframe-scroll.htmlPass3 / 3
fixed-position-scroll.htmlPass3 / 3
grow-height-and-scrolled.htmlPass3 / 3
idlharness.window.jsPass50 / 50
iframe-no-root-with-wrapping-scroller.htmlPass5 / 5
iframe-no-root.htmlPass5 / 5
iframe-root-with-overflow-propagation.htmlPass3 / 3
img-lazy-loading-not-blocked-by-img-outside-viewport.htmlPass1 / 1
initial-observation-with-threshold.htmlPass3 / 3
inline-client-rect.htmlPass3 / 3
inline-with-block-child-client-rect.htmlPass2 / 2
intersection-ratio-ib-split.htmlPass2 / 2
intersection-ratio-with-fractional-bounds-2.htmlPass1 / 1
intersection-ratio-with-fractional-bounds-in-iframe.htmlPass1 / 1
intersection-ratio-with-fractional-bounds.htmlPass1 / 1
isIntersecting-change-events.htmlPass5 / 5
isIntersecting-threshold.htmlPass3 / 3
multicol-2.htmlPass1 / 1
multicol.htmlPass1 / 1
multiple-targets.htmlPass5 / 5
multiple-thresholds.htmlPass10 / 10
nested-cross-origin-iframe.sub.htmlPass1 / 1
not-in-containing-block-chain.htmlPass1 / 1
observe-after-unobserve.htmlPass1 / 1
observer-attributes.htmlPass9 / 9
observer-callback-arguments.htmlPass1 / 1
observer-exceptions.htmlPass9 / 9
observer-without-js-reference.htmlPass3 / 3
offset-iframe-cross-origin.htmlPass1 / 1
offset-iframe-same-origin.htmlPass1 / 1
padding-clip.htmlPass1 / 1
reinsert-element.htmlPass1 / 1
remove-element.htmlPass6 / 6
root-is-table-with-overflow-scroll.htmlPass3 / 3
root-margin-in-same-origin-iframe.htmlPass1 / 1
root-margin-root-element.htmlPass7 / 7
root-margin-rounding.htmlPass1 / 1
root-margin-scroll-margin-units.htmlPass14 / 14
root-margin.htmlPass5 / 5
root-vertical-rl.htmlPass3 / 3
rtl-clipped-root.htmlPass2 / 2
same-document-no-root.htmlPass4 / 4
same-document-root.htmlPass7 / 7
same-document-with-document-root.htmlPass3 / 3
same-document-zero-size-target.htmlPass4 / 4
same-origin-grand-child-iframe.sub.htmlPass1 / 1
scroll-and-root-margin.htmlPass1 / 1
scroll-margin-4-val.htmlPass1 / 1
scroll-margin-clip-path.htmlPass1 / 1
scroll-margin-dynamic.htmlPass2 / 2
scroll-margin-horizontal.htmlPass1 / 1
scroll-margin-iframe.htmlPass2 / 2
scroll-margin-nested-2.htmlPass1 / 1
scroll-margin-nested-3.htmlPass1 / 1
scroll-margin-nested.htmlPass1 / 1
scroll-margin-no-intersect.htmlPass1 / 1
scroll-margin-non-scrolling-root.htmlPass1 / 1
scroll-margin-not-contained.htmlPass1 / 1
scroll-margin-percent.htmlPass1 / 1
scroll-margin-propagation.htmlPass3 / 3
scroll-margin-with-border-outline.htmlPass1 / 1
scroll-margin-zero.htmlPass1 / 1
scroll-margin.htmlPass1 / 1
shadow-content.htmlPass2 / 2
slotted-target.htmlPass1 / 1
svg-clipped-rect-target.htmlPass4 / 4
svg-container-element.htmlPass3 / 3
svg-group-target.htmlPass4 / 4
svg-image.htmlPass3 / 3
svg-intersection-with-fractional-bounds-2.htmlPass6 / 6
svg-intersection-with-fractional-bounds.htmlPass4 / 4
svg-overflow-clip-margin-iframe.sub.htmlPass16 / 16
svg-rect-target.htmlPass4 / 4
svg-stroke-change.htmlPass3 / 3
svg-target-changes-position.htmlPass3 / 3
svg-transformed-rect-target.htmlPass4 / 4
svg-viewbox.htmlPass3 / 3
target-in-detached-document.htmlPass3 / 3
target-in-different-window.htmlPass1 / 1
target-is-root.htmlPass1 / 1
text-target.htmlPass4 / 4
thresholds-frozen-array.htmlPass1 / 1
timestamp.htmlPass3 / 3
transform-animation.htmlPass1 / 1
transformed-iframe-001-cross-origin.htmlPass3 / 3
transformed-iframe-001-same-origin.htmlPass3 / 3
transformed-iframe-002-cross-origin.htmlPass2 / 2
transformed-iframe-002-same-origin.htmlPass2 / 2
transformed-iframe-003-cross-origin.htmlPass2 / 2
transformed-iframe-003-same-origin.htmlPass2 / 2
transformed-iframe-004-cross-origin.htmlPass2 / 2
transformed-iframe-004-same-origin.htmlPass2 / 2
unclipped-root.htmlPass3 / 3
v2/3d-transform-flattened-preserve-3d-occlusion.htmlPass1 / 1
v2/3d-transform-occlusion-2.htmlPass1 / 1
v2/3d-transform-occlusion.htmlError0 / 1NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 in a 3D rendering context (transform-style: preserve-3d): the occluders are tested in paint order, without the plane sorting of the painter
v2/3d-transform-overflow-control-occlusion.htmlPass1 / 1
v2/3d-transform-z-order-occlusion.htmlPass1 / 1
v2/animated-occlusion.htmlPass2 / 2
v2/animated-opacity.htmlPass1 / 1
v2/blur-filter.htmlFail2 / 3NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 is tested with the border boxes of the occluders: their ink overflow (shadows, filters, border shapes) is ignored
v2/border-radius-shadow-occlusion-replaced.htmlPass1 / 1
v2/border-radius-shadow-occlusion.htmlPass1 / 1
v2/border-shape-occlusion.htmlPass1 / 1
v2/border-shape-overflow-occlusion.htmlPass1 / 1
v2/box-reflect.htmlPass2 / 2
v2/box-shadow.htmlPass4 / 4
v2/cross-origin-effects.sub.htmlPass1 / 1
v2/cross-origin-occlusion.sub.htmlPass1 / 1
v2/delay-test.htmlFail0 / 1TEST RUNNERthe frames of the virtual clock are exactly 1/60 s apart: the time between two notifications is exactly the delay (100ms), the test expects more
v2/drop-shadow-filter-vertical-rl.htmlFail2 / 3NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 is tested with the border boxes of the occluders: their ink overflow (shadows, filters, border shapes) is ignored
v2/iframe-target.htmlPass2 / 2
v2/inline-occlusion.htmlPass4 / 4
v2/nested-cross-origin.sub.htmlPass1 / 1
v2/position-absolute-overflow-visible-and-not-visible.htmlPass1 / 1
v2/position-relative.htmlPass2 / 2
v2/scaled-target.htmlPass1 / 1
v2/simple-effects.htmlPass5 / 5
v2/simple-occlusion-svg-foreign-object.htmlPass4 / 4
v2/simple-occlusion.htmlPass4 / 4
v2/svg-drop-shadow-occlusion.htmlFail0 / 1NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 by SVG content: the elements inside an <svg> are not boxes of the paint order, and the ink overflow of their filters is ignored
v2/svg-foreign-object-filter-occlusion.htmlTimeout0 / 1NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 by SVG content: the elements inside an <svg> are not boxes of the paint order, and the ink overflow of their filters is ignored
v2/svg-group-filter-occlusion.htmlTimeout0 / 1NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 by SVG content: the elements inside an <svg> are not boxes of the paint order, and the ink overflow of their filters is ignored
v2/svg-image-filter-occlusion.htmlTimeout0 / 1NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 by SVG content: the elements inside an <svg> are not boxes of the paint order, and the ink overflow of their filters is ignored
v2/svg-reference-filter-occlusion.htmlTimeout0 / 1NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 by SVG content: the elements inside an <svg> are not boxes of the paint order, and the ink overflow of their filters is ignored
v2/svg-root-filter-occlusion.htmlTimeout0 / 2NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 by SVG content: the elements inside an <svg> are not boxes of the paint order, and the ink overflow of their filters is ignored
v2/svg-shape-filter-occlusion.htmlTimeout0 / 1NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 by SVG content: the elements inside an <svg> are not boxes of the paint order, and the ink overflow of their filters is ignored
v2/svg-text-filter-occlusion.htmlTimeout0 / 2NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 by SVG content: the elements inside an <svg> are not boxes of the paint order, and the ink overflow of their filters is ignored
v2/text-editor-occlusion.htmlPass4 / 4
v2/text-shadow.htmlFail1 / 4NOT IMPLEMENTEDthe occlusion of IntersectionObserver v2 is tested with the border boxes of the occluders: their ink overflow (shadows, filters, border shapes) is ignored
v2/z-index-changes.htmlPass1 / 1
visibility-hidden.htmlPass3 / 3
zero-area-element-hidden.htmlPass2 / 2
zero-area-element-visible.htmlPass2 / 2
zoom-scaled-target.htmlPass2 / 2

Reftests

TestResultVariantsKindDescription
cross-origin-tall-iframe-rendering.sub.htmlPass1 / 1