css/css-overflow

edit

WPT coverage of the tests of css/css-overflow 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
Stable214217099%
Tentative810080%
Reftests671686098%
All893913098%

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: 1
  • TEST BUG: 19

Stable tests

TestResultSubtestsKindDescription
abspos-relayout-with-scrollable-descendant-vertical-lr.htmlPass2 / 2
abspos-relayout-with-scrollable-descendant.htmlPass2 / 2
auto-scrollbar-inline-children.htmlPass1 / 1
column-creates-computed-style.htmlPass1 / 1
column-updates-computed-style.htmlPass1 / 1
hit-test-border-radius-and-perspective-projection.htmlPass2 / 2
hit-test-border-radius-and-perspective.htmlPass1 / 1
hit-test-stacking-context-parent-border-radius.htmlPass13 / 13
inheritance.htmlPass18 / 18
keyboard-scroll.htmlPass3 / 3
line-clamp/line-clamp-preserves-dom-content.htmlPass2 / 2
line-clamp/line-clamp-preserves-tabbing.htmlPass1 / 1
line-clamp/webkit-line-clamp-abspos-scrollbar-change.htmlPass1 / 1
logical-overflow-001.htmlPass2 / 2
orthogonal-flow-with-inline-end-margin.htmlPass1 / 1
overflow-abpos-transform.htmlPass1 / 1
overflow-auto-scrolling-with-margin-and-transform.htmlPass1 / 1
overflow-clip-clamps-and-ignores-scroll-offsets-vertical-rl.htmlPass1 / 1
overflow-clip-hit-testing.htmlPass1 / 1
overflow-clip-margin-hit-testing.htmlPass1 / 1
overflow-clip-margin-intersection-observer.htmlPass1 / 1
overflow-clip-no-off-axis-scrollbar.htmlPass1 / 1
overflow-clip-preserves-dom-content.htmlPass2 / 2
overflow-clip-scroll-size.htmlPass2 / 2
overflow-codependent-scrollbars.htmlPass1 / 1
overflow-empty-child-box.htmlPass4 / 4
overflow-inline-transform-relative.htmlPass1 / 1
overflow-no-interpolation.htmlPass126 / 126
overflow-outside-padding.htmlPass1 / 1
overflow-padding.htmlPass1 / 1
overflow-replaced-element-001.htmlPass1 / 1
overflow-rtl-scroll-left.htmlPass1 / 1
overflow-shorthand-001.htmlPass16 / 16
overflow-shorthand-002.htmlPass2 / 2
parsing/block-ellipsis-invalid.htmlPass11 / 11
parsing/block-ellipsis-valid.htmlPass3 / 3
parsing/continue-invalid.htmlPass9 / 9
parsing/continue-valid.htmlPass4 / 4
parsing/getComputedStyle-scroll-button.htmlPass5 / 5
parsing/line-clamp-invalid.htmlPass7 / 7
parsing/line-clamp-valid.htmlFail18 / 20TEST BUGline-clamp: 3 ellipsis auto (with or without -webkit-legacy) is valid with the grammar of https://github.com/w3c/csswg-drafts/issues/13670 ([ <integer [1,∞]> \|\| auto \|\| <'block-ellipsis'> ] -webkit-legacy?), but the test expects it to serialize as specified: the shorthand serializes its longhands in the canonical order of the grammar and omits the default ellipsis (https://drafts.csswg.org/cssom/#serialize-a-css-value), as the same test expects for 8 ellipsis (serialized as 8) and auto 11 (serialized as 11 auto), so the value is 3 auto
parsing/max-lines-invalid.htmlPass8 / 8
parsing/max-lines-valid.htmlPass5 / 5
parsing/overflow-clip-margin-computed.htmlPass25 / 25
parsing/overflow-clip-margin.htmlPass29 / 29
parsing/overflow-computed.htmlPass34 / 34
parsing/overflow-invalid.htmlPass6 / 6
parsing/overflow-valid.htmlPass18 / 18
parsing/scroll-axis-lock-computed.htmlPass8 / 8
parsing/scroll-axis-lock-invalid.htmlPass8 / 8
parsing/scroll-axis-lock-valid.htmlPass6 / 6
parsing/scroll-buttons-invalid.htmlPass8 / 8
parsing/scroll-buttons-valid.htmlPass37 / 37
parsing/scroll-markers-computed.htmlPass9 / 9
parsing/scroll-markers-invalid.htmlPass5 / 5
parsing/scroll-markers-valid.htmlPass7 / 7
parsing/scroll-target-group-computed.htmlPass8 / 8
parsing/scroll-target-group-invalid.htmlPass5 / 5
parsing/scroll-target-group-valid.htmlPass6 / 6
parsing/scrollbar-gutter-invalid.htmlPass26 / 26
parsing/scrollbar-gutter-valid.htmlPass4 / 4
parsing/text-overflow-computed.htmlPass5 / 5
parsing/text-overflow-invalid.htmlPass3 / 3
parsing/text-overflow-valid.htmlPass5 / 5
parsing/webkit-box-computed.htmlPass30 / 30
parsing/webkit-line-clamp-computed.htmlPass5 / 5
parsing/webkit-line-clamp-invalid.htmlPass7 / 7
parsing/webkit-line-clamp-valid.htmlPass3 / 3
scroll-axis-lock-dynamic-change.htmlPass2 / 2
scroll-axis-lock-inheritance.htmlPass2 / 2
scroll-axis-lock-interpolation.htmlPass42 / 42
scroll-axis-lock-none-touch-subframe.htmlPass2 / 2
scroll-axis-lock-none-touch-viewport.htmlPass2 / 2
scroll-axis-lock-none-touch.htmlPass2 / 2
scroll-axis-lock-none-wheel-subframe.htmlPass2 / 2
scroll-axis-lock-none-wheel-viewport.htmlPass2 / 2
scroll-axis-lock-none-wheel.htmlPass2 / 2
scroll-axis-lock-not-propagated-from-body-quirks.htmlPass2 / 2
scroll-marker-group-display-none.htmlPass1 / 1
scroll-marker-group-hover-from-marker.htmlPass1 / 1
scroll-marker-group-hover.htmlPass1 / 1
scroll-markers/column-scroll-marker-003.htmlPass8 / 8
scroll-markers/column-scroll-marker-005.htmlPass8 / 8
scroll-markers/column-scroll-marker-010.htmlPass9 / 9
scroll-markers/column-scroll-marker-focus-001.htmlPass9 / 9
scroll-markers/column-scroll-marker-focus-002.htmlPass5 / 5
scroll-markers/column-scroll-marker-focus-003.htmlPass5 / 5
scroll-markers/column-scroll-marker-focus-004.htmlPass11 / 11
scroll-markers/html-scroll-marker-target-before-after.htmlPass6 / 6
scroll-markers/root-scroll-button-activation.htmlPass1 / 1
scroll-markers/root-scroll-marker-activation-and-scroll-tracking.htmlPass1 / 1
scroll-markers/root-scroll-marker-activation-in-iframe.htmlPass1 / 1
scroll-markers/scroll-button-activation-content-hit-test.htmlPass1 / 1
scroll-markers/scroll-button-activation-without-scroller.htmlPass1 / 1
scroll-markers/scroll-button-and-scroll-marker-not-in-event-path.htmlPass2 / 2
scroll-markers/scroll-button-argument-case-insensitive.htmlPass3 / 3
scroll-markers/scroll-button-disabled-no-focus.htmlPass1 / 1
scroll-markers/scroll-button-display-none.htmlPass2 / 2
scroll-markers/scroll-button-disposed-event-target.htmlPass1 / 1
scroll-markers/scroll-button-elementFromPoint.htmlPass1 / 1
scroll-markers/scroll-button-event-target.htmlPass1 / 1
scroll-markers/scroll-button-focus-active-element.htmlPass1 / 1
scroll-markers/scroll-button-hover-remove.htmlPass1 / 1
scroll-markers/scroll-button-hover.htmlPass1 / 1
scroll-markers/scroll-button-link-activation.htmlPass4 / 4
scroll-markers/scroll-button-universal-before.htmlPass1 / 1
scroll-markers/scroll-buttons-activation-with-columns.htmlPass1 / 1
scroll-markers/scroll-buttons-activation.htmlPass1 / 1
scroll-markers/scroll-buttons-scroll-distance.htmlPass2 / 2
scroll-markers/scroll-buttons-selection.htmlPass1 / 1
scroll-markers/scroll-marker-013.htmlPass2 / 2
scroll-markers/scroll-marker-15.htmlPass2 / 2
scroll-markers/scroll-marker-activation-default-direction-position.htmlPass1 / 1
scroll-markers/scroll-marker-activation-retains-focus.htmlPass1 / 1
scroll-markers/scroll-marker-activation-scroll.htmlPass1 / 1
scroll-markers/scroll-marker-activation-specified-direction-position.htmlPass1 / 1
scroll-markers/scroll-marker-active-unreached-target.htmlPass1 / 1
scroll-markers/scroll-marker-controls-scroll-tracking-001.htmlPass2 / 2
scroll-markers/scroll-marker-controls-scroll-tracking-002.htmlPass2 / 2
scroll-markers/scroll-marker-controls-scroll-tracking-003.htmlPass2 / 2
scroll-markers/scroll-marker-disposed-event-target.htmlPass1 / 1
scroll-markers/scroll-marker-double-activation.htmlPass1 / 1
scroll-markers/scroll-marker-elementFromPoint.htmlPass1 / 1
scroll-markers/scroll-marker-event-target.htmlPass1 / 1
scroll-markers/scroll-marker-focus-visible.htmlPass1 / 1
scroll-markers/scroll-marker-focus-within.htmlPass1 / 1
scroll-markers/scroll-marker-group-003.htmlPass5 / 5
scroll-markers/scroll-marker-group-012.htmlPass1 / 1
scroll-markers/scroll-marker-group-014.htmlPass1 / 1
scroll-markers/scroll-marker-group-size-container-query-root.htmlPass1 / 1
scroll-markers/scroll-marker-group-size-container-query.htmlPass1 / 1
scroll-markers/scroll-marker-group-style-and-scroll-container-query.htmlPass2 / 2
scroll-markers/scroll-marker-hover-logical.htmlPass1 / 1
scroll-markers/scroll-marker-hover-remove.htmlPass1 / 1
scroll-markers/scroll-marker-hover.htmlPass1 / 1
scroll-markers/scroll-marker-inert-001.htmlPass1 / 1
scroll-markers/scroll-marker-inert-002.htmlPass1 / 1
scroll-markers/scroll-marker-inert-003.htmlPass1 / 1
scroll-markers/scroll-marker-multiple-activation.htmlPass1 / 1
scroll-markers/scroll-marker-navigation-cycles.htmlPass4 / 4
scroll-markers/scroll-marker-next-focus.htmlFail0 / 1TEST BUGexpects a clicked ::scroll-marker to match :focus in the default (links) mode of scroll-marker-group, which contradicts the specification ("If the scroll marker group is in links mode: set the sequential focus navigation starting point to the originating element, losing focus from the scroll marker") and scroll-marker-activation-retains-focus.html; the rest of the test (the next Tab focuses the scroll target) works
scroll-markers/scroll-marker-scroll-container.htmlPass1 / 1
scroll-markers/scroll-marker-selection-in-padded-scroller.htmlPass2 / 2
scroll-markers/scroll-marker-selection-picks-closest.htmlPass7 / 7
scroll-markers/scroll-marker-target-before-after.htmlPass6 / 6
scroll-markers/scroll-markers-focus-active-element.htmlPass1 / 1
scroll-markers/scroll-markers-focus-on-scrolling.htmlPass3 / 3
scroll-markers/scroll-markers-nested-scrollers.htmlPass1 / 1
scroll-markers/scroll-markers-updated-by-programmatic-scroll.htmlPass1 / 1
scroll-markers/scroll-pseudo-elements-gcs-cq.htmlPass4 / 4
scroll-markers/scroll-target-group-013.htmlPass1 / 1
scroll-markers/scroll-target-group-014.htmlPass1 / 1
scroll-markers/scroll-target-group-iframe.htmlPass1 / 1
scroll-markers/target-current-scroll-marker-update.htmlPass1 / 1
scroll-overflow-padding-block-001.htmlPass6 / 6
scroll-with-ancestor-border-radius.htmlPass1 / 1
scroll-with-border-radius.htmlPass1 / 1
scrollable-overflow-fixed-positioned-initial-containing-block.htmlPass1 / 1
scrollable-overflow-float.htmlPass1 / 1
scrollable-overflow-from-grid-container-contents.htmlPass6 / 6
scrollable-overflow-height-with-flex-item-margin-inline-end-rtl.htmlPass8 / 8
scrollable-overflow-height-with-flex-item-margin-inline-end.htmlPass8 / 8
scrollable-overflow-padding-inline.htmlPass6 / 6
scrollable-overflow-padding-input.htmlPass5 / 5
scrollable-overflow-padding.htmlFail29 / 30TEST BUGa vertical-rl container (labeled VLR + RTL) expects a box moved leftwards, into the reachable scrollable overflow, not to contribute to it
scrollable-overflow-relative-positioned-block-in-inline-002.htmlPass1 / 1
scrollable-overflow-relative-positioned-block-in-inline.htmlPass1 / 1
scrollable-overflow-self-collapsing.htmlPass3 / 3
scrollable-overflow-textarea.htmlPass1 / 1
scrollable-overflow-transform-001.htmlPass3 / 3
scrollable-overflow-transform-002.htmlPass3 / 3
scrollable-overflow-transform-003.htmlPass3 / 3
scrollable-overflow-transform-004.htmlPass3 / 3
scrollable-overflow-transform-006.htmlPass2 / 2
scrollable-overflow-transform-007.htmlPass2 / 2
scrollable-overflow-transform-008.htmlPass2 / 2
scrollable-overflow-transform-009.htmlPass6 / 6
scrollable-overflow-transform-dynamic-001.htmlPass3 / 3
scrollable-overflow-transform-dynamic-002.htmlPass3 / 3
scrollable-overflow-transform-dynamic-003.htmlPass3 / 3
scrollable-overflow-transform-dynamic-004.htmlPass3 / 3
scrollable-overflow-transform-dynamic-005.htmlPass3 / 3
scrollable-overflow-transform-dynamic-006.htmlPass3 / 3
scrollable-overflow-transform-unreachable-region.htmlPass120 / 120
scrollable-overflow-vertical-rl-dynamic.htmlPass1 / 1
scrollable-overflow-with-flex-item-margin-inline-end.htmlPass8 / 8
scrollable-overflow-with-grid-item-margin-inline-end.htmlPass8 / 8
scrollable-overflow-with-nested-elements-001.htmlPass1 / 1
scrollable-overflow-with-nested-elements-002.htmlPass2 / 2
scrollable-overflow-with-nested-elements-003.htmlPass1 / 1
scrollable-overflow-with-nested-elements-004.htmlPass1 / 1
scrollable-overflow-with-nested-elements-005.htmlPass1 / 1
scrollable-overflow-zero-one-axis.htmlPass6 / 6
scrollbar-gutter-001.htmlPass15 / 15
scrollbar-gutter-propagation-001.htmlPass1 / 1
scrollbar-gutter-propagation-002.htmlPass1 / 1
scrollbar-gutter-propagation-003.htmlPass1 / 1
scrollbar-gutter-propagation-004.htmlPass1 / 1
scrollbar-gutter-propagation-005.htmlPass1 / 1
scrollbar-gutter-propagation-006.htmlPass1 / 1
scrollbar-gutter-propagation-007.htmlPass1 / 1
scrollbar-gutter-rtl-001.htmlPass15 / 15
scrollbar-gutter-vertical-lr-001.htmlPass15 / 15
scrollbar-gutter-vertical-rl-001.htmlPass15 / 15
scroller-covered-by-empty-svg.htmlPass1 / 1
shrink-to-fit-overflow-auto-scrollbar-width.htmlPass3 / 3
single-axis-scroll-apis-dynamic.htmlPass1 / 1
single-axis-scroll-apis-programmatic.htmlPass4 / 4
single-axis-scroll-into-view-rtl.htmlPass1 / 1
single-axis-scroll-into-view.htmlPass1 / 1
text-overflow-017.htmlPass1 / 1
text-overflow-023.htmlPass1 / 1
text-overflow-ellipsis-abspos-in-inline-block-crash-001.htmlPass1 / 1
text-overflow-ellipsis-hyphen.htmlPass1 / 1
text-overflow-ellipsis-self-painting.htmlPass1 / 1
text-overflow-ellipsis-width-001.htmlPass1 / 1
unicode-bidi-plaintext-scroll-direction.htmlPass8 / 8

Tentative tests

TestResultSubtestsKindDescription
parsing/scroll-markers-computed.tentative.htmlPass4 / 4
parsing/scroll-markers-invalid.tentative.htmlPass8 / 8
resizer-no-size-change.tentative.htmlPass1 / 1
resizer-transform.tentative.htmlPass1 / 1
scroll-markers/scroll-marker-activation-focus-behaviour-links-mode.tentative.htmlPass1 / 1
scroll-markers/scroll-marker-activation-focus-behaviour-tabs-mode.tentative.htmlPass1 / 1
scroll-markers/targeted-scroll-marker-selection-with-transition.tentative.htmlPass2 / 2
scroll-markers/targeted-scroll-marker-selection.tentative.htmlPass4 / 4
scrollable-overflow-transform-005.tentative.htmlFail4 / 6TEST BUGtentative test of the open issue https://github.com/w3c/csswg-drafts/issues/12113 (no resolution): it expects the untransformed border box of an in-flow child not to extend the scrollable overflow of its scroll container; https://drafts.csswg.org/css-overflow-3/#scrollable includes the in-flow content (with the paddings), as Chrome, Edge and Firefox, which fail the same 2 subtests with the same values (wpt.fyi)
scrollable-overflow-transform-010.tentative.htmlFail0 / 2TEST BUGtentative test of the open issue https://github.com/w3c/csswg-drafts/issues/12112 (no resolution): it expects the exact union of the nested rotated boxes (241px); as Chrome, Edge and Firefox, which fail both subtests (wpt.fyi), the scrollable overflow of each box is the bounding rectangle of its descendants, whose transformed bounding rectangle is the contribution of the box (300px)

Reftests

TestResultVariantsKindDescription
abspos-shrink-to-fit-with-scrollable-descendant.htmlPass1 / 1
add-scroller-then-scroll-content-into-view.htmlPass1 / 1
before-after-pseudo-element-scrolling.htmlPass1 / 1
button-with-scrollable-descendant.htmlPass1 / 1
clip-001.htmlPass1 / 1
clip-002.htmlPass1 / 1
clip-003.htmlFail0 / 1TEST BUGthe test depends on overlay scrollbars: with classic scrollbars (15px), the vertical scrollbar of the overflow: auto wrapper narrows its scrollport to 35px, the 50px wide .outer child then overflows it horizontally and a horizontal scrollbar appears too (and conversely in the last case), while the reference uses overflow: hidden scroll; Chrome and Safari fail too, only Firefox passes; css-overflow-3: "Scrollbars which are always placed in a scrollbar gutter, consuming space when present, are called classic scrollbars" and "Whether classic scrollbars or overlay scrollbars are used [...] is UA defined" (https://drafts.csswg.org/css-overflow-3/#scrollbar-gutter-property): the comment of the test "there should be a vertical scrollbar, but not a horizontal one" only holds with overlay scrollbars
clip-004.htmlPass1 / 1
clip-005.htmlPass1 / 1
clip-006.htmlPass1 / 1
clip-007.htmlPass1 / 1
clip-008.htmlPass1 / 1
clipped-scroller-add-content.htmlPass1 / 1
column-style-change-triggers-relayout.htmlPass1 / 1
content-change-then-scroll-into-view.htmlPass1 / 1
display-flex-svg-overflow-default.htmlPass1 / 1
document-element-overflow-hidden-scroll.htmlPass1 / 1
dynamic-visible-to-clip-001.htmlPass1 / 1
dynamic-visible-to-clip-002.htmlPass1 / 1
fit-content-textarea-with-scrollbar.htmlPass1 / 1
flex-column-container-with-scrollable-descendant.htmlPass1 / 1
flex-container-multiple-items-with-scrollable-descendant.htmlPass1 / 1
flex-container-with-scrollable-descendant.htmlPass1 / 1
flex-nested-container-with-scrollable-descendant.htmlPass1 / 1
flex-orthogonal-writing-mode-with-scrollable-descendant.htmlPass1 / 1
float-with-relpos-and-transform.htmlPass1 / 1
float-with-scrollable-descendant.htmlPass1 / 1
grid-container-with-scrollable-descendant.htmlPass1 / 1
grid-nested-container-with-scrollable-descendant.htmlPass1 / 1
grid-orthogonal-writing-mode-with-scrollable-descendant.htmlPass1 / 1
incremental-scroll-002.htmlPass1 / 1
incremental-scroll.htmlPass1 / 1
inline-block-with-scrollable-descendant.htmlPass1 / 1
input-scrollable-region-001.htmlPass1 / 1
line-clamp/block-ellipsis-001.htmlPass1 / 1
line-clamp/block-ellipsis-002.htmlPass1 / 1
line-clamp/block-ellipsis-003.htmlPass1 / 1
line-clamp/block-ellipsis-004.htmlPass1 / 1
line-clamp/block-ellipsis-005.htmlPass1 / 1
line-clamp/block-ellipsis-006.htmlPass1 / 1
line-clamp/block-ellipsis-007.htmlPass1 / 1
line-clamp/block-ellipsis-008.htmlPass1 / 1
line-clamp/block-ellipsis-009.htmlPass1 / 1
line-clamp/block-ellipsis-010.htmlPass1 / 1
line-clamp/block-ellipsis-011.htmlPass1 / 1
line-clamp/block-ellipsis-012.htmlPass1 / 1
line-clamp/block-ellipsis-013.htmlPass1 / 1
line-clamp/block-ellipsis-014.htmlPass1 / 1
line-clamp/block-ellipsis-015.tentative.htmlPass1 / 1
line-clamp/block-ellipsis-016.htmlPass1 / 1
line-clamp/block-ellipsis-017.htmlPass1 / 1
line-clamp/block-ellipsis-018.htmlPass1 / 1
line-clamp/block-ellipsis-019.htmlPass1 / 1
line-clamp/block-ellipsis-020.htmlPass1 / 1
line-clamp/block-ellipsis-021.htmlPass1 / 1
line-clamp/block-ellipsis-022.htmlPass1 / 1
line-clamp/block-ellipsis-023.htmlPass1 / 1
line-clamp/block-ellipsis-024.htmlPass1 / 1
line-clamp/block-ellipsis-025.htmlPass1 / 1
line-clamp/block-ellipsis-026.htmlPass1 / 1
line-clamp/block-ellipsis-027.htmlPass1 / 1
line-clamp/block-ellipsis-028.htmlPass1 / 1
line-clamp/block-ellipsis-029.htmlPass1 / 1
line-clamp/block-ellipsis-030.htmlFail0 / 1TEST BUGthe line-clamp container is 5ch wide and the reference box 5.1ch (fails in every browser)
line-clamp/block-ellipsis-031.htmlPass1 / 1
line-clamp/block-ellipsis-032.htmlPass1 / 1
line-clamp/block-ellipsis-033.htmlPass1 / 1
line-clamp/block-ellipsis-034.htmlPass1 / 1
line-clamp/block-ellipsis-035.htmlPass1 / 1
line-clamp/block-ellipsis-036.htmlPass1 / 1
line-clamp/block-ellipsis-037.htmlPass1 / 1
line-clamp/block-ellipsis-038.htmlPass1 / 1
line-clamp/block-ellipsis-039.htmlPass1 / 1
line-clamp/block-ellipsis-040.htmlPass1 / 1
line-clamp/block-ellipsis-041.htmlPass1 / 1
line-clamp/block-ellipsis-bidi-001.htmlPass1 / 1
line-clamp/block-ellipsis-bidi-002.htmlFail0 / 1TEST BUGthe test sizes its box in ch for Arabic letters that are as wide as the 0 of the monospace font (a monospace Arabic font): the glyphs of the Arabic fallback font (Scheherazade, as the proportional fonts of the browsers) are narrower, so one more word fits on the clamped line before the ellipsis (fails in every browser)
line-clamp/block-ellipsis-bidi-003.htmlFail0 / 1TEST BUGthe test sizes its box in ch for Arabic letters that are as wide as the 0 of the monospace font (a monospace Arabic font): the glyphs of the Arabic fallback font (Scheherazade, as the proportional fonts of the browsers) are narrower, so one more word fits on the clamped line before the ellipsis (fails in every browser)
line-clamp/block-ellipsis-bidi-004.htmlFail0 / 1TEST BUGthe test sizes its box in ch for Arabic letters that are as wide as the 0 of the monospace font (a monospace Arabic font): the glyphs of the Arabic fallback font (Scheherazade, as the proportional fonts of the browsers) are narrower, so one more word fits on the clamped line before the ellipsis (fails in every browser)
line-clamp/block-ellipsis-quirk-001.htmlPass1 / 1
line-clamp/block-ellipsis-quirk-002.htmlPass1 / 1
line-clamp/block-ellipsis-repaint-001.htmlPass1 / 1
line-clamp/block-ellipsis-repaint-002.htmlPass1 / 1
line-clamp/block-ellipsis-repaint-003.htmlPass1 / 1
line-clamp/block-ellipsis-repaint-004.htmlPass1 / 1
line-clamp/continue-001.htmlPass1 / 1
line-clamp/discard/discard-multicol-001.htmlPass1 / 1
line-clamp/discard/discard-multicol-002.htmlFail0 / 1TEST BUGthe test sets block-ellipsis: auto, the keyword of an earlier draft: auto is invalid in the current grammar no-ellipsis \| ellipsis \| <string> (WPT css/css-overflow/parsing/block-ellipsis-invalid.html), so the declaration is dropped and the last line before the region break has no ellipsis, where the reference has one (with block-ellipsis: ellipsis the rendering matches the reference)
line-clamp/discard/discard-multicol-003.htmlPass1 / 1
line-clamp/discard/discard-multicol-004.htmlPass1 / 1
line-clamp/line-clamp-001.htmlPass1 / 1
line-clamp/line-clamp-002.htmlPass1 / 1
line-clamp/line-clamp-003.htmlPass1 / 1
line-clamp/line-clamp-004.htmlPass1 / 1
line-clamp/line-clamp-005.htmlPass1 / 1
line-clamp/line-clamp-006.htmlPass1 / 1
line-clamp/line-clamp-007.htmlPass1 / 1
line-clamp/line-clamp-008.htmlPass1 / 1
line-clamp/line-clamp-009.htmlPass1 / 1
line-clamp/line-clamp-010.htmlPass1 / 1
line-clamp/line-clamp-011.htmlPass1 / 1
line-clamp/line-clamp-012.htmlPass1 / 1
line-clamp/line-clamp-012.tentative.htmlPass1 / 1
line-clamp/line-clamp-013.htmlPass1 / 1
line-clamp/line-clamp-013.tentative.htmlPass1 / 1
line-clamp/line-clamp-014.htmlPass1 / 1
line-clamp/line-clamp-015.htmlPass1 / 1
line-clamp/line-clamp-016.htmlPass1 / 1
line-clamp/line-clamp-017.htmlPass1 / 1
line-clamp/line-clamp-018.htmlPass1 / 1
line-clamp/line-clamp-019.htmlPass1 / 1
line-clamp/line-clamp-020.htmlPass1 / 1
line-clamp/line-clamp-021.htmlPass1 / 1
line-clamp/line-clamp-022.htmlPass1 / 1
line-clamp/line-clamp-022.tentative.htmlPass1 / 1
line-clamp/line-clamp-023.htmlPass1 / 1
line-clamp/line-clamp-023.tentative.htmlPass1 / 1
line-clamp/line-clamp-024.htmlPass1 / 1
line-clamp/line-clamp-024.tentative.htmlPass1 / 1
line-clamp/line-clamp-025.htmlPass1 / 1
line-clamp/line-clamp-025.tentative.htmlPass1 / 1
line-clamp/line-clamp-026.htmlPass1 / 1
line-clamp/line-clamp-027.htmlPass1 / 1
line-clamp/line-clamp-028.htmlPass1 / 1
line-clamp/line-clamp-029.htmlPass1 / 1
line-clamp/line-clamp-030.htmlPass1 / 1
line-clamp/line-clamp-031.htmlPass1 / 1
line-clamp/line-clamp-032.htmlPass1 / 1
line-clamp/line-clamp-033.htmlPass1 / 1
line-clamp/line-clamp-034.htmlPass1 / 1
line-clamp/line-clamp-035.htmlPass1 / 1
line-clamp/line-clamp-036.htmlPass1 / 1
line-clamp/line-clamp-037.htmlPass1 / 1
line-clamp/line-clamp-038.htmlPass1 / 1
line-clamp/line-clamp-039.htmlPass1 / 1
line-clamp/line-clamp-041.htmlPass1 / 1
line-clamp/line-clamp-042.htmlPass1 / 1
line-clamp/line-clamp-043.htmlPass1 / 1
line-clamp/line-clamp-auto-001.htmlPass1 / 1
line-clamp/line-clamp-auto-002.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-003.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-004.htmlPass1 / 1
line-clamp/line-clamp-auto-005.htmlPass1 / 1
line-clamp/line-clamp-auto-006.htmlPass1 / 1
line-clamp/line-clamp-auto-007.htmlPass1 / 1
line-clamp/line-clamp-auto-008.htmlPass1 / 1
line-clamp/line-clamp-auto-009.htmlPass1 / 1
line-clamp/line-clamp-auto-010.htmlPass1 / 1
line-clamp/line-clamp-auto-011.htmlPass1 / 1
line-clamp/line-clamp-auto-012.htmlPass1 / 1
line-clamp/line-clamp-auto-013.htmlPass1 / 1
line-clamp/line-clamp-auto-014.htmlPass1 / 1
line-clamp/line-clamp-auto-015.htmlPass1 / 1
line-clamp/line-clamp-auto-015.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-016.htmlPass1 / 1
line-clamp/line-clamp-auto-017.htmlPass1 / 1
line-clamp/line-clamp-auto-018.htmlPass1 / 1
line-clamp/line-clamp-auto-018.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-019.htmlPass1 / 1
line-clamp/line-clamp-auto-019.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-020.htmlPass1 / 1
line-clamp/line-clamp-auto-020.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-021.htmlPass1 / 1
line-clamp/line-clamp-auto-021.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-022.htmlPass1 / 1
line-clamp/line-clamp-auto-022.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-023.htmlPass1 / 1
line-clamp/line-clamp-auto-023.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-024.htmlPass1 / 1
line-clamp/line-clamp-auto-024.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-025.htmlPass1 / 1
line-clamp/line-clamp-auto-027.htmlPass1 / 1
line-clamp/line-clamp-auto-027.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-028.htmlPass1 / 1
line-clamp/line-clamp-auto-028.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-029.htmlPass1 / 1
line-clamp/line-clamp-auto-029.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-030.htmlPass1 / 1
line-clamp/line-clamp-auto-030.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-031.htmlPass1 / 1
line-clamp/line-clamp-auto-031.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-032.htmlPass1 / 1
line-clamp/line-clamp-auto-032.tentative.htmlPass1 / 1
line-clamp/line-clamp-auto-033.htmlPass1 / 1
line-clamp/line-clamp-auto-034.htmlPass1 / 1
line-clamp/line-clamp-auto-035.htmlPass1 / 1
line-clamp/line-clamp-auto-036.htmlPass1 / 1
line-clamp/line-clamp-auto-037.htmlPass1 / 1
line-clamp/line-clamp-auto-038.htmlPass1 / 1
line-clamp/line-clamp-auto-039.htmlPass1 / 1
line-clamp/line-clamp-auto-040.htmlPass1 / 1
line-clamp/line-clamp-auto-041.htmlPass1 / 1
line-clamp/line-clamp-auto-042.htmlPass1 / 1
line-clamp/line-clamp-auto-043.htmlPass1 / 1
line-clamp/line-clamp-auto-044.htmlPass1 / 1
line-clamp/line-clamp-auto-045.htmlPass1 / 1
line-clamp/line-clamp-auto-046.htmlPass1 / 1
line-clamp/line-clamp-auto-047.htmlPass1 / 1
line-clamp/line-clamp-auto-048.htmlPass1 / 1
line-clamp/line-clamp-auto-049.htmlPass1 / 1
line-clamp/line-clamp-auto-050.htmlPass1 / 1
line-clamp/line-clamp-auto-051.htmlPass1 / 1
line-clamp/line-clamp-auto-052.htmlPass1 / 1
line-clamp/line-clamp-auto-053.htmlPass1 / 1
line-clamp/line-clamp-auto-054.htmlPass1 / 1
line-clamp/line-clamp-auto-055.htmlPass1 / 1
line-clamp/line-clamp-auto-056.htmlPass1 / 1
line-clamp/line-clamp-auto-057.htmlPass1 / 1
line-clamp/line-clamp-auto-058.htmlPass1 / 1
line-clamp/line-clamp-auto-059.htmlPass1 / 1
line-clamp/line-clamp-auto-060.htmlPass1 / 1
line-clamp/line-clamp-auto-061.htmlPass1 / 1
line-clamp/line-clamp-auto-062.htmlPass1 / 1
line-clamp/line-clamp-auto-063.htmlPass1 / 1
line-clamp/line-clamp-auto-with-ruby-001.htmlPass1 / 1
line-clamp/line-clamp-auto-with-ruby-002.htmlPass1 / 1
line-clamp/line-clamp-auto-with-ruby-003.htmlPass1 / 1
line-clamp/line-clamp-auto-with-ruby-004.htmlPass1 / 1
line-clamp/line-clamp-auto-with-ruby-005.tentative.htmlPass1 / 1
line-clamp/line-clamp-balance-001.htmlPass1 / 1
line-clamp/line-clamp-balance-002.htmlPass1 / 1
line-clamp/line-clamp-balance-003.htmlPass1 / 1
line-clamp/line-clamp-balance-004.htmlPass1 / 1
line-clamp/line-clamp-balance-005.htmlPass1 / 1
line-clamp/line-clamp-balance-006.htmlPass1 / 1
line-clamp/line-clamp-balance-007.htmlPass1 / 1
line-clamp/line-clamp-balance-008.htmlPass1 / 1
line-clamp/line-clamp-balance-009.htmlPass1 / 1
line-clamp/line-clamp-balance-010.htmlPass1 / 1
line-clamp/line-clamp-balance-011.htmlPass1 / 1
line-clamp/line-clamp-balance-012.htmlPass1 / 1
line-clamp/line-clamp-baseline-001.htmlPass1 / 1
line-clamp/line-clamp-bfc.htmlPass1 / 1
line-clamp/line-clamp-content-height-with-dynamic-change.htmlPass1 / 1
line-clamp/line-clamp-dynamic-change-after-clean-content.htmlPass1 / 1
line-clamp/line-clamp-dynamic-removal.htmlPass1 / 1
line-clamp/line-clamp-dynamic-width-change.htmlPass1 / 1
line-clamp/line-clamp-fragmentation-001.htmlPass1 / 1
line-clamp/line-clamp-intrinsic-size-001.htmlPass1 / 1
line-clamp/line-clamp-intrinsic-size-002.htmlPass1 / 1
line-clamp/line-clamp-intrinsic-size-003.htmlPass1 / 1
line-clamp/line-clamp-intrinsic-size-004.htmlPass1 / 1
line-clamp/line-clamp-invalidation-001.htmlPass1 / 1
line-clamp/line-clamp-invalidation-002.htmlPass1 / 1
line-clamp/line-clamp-text-overflow-001.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-001.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-002.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-003.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-004.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-005.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-006.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-007.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-008.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-009.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-010.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-011.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-012.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-013.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-014.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-015.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-016.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-017.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-018.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-019.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-020.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-021.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-022.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-023.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-024.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-025.htmlPass1 / 1
line-clamp/line-clamp-with-abspos-026.htmlPass1 / 1
line-clamp/line-clamp-with-block-in-inline-001.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-001.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-002.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-003.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-004.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-005.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-006.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-007.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-008.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-009.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-010.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-011.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-012.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-013.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-014.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-015.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-016.htmlPass1 / 1
line-clamp/line-clamp-with-fixed-pos-017.htmlPass1 / 1
line-clamp/line-clamp-with-floats-001.htmlPass1 / 1
line-clamp/line-clamp-with-floats-002.htmlPass1 / 1
line-clamp/line-clamp-with-floats-003.htmlPass1 / 1
line-clamp/line-clamp-with-floats-004.htmlPass1 / 1
line-clamp/line-clamp-with-floats-005.htmlPass1 / 1
line-clamp/line-clamp-with-floats-006.htmlPass1 / 1
line-clamp/line-clamp-with-floats-007.htmlPass1 / 1
line-clamp/line-clamp-with-floats-008.htmlPass1 / 1
line-clamp/line-clamp-with-floats-009.htmlPass1 / 1
line-clamp/line-clamp-with-floats-010.htmlPass1 / 1
line-clamp/line-clamp-with-floats-011.htmlPass1 / 1
line-clamp/line-clamp-with-floats-012.htmlPass1 / 1
line-clamp/line-clamp-with-floats-013.htmlPass1 / 1
line-clamp/line-clamp-with-floats-014.htmlPass1 / 1
line-clamp/line-clamp-with-floats-015.htmlPass1 / 1
line-clamp/line-clamp-with-floats-016.htmlPass1 / 1
line-clamp/line-clamp-with-floats-017.htmlPass1 / 1
line-clamp/line-clamp-with-popover-001.htmlPass1 / 1
line-clamp/line-clamp-with-text-overflow-string-001.htmlPass1 / 1
line-clamp/line-clamp-with-text-overflow-string-002.htmlPass1 / 1
line-clamp/line-clamp-with-text-overflow-string-003.htmlPass1 / 1
line-clamp/line-clamp-with-text-overflow-string-004.htmlPass1 / 1
line-clamp/line-clamp-with-text-overflow-string-005.htmlPass1 / 1
line-clamp/line-clamp-with-text-overflow-string-006.htmlPass1 / 1
line-clamp/line-clamp-with-text-overflow-string-007.htmlPass1 / 1
line-clamp/line-clamp-with-text-overflow-string-008.htmlPass1 / 1
line-clamp/line-clamp-with-text-overflow-string-009.htmlPass1 / 1
line-clamp/webkit-line-clamp-001.htmlPass1 / 1
line-clamp/webkit-line-clamp-002.htmlPass1 / 1
line-clamp/webkit-line-clamp-003.htmlPass1 / 1
line-clamp/webkit-line-clamp-004.htmlPass1 / 1
line-clamp/webkit-line-clamp-005.htmlPass1 / 1
line-clamp/webkit-line-clamp-006.htmlPass1 / 1
line-clamp/webkit-line-clamp-007.htmlPass1 / 1
line-clamp/webkit-line-clamp-008.htmlPass1 / 1
line-clamp/webkit-line-clamp-009.htmlPass1 / 1
line-clamp/webkit-line-clamp-010.htmlPass1 / 1
line-clamp/webkit-line-clamp-011.htmlPass1 / 1
line-clamp/webkit-line-clamp-012.htmlPass1 / 1
line-clamp/webkit-line-clamp-013.htmlPass1 / 1
line-clamp/webkit-line-clamp-014.htmlPass1 / 1
line-clamp/webkit-line-clamp-015.htmlPass1 / 1
line-clamp/webkit-line-clamp-016.htmlPass1 / 1
line-clamp/webkit-line-clamp-017.htmlPass1 / 1
line-clamp/webkit-line-clamp-018.htmlPass1 / 1
line-clamp/webkit-line-clamp-019.htmlPass1 / 1
line-clamp/webkit-line-clamp-020.htmlPass1 / 1
line-clamp/webkit-line-clamp-021.htmlPass1 / 1
line-clamp/webkit-line-clamp-022.htmlPass1 / 1
line-clamp/webkit-line-clamp-023.htmlPass1 / 1
line-clamp/webkit-line-clamp-024.htmlPass1 / 1
line-clamp/webkit-line-clamp-025.htmlPass1 / 1
line-clamp/webkit-line-clamp-026.htmlPass1 / 1
line-clamp/webkit-line-clamp-027.htmlPass1 / 1
line-clamp/webkit-line-clamp-029.htmlPass1 / 1
line-clamp/webkit-line-clamp-030.htmlPass1 / 1
line-clamp/webkit-line-clamp-031.htmlPass1 / 1
line-clamp/webkit-line-clamp-032.htmlPass1 / 1
line-clamp/webkit-line-clamp-033.htmlPass1 / 1
line-clamp/webkit-line-clamp-034.htmlPass1 / 1
line-clamp/webkit-line-clamp-035.htmlPass1 / 1
line-clamp/webkit-line-clamp-036.htmlPass1 / 1
line-clamp/webkit-line-clamp-037.htmlPass1 / 1
line-clamp/webkit-line-clamp-038.htmlPass1 / 1
line-clamp/webkit-line-clamp-039.htmlPass1 / 1
line-clamp/webkit-line-clamp-040.htmlPass1 / 1
line-clamp/webkit-line-clamp-043.htmlPass1 / 1
line-clamp/webkit-line-clamp-045.htmlPass1 / 1
line-clamp/webkit-line-clamp-046.htmlPass1 / 1
line-clamp/webkit-line-clamp-048.htmlPass1 / 1
line-clamp/webkit-line-clamp-049.htmlPass1 / 1
line-clamp/webkit-line-clamp-050.htmlPass1 / 1
line-clamp/webkit-line-clamp-051.htmlPass1 / 1
line-clamp/webkit-line-clamp-052.htmlPass1 / 1
line-clamp/webkit-line-clamp-053.htmlPass1 / 1
line-clamp/webkit-line-clamp-abspos-001.htmlPass1 / 1
line-clamp/webkit-line-clamp-block-in-inline-001.htmlPass1 / 1
line-clamp/webkit-line-clamp-dynamic-001.htmlPass1 / 1
line-clamp/webkit-line-clamp-with-line-height.htmlPass1 / 1
line-clamp/webkit-line-clamp-with-max-height.htmlPass1 / 1
margin-block-end-scroll-area-001.htmlFail0 / 1TEST BUGfails in every browser: the test expects the scrollable overflow area of the scroll container to include the block-end margin (100px) of a p that overflows its fixed-height parent, so that scrollTop = 200 hides the red box; the margin is not part of the scrollable overflow (maximum scrollTop 101, 99px of red stay visible)
max-content-nested-textarea-with-scrollbar.htmlPass1 / 1
max-content-textarea-with-scrollbar.htmlPass1 / 1
max-content-with-float-scrollable-descendant.htmlPass1 / 1
max-content-with-multiple-scrollable-descendants.htmlPass1 / 1
max-width-container-with-scrollable-descendant-vertical-rl.htmlPass1 / 1
max-width-container-with-scrollable-descendant.htmlPass1 / 1
min-content-textarea-with-scrollbar.htmlPass1 / 1
no-scrollable-overflow-vertical-rl-2.htmlPass1 / 1
no-scrollable-overflow-vertical-rl.htmlPass1 / 1
orthogonal-writing-mode-with-scrollable-descendant.htmlPass1 / 1
overflow-auto-scrollbar-gutter-intrinsic-001.htmlPass1 / 1
overflow-auto-scrollbar-gutter-intrinsic-002.htmlPass1 / 1
overflow-auto-scrollbar-gutter-intrinsic-003.htmlPass1 / 1
overflow-body-propagation-001.htmlPass1 / 1
overflow-body-propagation-002.htmlPass1 / 1
overflow-body-propagation-003.htmlPass1 / 1
overflow-body-propagation-004.htmlPass1 / 1
overflow-body-propagation-005.htmlPass1 / 1
overflow-body-propagation-006.htmlPass1 / 1
overflow-body-propagation-007.htmlPass1 / 1
overflow-body-propagation-008.htmlPass1 / 1
overflow-body-propagation-009.htmlPass1 / 1
overflow-body-propagation-010.htmlPass1 / 1
overflow-body-propagation-011.htmlPass1 / 1
overflow-body-propagation-012.htmlPass1 / 1
overflow-body-propagation-013.htmlPass1 / 1
overflow-body-propagation-014.htmlPass1 / 1
overflow-body-propagation-015.htmlPass1 / 1
overflow-body-propagation-016.htmlPass1 / 1
overflow-canvas.htmlPass1 / 1
overflow-clip-cant-scroll.htmlPass1 / 1
overflow-clip-content-visual-overflow.htmlPass1 / 1
overflow-clip-margin-001.htmlPass1 / 1
overflow-clip-margin-002.htmlPass1 / 1
overflow-clip-margin-003.htmlPass1 / 1
overflow-clip-margin-004.htmlPass1 / 1
overflow-clip-margin-005.htmlPass1 / 1
overflow-clip-margin-006.htmlPass1 / 1
overflow-clip-margin-007.htmlPass1 / 1
overflow-clip-margin-008.htmlPass1 / 1
overflow-clip-margin-009.htmlPass1 / 1
overflow-clip-margin-010.htmlFail0 / 1TEST BUGthe reference rounds the top-right corner of the overflow clip edge with a 27.52px radius, the shape of a spread of 20px from the padding edge (radius 10px, ratio 0.5: 10 + 20 * (1 - 0.5^3) = 27.5, as Chrome); https://drafts.csswg.org/css-overflow-4/#overflow-clip-margin shapes it "exactly the same way as an outer box-shadow with a spread radius of the same cumulative offset from the box's border edge": 15px from the border radius of 15px (ratio 1), a 30px radius, which the test paints (only the pixels of that corner differ; the other corners agree). Fails in Firefox (wpt.fyi)
overflow-clip-margin-011.htmlPass1 / 1
overflow-clip-margin-012.htmlPass1 / 1
overflow-clip-margin-013.htmlPass1 / 1
overflow-clip-margin-014.htmlPass1 / 1
overflow-clip-margin-015.htmlPass1 / 1
overflow-clip-margin-016.htmlPass1 / 1
overflow-clip-margin-017.htmlPass1 / 1
overflow-clip-margin-018.htmlPass1 / 1
overflow-clip-margin-019.htmlPass1 / 1
overflow-clip-margin-020.htmlPass1 / 1
overflow-clip-margin-021.htmlPass1 / 1
overflow-clip-margin-022.htmlPass1 / 1
overflow-clip-margin-border-radius-002.htmlPass1 / 1
overflow-clip-margin-border-radius.htmlPass1 / 1
overflow-clip-margin-content-box-dynamic.htmlPass1 / 1
overflow-clip-margin-invalidation.htmlPass1 / 1
overflow-clip-margin-mul-column-border-box.htmlPass1 / 1
overflow-clip-margin-mul-column-content-box.htmlPass1 / 1
overflow-clip-margin-mul-column-padding-box.htmlPass1 / 1
overflow-clip-margin-svg.htmlPass1 / 1
overflow-clip-margin-visual-box-and-value-with-border-radius.htmlFail0 / 1TEST BUGthe reference expects the corners of the overflow clip edge of overflow-clip-margin: border-box 5px to be the radii of the padding edge (5px for the 15px top right corner with a 10px border) outset by 15px with the shadow spread formula (15.55px, the shape of Chrome), while css-overflow-4 says "The overflow clip edge is shaped in the corners exactly the same way as an outer box-shadow with a spread radius of the same cumulative offset from the box's border edge" (https://drafts.csswg.org/css-overflow-4/#overflow-clip-margin): the 15px border radius spread by 5px is 20px, which the library renders (only the top right corner of the first box differs; the padding-box and content-box cases match); only Chrome passes
overflow-clip-margin-visual-box-and-value.htmlPass1 / 1
overflow-clip-margin-visual-box.htmlPass1 / 1
overflow-clip-rounded-table.htmlPass1 / 1
overflow-clip-transform-001.htmlPass1 / 1
overflow-clip-x-visible-y-svg.htmlPass1 / 1
overflow-clip-y-visible-x-svg.htmlPass1 / 1
overflow-clipped-transparent-border-clip.htmlPass1 / 1
overflow-does-not-apply-to-inline-box.htmlPass1 / 1
overflow-ellipsis-dynamic-001.htmlPass1 / 1
overflow-hidden-resize-with-stacking-context-child.htmlPass1 / 1
overflow-img-border-radius.htmlPass1 / 1
overflow-img-display-table.htmlPass1 / 1
overflow-img-object-position.htmlPass1 / 1
overflow-img-scroll-non-replaced.htmlPass1 / 1
overflow-img-scroll-replaced.htmlPass1 / 1
overflow-img-svg.htmlPass1 / 1
overflow-img.htmlPass1 / 1
overflow-inline-block-with-opacity.htmlPass1 / 1
overflow-negative-margin-dynamic.htmlPass1 / 1
overflow-negative-margin.htmlPass1 / 1
overflow-no-frameset-propagation.htmlPass1 / 1
overflow-overlay.htmlPass1 / 1
overflow-recalc-001.htmlPass1 / 1
overflow-replaced-element-002.htmlPass1 / 1
overflow-scroll-big-border-small-content.htmlPass1 / 1
overflow-scroll-intrinsic-001.htmlPass1 / 1
overflow-scroll-resize-visibility-hidden.htmlPass1 / 1
overflow-video-hidden.htmlPass1 / 1
overflow-video.htmlPass1 / 1
paint-containment-svg.htmlPass1 / 1
rounded-overflow-clip-visible.htmlPass1 / 1
rounded-overflow-visible-clip.htmlPass1 / 1
scroll-markers/column-scroll-marker-001.htmlPass1 / 1
scroll-markers/column-scroll-marker-002.htmlPass1 / 1
scroll-markers/column-scroll-marker-004.htmlPass1 / 1
scroll-markers/column-scroll-marker-006.htmlPass1 / 1
scroll-markers/column-scroll-marker-007.htmlPass1 / 1
scroll-markers/column-scroll-marker-008.htmlPass1 / 1
scroll-markers/column-scroll-marker-011.htmlPass1 / 1
scroll-markers/column-scroll-marker-012.htmlPass1 / 1
scroll-markers/column-scroll-marker-013.htmlPass1 / 1
scroll-markers/column-scroll-marker-014.htmlPass1 / 1
scroll-markers/column-scroll-marker-activation-target-current.htmlPass1 / 1
scroll-markers/column-scroll-marker-counters.htmlPass1 / 1
scroll-markers/column-scroll-marker-dynamic-style-update.htmlPass1 / 1
scroll-markers/column-scroll-marker-group-style-remove.htmlPass1 / 1
scroll-markers/column-scroll-marker-reattach-target-current.htmlPass1 / 1
scroll-markers/nested-scroll-markers-under-content-visibility-auto.htmlPass1 / 1
scroll-markers/root-scroll-button.htmlPass1 / 1
scroll-markers/root-scroll-marker.htmlPass1 / 1
scroll-markers/scroll-button-on-object.htmlPass1 / 1
scroll-markers/scroll-button-reattachment-position.htmlPass1 / 1
scroll-markers/scroll-buttons-001.htmlPass1 / 1
scroll-markers/scroll-buttons-002.htmlPass1 / 1
scroll-markers/scroll-buttons-003.htmlPass1 / 1
scroll-markers/scroll-buttons-004.htmlPass1 / 1
scroll-markers/scroll-buttons-appearance.htmlPass1 / 1
scroll-markers/scroll-buttons-contents-appearance.htmlPass1 / 1
scroll-markers/scroll-buttons-counter-appearance.htmlPass1 / 1
scroll-markers/scroll-buttons-disabled-rtl.htmlPass1 / 1
scroll-markers/scroll-buttons-disabled-snapping.htmlPass1 / 1
scroll-markers/scroll-buttons-disabled-vertical-ltr.htmlPass1 / 1
scroll-markers/scroll-buttons-disabled.htmlPass1 / 1
scroll-markers/scroll-buttons-dynamic-create-remove.htmlPass1 / 1
scroll-markers/scroll-buttons-enabled-rtl.htmlPass1 / 1
scroll-markers/scroll-buttons-enabled-vertical-ltr.htmlPass1 / 1
scroll-markers/scroll-buttons-enabled.htmlPass1 / 1
scroll-markers/scroll-buttons-layout-parent.htmlPass1 / 1
scroll-markers/scroll-marker-001.htmlPass1 / 1
scroll-markers/scroll-marker-002.htmlPass1 / 1
scroll-markers/scroll-marker-003.htmlPass1 / 1
scroll-markers/scroll-marker-004.htmlPass1 / 1
scroll-markers/scroll-marker-005.htmlPass1 / 1
scroll-markers/scroll-marker-006.htmlPass1 / 1
scroll-markers/scroll-marker-007.htmlPass1 / 1
scroll-markers/scroll-marker-008.htmlPass1 / 1
scroll-markers/scroll-marker-009.htmlPass1 / 1
scroll-markers/scroll-marker-010.htmlPass1 / 1
scroll-markers/scroll-marker-011.htmlPass1 / 1
scroll-markers/scroll-marker-012.htmlPass1 / 1
scroll-markers/scroll-marker-counters.htmlPass1 / 1
scroll-markers/scroll-marker-dynamic.htmlPass1 / 1
scroll-markers/scroll-marker-group-001.htmlPass1 / 1
scroll-markers/scroll-marker-group-002.htmlPass1 / 1
scroll-markers/scroll-marker-group-005.htmlPass1 / 1
scroll-markers/scroll-marker-group-006.htmlPass1 / 1
scroll-markers/scroll-marker-group-007.htmlPass1 / 1
scroll-markers/scroll-marker-group-008.htmlPass1 / 1
scroll-markers/scroll-marker-group-009.htmlPass1 / 1
scroll-markers/scroll-marker-group-010.htmlPass1 / 1
scroll-markers/scroll-marker-group-011.htmlPass1 / 1
scroll-markers/scroll-marker-group-013.htmlPass1 / 1
scroll-markers/scroll-marker-group-015.htmlPass1 / 1
scroll-markers/scroll-marker-group-016.htmlPass1 / 1
scroll-markers/scroll-marker-group-017.htmlPass1 / 1
scroll-markers/scroll-marker-group-018.htmlPass1 / 1
scroll-markers/scroll-marker-group-019.htmlPass1 / 1
scroll-markers/scroll-marker-group-020.htmlPass1 / 1
scroll-markers/scroll-marker-group-add-dynamic-001.htmlPass1 / 1
scroll-markers/scroll-marker-group-add-dynamic-002.htmlPass1 / 1
scroll-markers/scroll-marker-group-add-dynamic-003.htmlPass1 / 1
scroll-markers/scroll-marker-group-add-dynamic-004.htmlPass1 / 1
scroll-markers/scroll-marker-group-keeps-active-in-view.htmlPass1 / 1
scroll-markers/scroll-marker-group-layout-parent.htmlPass1 / 1
scroll-markers/scroll-marker-group-position-change-001.htmlPass1 / 1
scroll-markers/scroll-marker-group-position-change-002.htmlPass1 / 1
scroll-markers/scroll-marker-group-position-change-003.htmlPass1 / 1
scroll-markers/scroll-marker-group-scroll-container-change-001.htmlPass1 / 1
scroll-markers/scroll-marker-group-scroll-container-change-002.htmlPass1 / 1
scroll-markers/scroll-marker-group-scroll-container-change-003.htmlPass1 / 1
scroll-markers/scroll-marker-group-scroll-container-change-004.htmlPass1 / 1
scroll-markers/scroll-marker-group-snap-aligns-to-active.tentative.htmlPass1 / 1
scroll-markers/scroll-marker-group-style-remove.htmlPass1 / 1
scroll-markers/scroll-marker-selection-in-2d.htmlPass1 / 1
scroll-markers/scroll-markers-added-after-content-visibility-auto.htmlPass1 / 1
scroll-markers/scroll-markers-added-before-content-visibility-auto.htmlPass1 / 1
scroll-markers/scroll-markers-under-content-visibility-auto.htmlPass1 / 1
scroll-markers/scroll-target-group-001.htmlPass1 / 1
scroll-markers/scroll-target-group-002.htmlPass1 / 1
scroll-markers/scroll-target-group-003.htmlPass1 / 1
scroll-markers/scroll-target-group-004.htmlPass1 / 1
scroll-markers/scroll-target-group-005.htmlPass1 / 1
scroll-markers/scroll-target-group-006.htmlPass1 / 1
scroll-markers/scroll-target-group-007.htmlPass1 / 1
scroll-markers/scroll-target-group-008.htmlPass1 / 1
scroll-markers/scroll-target-group-009.htmlPass1 / 1
scroll-markers/scroll-target-group-010.htmlPass1 / 1
scroll-markers/scroll-target-group-011.htmlPass1 / 1
scroll-markers/scroll-target-group-012.htmlPass1 / 1
scroll-markers/scroll-target-group-inline-targets.htmlPass1 / 1
scroll-markers/targeted-column-scroll-marker-selection-001.htmlPass1 / 1
scroll-markers/targeted-column-scroll-marker-selection-002.htmlPass1 / 1
scroll-markers/targeted-column-scroll-marker-selection-003.htmlFail0 / 1TEST BUGthe scroll position after scrollIntoView() and the active scroll marker match the reference; the reference encodes the order of the scroll markers in the group of Blink, which lays out the ::scroll-marker of the children before the ::column::scroll-marker of their multi-column scroll container (while it increments the counters of the column markers first), where css-overflow-5 adds the markers "in the tree order of their originating element": the column markers of the container, then the markers of its children, so the labels and the positions of the markers differ
scroll-markers/targeted-column-scroll-marker-selection-004.htmlFail0 / 1TEST BUGthe scroll position after scrollIntoView() and the active scroll marker match the reference; the reference encodes the order of the scroll markers in the group of Blink, which lays out the ::scroll-marker of the children before the ::column::scroll-marker of their multi-column scroll container (while it increments the counters of the column markers first), where css-overflow-5 adds the markers "in the tree order of their originating element": the column markers of the container, then the markers of its children, so the labels and the positions of the markers differ
scrollable-overflow-empty-newline-span.htmlPass1 / 1
scrollable-overflow-input-001.htmlPass1 / 1
scrollable-overflow-input-002.htmlPass1 / 1
scrollable-overflow-transform-011.htmlPass1 / 1
scrollbar-empty-001.htmlPass1 / 1
scrollbar-empty-002.htmlPass1 / 1
scrollbar-gutter-002.htmlPass1 / 1
scrollbar-gutter-003.htmlPass1 / 1
scrollbar-gutter-abspos-001.htmlPass1 / 1
scrollbar-gutter-dynamic-001.htmlPass1 / 1
scrollbar-gutter-dynamic-002.htmlPass1 / 1
scrollbar-gutter-dynamic-003.htmlPass1 / 1
scrollbar-gutter-dynamic-004.htmlPass1 / 1
scrollbar-gutter-fixedpos-001.htmlPass1 / 1
scrollbar-gutter-fixedpos-002.htmlPass1 / 1
scrollbar-gutter-fixedpos-003.htmlPass1 / 1
scrollbar-gutter-fixedpos-004.htmlPass1 / 1
scrollbar-gutter-root-both-edges.htmlPass1 / 1
scrollbar-gutter-root.htmlPass1 / 1
scrollbar-gutter-rtl-002.htmlPass1 / 1
scrollbar-gutter-scroll-into-view.htmlPass1 / 1
scrollbar-gutter-vertical-lr-002.htmlPass1 / 1
scrollbar-gutter-vertical-rl-002.htmlPass1 / 1
scrollbar-gutter-with-background-gradient.htmlPass1 / 1
scrollbar-large-scale-in-iframe.htmlPass1 / 1
scrollbars-chrome-bug-001.htmlPass1 / 1
select-size-overflow-001.htmlPass1 / 1
single-axis-overflow-clip-rtl.htmlPass1 / 1
single-axis-overflow-scroll-to-clip.htmlPass1 / 1
table-max-content-with-scrollable-descendant.htmlPass1 / 1
text-overflow-001.htmlPass1 / 1
text-overflow-002.htmlPass1 / 1
text-overflow-003.htmlPass1 / 1
text-overflow-004.htmlPass1 / 1
text-overflow-005.htmlPass1 / 1
text-overflow-006.htmlPass1 / 1
text-overflow-007.htmlPass1 / 1
text-overflow-008.htmlPass1 / 1
text-overflow-009.htmlPass1 / 1
text-overflow-010.htmlPass1 / 1
text-overflow-011.htmlPass1 / 1
text-overflow-012.htmlPass1 / 1
text-overflow-013.htmlPass1 / 1
text-overflow-014.htmlPass1 / 1
text-overflow-015.htmlPass1 / 1
text-overflow-016.htmlPass1 / 1
text-overflow-020.htmlPass1 / 1
text-overflow-021.htmlPass1 / 1
text-overflow-022.htmlPass1 / 1
text-overflow-024.htmlPass1 / 1
text-overflow-025.htmlPass1 / 1
text-overflow-026.htmlPass1 / 1
text-overflow-027.htmlPass1 / 1
text-overflow-028.htmlFail0 / 1BUG1 antialiased pixel differs by 1 from the reference: the width of the div is 10ch of Cousine 13px (78.0078125px), its overflow clip is snapped to the pixel (86px), and the ink of the glyph A at the end of the line ends at 86.0078px: the antialiasing of that 0.0078px sliver (1/255) is painted in the reference but clipped in the test. The browsers position the glyphs on whole pixels (or their layout unit, 1/64px, truncates the width to 78px)
text-overflow-029.htmlPass1 / 1
text-overflow-030.htmlPass1 / 1
text-overflow-change-color.htmlPass1 / 1
text-overflow-ellipsis-001.htmlPass1 / 1
text-overflow-ellipsis-002.htmlPass1 / 1
text-overflow-ellipsis-003.htmlPass1 / 1
text-overflow-ellipsis-changing-scroll.htmlPass1 / 1
text-overflow-ellipsis-editable-div-with-caret.htmlPass1 / 1
text-overflow-ellipsis-editing-input.htmlPass1 / 1
text-overflow-ellipsis-indent-001.htmlPass1 / 1
text-overflow-ellipsis-multiline-001.htmlPass1 / 1
text-overflow-ellipsis-rtl-001.htmlPass1 / 1
text-overflow-ellipsis-textarea-with-caret.htmlPass1 / 1
text-overflow-ellipsis-vertical-001.htmlPass1 / 1
text-overflow-ellipsis-vertical-rtl-001.htmlPass1 / 1
text-overflow-in-anonymous-block.htmlPass1 / 1
text-overflow-in-readonly-textarea-focused.htmlPass1 / 1
text-overflow-in-textarea.htmlPass1 / 1
text-overflow-ruby.htmlPass1 / 1
text-overflow-scroll-001.htmlPass1 / 1
text-overflow-scroll-rtl-001.htmlPass1 / 1
text-overflow-scroll-vertical-lr-001.htmlPass1 / 1
text-overflow-scroll-vertical-lr-rtl-001.htmlPass1 / 1
text-overflow-scroll-vertical-rl-001.htmlPass1 / 1
text-overflow-scroll-vertical-rl-rtl-001.htmlPass1 / 1
text-overflow-string-001.htmlPass1 / 1
text-overflow-string-002.htmlPass1 / 1
text-overflow-string-003.htmlPass1 / 1
text-overflow-string-004.htmlPass1 / 1
text-overflow-string-005.htmlPass1 / 1
text-overflow-string-006.htmlPass1 / 1
text-overflow-string-007.htmlPass1 / 1
text-overflow-string-008.htmlPass1 / 1
text-overflow-string-009.htmlPass1 / 1
text-overflow-string-010.htmlPass1 / 1
text-overflow-string-011.htmlPass1 / 1
text-overflow-string-012.htmlPass1 / 1
text-overflow-string-013.htmlFail0 / 1TEST BUGthe reference gets the inter-script spacing of text-autospace: normal (1/8ic: 3.75px) between the last Ahem letter of the span and the ideograph or the kana that follows it, which the string of text-overflow of the test, placed after the clipped text, does not get: the string of the reference is 3.75px to the right; and the string of the test is 40.9px wide (the space and the emoji of the emoji font of the test are 20.9px wide, for the 1ch + 13px that the test adds to 2ic), 0.9px more than the room left after the four Ahem glyphs, so one more glyph is replaced (fails in every browser)
text-overflow-string-014.htmlPass1 / 1
text-overflow-string-015.htmlPass1 / 1
text-overflow-string-016.htmlPass1 / 1
text-overflow-string-017.htmlPass1 / 1
text-overflow-string-018.htmlPass1 / 1
text-overflow-string-019.htmlPass1 / 1
text-overflow-string-020.htmlPass1 / 1
text-overflow-string-021.htmlPass1 / 1
text-overflow-string-022.htmlPass1 / 1
text-overflow-string-023.htmlPass1 / 1
text-overflow-string-024.tentative.htmlFail0 / 1TEST BUGthe reference gets the inter-script spacing of text-autospace: normal (1/8ic: 3.75px) between the last Ahem letter of the span and the ideograph or the kana that follows it, which the string of text-overflow of the test, placed after the clipped text, does not get: the string of the reference is 3.75px to the right (passes in Firefox only, which has no text-autospace)
text-overflow-string-025.tentative.htmlFail0 / 1TEST BUGthe reference gets the inter-script spacing of text-autospace: normal (1/8ic: 3.75px) between the last Ahem letter of the span and the ideograph or the kana that follows it, which the string of text-overflow of the test, placed after the clipped text, does not get: the string of the reference is 3.75px to the right (passes in Firefox only, which has no text-autospace)
text-overflow-string-026.tentative.htmlPass1 / 1
text-overflow-string-in-input.htmlPass1 / 1
text-overflow-string-in-textarea-after-blur.htmlPass1 / 1
text-overflow-string-in-textarea-dynamic-text-overflow.htmlPass1 / 1
text-overflow-string-in-textarea-dynamic-value.htmlPass1 / 1
text-overflow-string-in-textarea-dynamic-width.htmlPass1 / 1
text-overflow-string-in-textarea-field-sizing-content-fits.htmlPass1 / 1
text-overflow-string-in-textarea-field-sizing-content.htmlPass1 / 1
text-overflow-string-in-textarea-focused.htmlPass1 / 1
text-overflow-string-in-textarea-multiline.htmlPass1 / 1
text-overflow-string-in-textarea-not-inherited.htmlPass1 / 1
text-overflow-string-in-textarea-scrolled-back.htmlPass1 / 1
text-overflow-string-in-textarea-scrolled.htmlPass1 / 1
text-overflow-with-selection.htmlPass1 / 1
text-overflow.htmlPass1 / 1