css/css-borders

edit

WPT coverage of the tests of css/css-borders 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
Stable3637097%
Tentative3847081%
Reftests102114089%
All176198089%

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: 8
  • TEST BUG: 10
  • NOT IMPLEMENTED: 4

Stable tests

TestResultSubtestsKindDescription
border-image-width-interpolation-math-functions.htmlPass48 / 48
border-shape/border-shape-animation.htmlPass100 / 100
border-shape/border-shape-circle-hit-test-overflow-clip-margin.htmlPass1 / 1
border-shape/border-shape-circle-hit-test-overflow-clip.htmlPass1 / 1
border-shape/border-shape-circle-hit-test-siblings.htmlPass3 / 3
border-shape/border-shape-circle-hit-test.htmlPass1 / 1
border-shape/border-shape-hit-test-overflow.htmlPass1 / 1
border-shape/border-shape-ignore-radius-computed.htmlPass1 / 1
border-shape/border-shape-overflow-clip-margin-hit-test-ref-boxes.htmlPass3 / 3
border-shape/border-shape-overflow-clip-margin-hit-test.htmlPass1 / 1
border-shape/border-shape-replaced-hit-test.htmlPass1 / 1
border-shape/border-shape-stacking-context-hit-test.htmlPass6 / 6
border-width-hairline.htmlPass5 / 5
corner-shape/corner-block-start-computed.htmlPass4 / 4
corner-shape/corner-block-start-valid.htmlPass14 / 14
corner-shape/corner-block-start-writing-modes.htmlPass3 / 3
corner-shape/corner-computed.htmlPass24 / 24
corner-shape/corner-invalid.htmlPass14 / 14
corner-shape/corner-shape-computed.htmlPass38 / 38
corner-shape/corner-shape-hittest.htmlPass1 / 1
corner-shape/corner-shape-interpolation.htmlPass478 / 478
corner-shape/corner-shape-invalid.htmlPass71 / 71
corner-shape/corner-shape-outside-content-box.htmlPass7 / 7
corner-shape/corner-shape-outside-corners.htmlPass5 / 5
corner-shape/corner-shape-outside-left.htmlFail7 / 8BUGsuperellipse(-.8): the line next to the corner starts at 90.1px where the test expects 88px with a tolerance of 2px: the curve of the contour is the quarter of an ellipse between the tangents of its two ends for the parameters between -1 and 0 (https://drafts.csswg.org/css-borders-4/#border-aligned-corner-clip-out-path), where Blink intercepts the band with the mirrored superellipse (89.98px, just within the tolerance)
corner-shape/corner-shape-outside-margin-box.htmlPass7 / 7
corner-shape/corner-shape-outside-padding-box.htmlPass7 / 7
corner-shape/corner-shape-outside-right.htmlPass8 / 8
corner-shape/corner-shape-outside-shape-margin.htmlPass7 / 7
corner-shape/corner-shape-valid.htmlPass241 / 241
corner-shape/corner-top-computed.htmlPass4 / 4
corner-shape/corner-top-left-computed.htmlPass6 / 6
corner-shape/corner-top-left-invalid.htmlPass10 / 10
corner-shape/corner-top-left-valid.htmlPass11 / 11
corner-shape/corner-top-valid.htmlPass14 / 14
corner-shape/corner-valid.htmlPass12 / 12
corner-shape/corners-invalid.htmlPass23 / 23

Tentative tests

TestResultSubtestsKindDescription
border-width-rounding.tentative.htmlPass22 / 22
outline-offset-rounding.tentative.htmlFail9 / 30NOT IMPLEMENTEDoutline-offset is not snapped to device pixels like outline-width
tentative/parsing/border-block-end-radius-computed.htmlPass6 / 6
tentative/parsing/border-block-end-radius-invalid.htmlPass10 / 10
tentative/parsing/border-block-end-radius-valid.htmlPass8 / 8
tentative/parsing/border-block-start-radius-computed.htmlPass6 / 6
tentative/parsing/border-block-start-radius-invalid.htmlPass10 / 10
tentative/parsing/border-block-start-radius-valid.htmlPass8 / 8
tentative/parsing/border-bottom-radius-computed.htmlPass6 / 6
tentative/parsing/border-bottom-radius-invalid.htmlPass10 / 10
tentative/parsing/border-bottom-radius-valid.htmlPass8 / 8
tentative/parsing/border-clip-computed.htmlFail5 / 7NOT IMPLEMENTEDthe newer border-clip grammar (normal, unitless 0 kept); the webref grammar none \| [<length-percentage> \| <flex>]+ is used
tentative/parsing/border-clip-invalid.htmlFail3 / 4NOT IMPLEMENTEDthe newer border-clip grammar (normal instead of none); the webref grammar is used
tentative/parsing/border-clip-valid.htmlFail5 / 7NOT IMPLEMENTEDthe newer border-clip grammar (normal, unitless 0 kept); the webref grammar is used
tentative/parsing/border-inline-end-radius-computed.htmlPass6 / 6
tentative/parsing/border-inline-end-radius-invalid.htmlPass10 / 10
tentative/parsing/border-inline-end-radius-valid.htmlPass8 / 8
tentative/parsing/border-inline-start-radius-computed.htmlPass6 / 6
tentative/parsing/border-inline-start-radius-invalid.htmlPass10 / 10
tentative/parsing/border-inline-start-radius-valid.htmlPass8 / 8
tentative/parsing/border-left-radius-computed.htmlPass6 / 6
tentative/parsing/border-left-radius-invalid.htmlPass10 / 10
tentative/parsing/border-left-radius-valid.htmlPass8 / 8
tentative/parsing/border-right-radius-computed.htmlPass6 / 6
tentative/parsing/border-right-radius-invalid.htmlPass10 / 10
tentative/parsing/border-right-radius-valid.htmlPass8 / 8
tentative/parsing/border-shape-computed.htmlPass22 / 22
tentative/parsing/border-shape-invalid.htmlPass12 / 12
tentative/parsing/border-shape-valid.htmlPass12 / 12
tentative/parsing/border-top-radius-computed.htmlPass6 / 6
tentative/parsing/border-top-radius-invalid.htmlPass10 / 10
tentative/parsing/border-top-radius-valid.htmlPass8 / 8
tentative/parsing/box-shadow-blur-computed.htmlPass4 / 4
tentative/parsing/box-shadow-blur-invalid.htmlPass6 / 6
tentative/parsing/box-shadow-blur-valid.htmlFail4 / 5TEST BUGexpects the unitless 0 of a <length> to be kept in the specified value (it is serialized as 0px, as the browsers do for the other length properties); no browser implements box-shadow-blur
tentative/parsing/box-shadow-color-computed.htmlPass17 / 17
tentative/parsing/box-shadow-color-invalid.htmlPass10 / 10
tentative/parsing/box-shadow-color-valid.htmlFail16 / 17TEST BUGexpects the named colors of red, blue to be serialized as rgb() in the specified value, while red alone is kept (named colors are kept in the specified value); no browser implements box-shadow-color
tentative/parsing/box-shadow-offset-computed.htmlFail4 / 6TEST BUGexpects the unitless 0 of 10px 0 and 0 10px to be kept in the computed value, while 0 0 computes to 0px; no browser implements box-shadow-offset
tentative/parsing/box-shadow-offset-invalid.htmlPass4 / 4
tentative/parsing/box-shadow-offset-valid.htmlFail5 / 7TEST BUGexpects the unitless 0 of a <length> to be kept in the specified value (it is serialized as 0px, as the browsers do for the other length properties); no browser implements box-shadow-offset
tentative/parsing/box-shadow-position-computed.htmlPass4 / 4
tentative/parsing/box-shadow-position-invalid.htmlPass5 / 5
tentative/parsing/box-shadow-position-valid.htmlPass4 / 4
tentative/parsing/box-shadow-spread-computed.htmlPass5 / 5
tentative/parsing/box-shadow-spread-invalid.htmlPass5 / 5
tentative/parsing/box-shadow-spread-valid.htmlFail4 / 5TEST BUGexpects the unitless 0 of a <length> to be kept in the specified value (it is serialized as 0px, as the browsers do for the other length properties); no browser implements box-shadow-spread

Reftests

TestResultVariantsKindDescription
border-image-color-scheme.htmlPass1 / 1
border-radius-currentcolor.htmlPass1 / 1
border-radius-greater-than-width.htmlFail0 / 1BUGonly the antialiased edges of what is painted differ, or a box is painted 1px away (not analyzed individually; the causes fixed with #461 are not involved: the Ahem glyphs are not antialiased, the joins of the sides of the borders, the glyphs of the highlights painted once, the slices of the border images, the transformed rectangles that are almost on the pixels)
border-shape-absolute-coords-shape.tentative.htmlPass1 / 1
border-shape/border-shape-background-origin-border-box.htmlPass1 / 1
border-shape/border-shape-circle-extent-keywords.htmlPass1 / 1
border-shape/border-shape-clips-background.htmlFail0 / 1BUGthe stroke of the circle is painted as the ring of a border (as the border of a box with border-radius), the reference strokes an SVG circle: the curves of the two rings are flattened differently, so their antialiased edges differ (276 pixels, by up to 2; no fuzziness is allowed)
border-shape/border-shape-collapsed-shape-clips-background.htmlPass1 / 1
border-shape/border-shape-combined-shadow.htmlPass1 / 1
border-shape/border-shape-double-shape-default.htmlPass1 / 1
border-shape/border-shape-dynamic-color.htmlPass1 / 1
border-shape/border-shape-ellipse-corner-keywords.tentative.htmlPass1 / 1
border-shape/border-shape-ellipse-extent-keywords.htmlPass1 / 1
border-shape/border-shape-geometry-box.htmlPass1 / 1
border-shape/border-shape-half-border-box-default.htmlPass1 / 1
border-shape/border-shape-ignore-radius.htmlPass1 / 1
border-shape/border-shape-inner-outer.htmlPass1 / 1
border-shape/border-shape-inset-shadow-blur.htmlPass1 / 1
border-shape/border-shape-inset-shadow-negative-spread.htmlPass1 / 1
border-shape/border-shape-inset-shadow.htmlPass1 / 1
border-shape/border-shape-outline-auto-forms.htmlPass1 / 1
border-shape/border-shape-outline-auto-with-border.htmlPass1 / 1
border-shape/border-shape-outline-auto.htmlPass1 / 1
border-shape/border-shape-outline-double-path.htmlPass1 / 1
border-shape/border-shape-outline-double-shape.htmlPass1 / 1
border-shape/border-shape-outline-double.htmlPass1 / 1
border-shape/border-shape-outline-invalidation.htmlPass1 / 1
border-shape/border-shape-outline-offset.htmlPass1 / 1
border-shape/border-shape-outline-with-border-double-ellipse.htmlPass1 / 1
border-shape/border-shape-outline-with-border-ellipse.htmlPass1 / 1
border-shape/border-shape-outline-with-border.htmlPass1 / 1
border-shape/border-shape-outline.htmlPass1 / 1
border-shape/border-shape-overflow-child-clip.htmlPass1 / 1
border-shape/border-shape-overflow-replaced-canvas.htmlPass1 / 1
border-shape/border-shape-overflow-replaced-iframe.htmlPass1 / 1
border-shape/border-shape-overflow-replaced-img.htmlPass1 / 1
border-shape/border-shape-overflow-replaced-self.htmlPass1 / 1
border-shape/border-shape-overflow-solid-background.htmlPass1 / 1
border-shape/border-shape-overflow.htmlPass1 / 1
border-shape/border-shape-polygon-miter-limit.htmlPass1 / 1
border-shape/border-shape-shadow-blur.htmlPass1 / 1
border-shape/border-shape-shadow-circle.htmlPass1 / 1
border-shape/border-shape-shadow-ellipse.htmlPass1 / 1
border-shape/border-shape-shadow-inset-blur.htmlPass1 / 1
border-shape/border-shape-shadow-negative-spread.htmlPass1 / 1
border-shape/border-shape-shadow-semitransparent.htmlPass1 / 1
border-shape/border-shape-shadow-transparent.htmlPass1 / 1
border-shape/border-shape-shadow.htmlPass1 / 1
border-shape/border-shape-shape-arc-miter-limit.htmlPass1 / 1
border-shape/border-shape-stroke-from-border.htmlPass1 / 1
border-shape/border-shape-stroke-invalidation.htmlPass1 / 1
border-shape/border-shape-two-shapes-shadow.htmlPass1 / 1
borders-on-sub-unit-sized-elements.htmlPass1 / 1
corner-shape/corner-shape-backdrop-filter-overflow.htmlPass1 / 1
corner-shape/corner-shape-backdrop-filter-video-overflow.htmlPass1 / 1
corner-shape/corner-shape-backdrop-filter.htmlFail0 / 1BUGthe coverage of the antialiased edges is the exact area of the pixels, which differs slightly from the one of the browsers the fuzziness of the test is tuned for: 384 pixels of the shaped corners differ (by up to 32), 381 are allowed
corner-shape/corner-shape-bevel-overflow-composite.htmlPass1 / 1
corner-shape/corner-shape-bevel-overflow.htmlFail0 / 1BUGthe red background of the box and the overflow clip of its green child are both antialiased along the bevels (two coverages of the same edge): the pixels of the edges keep a part of the red background (a difference of 67/255 on the 200 pixels of the four bevels; the test allows 32), where the reference clips one green box
corner-shape/corner-shape-bevel-round-scoop-square-outset.htmlPass1 / 1
corner-shape/corner-shape-bevel.htmlPass1 / 1
corner-shape/corner-shape-box-shadow-spread-bevel.htmlFail0 / 1TEST BUGthe reference draws the edge of the shadow at the constant distance of the spread (15px) from the bevel, but the border contour path of the specification uses the outset-adjusted border radius: the 8px or 10px radius, smaller than the spread, grows by less than the spread (https://drafts.csswg.org/css-borders-4/#outset-adjusted-border-radius), which moves the ends of the corner of the shadow by about 2px; the test fails in all the browsers (Chrome renders the adjusted radius too)
corner-shape/corner-shape-box-shadow-spread-elliptical.htmlFail0 / 1TEST BUGthe reference draws the edge of the shadow at the constant distance of the spread (15px) from the concave curve, but the border contour path of the specification uses the outset-adjusted border radius: the 8px or 10px radius, smaller than the spread, grows by less than the spread (https://drafts.csswg.org/css-borders-4/#outset-adjusted-border-radius), which moves the ends of the corner of the shadow by about 2px; the test fails in all the browsers (Chrome renders the adjusted radius too)
corner-shape/corner-shape-clip-path-border-box.htmlPass1 / 1
corner-shape/corner-shape-fill.htmlPass1 / 1
corner-shape/corner-shape-iframe-border.htmlPass1 / 1
corner-shape/corner-shape-img-border.htmlPass1 / 1
corner-shape/corner-shape-img.htmlPass1 / 1
corner-shape/corner-shape-inset-shadow.htmlPass1 / 1
corner-shape/corner-shape-noop-keyframe.htmlPass1 / 1
corner-shape/corner-shape-notch-mixed.htmlPass1 / 1
corner-shape/corner-shape-notch-squircle-outset.htmlPass1 / 1
corner-shape/corner-shape-notch.htmlPass1 / 1
corner-shape/corner-shape-offset-path-coord-box-001.htmlFail0 / 1BUGthe coverage of the antialiased edges is the exact area of the pixels, which differs slightly from the one of the browsers the fuzziness of the test is tuned for: 166 pixels of the edges of the shape differ (by up to 2), 16 are allowed
corner-shape/corner-shape-offset-path-coord-box-002.htmlPass1 / 1
corner-shape/corner-shape-opposite-scale-convex-inert.htmlFail0 / 1TEST BUGantialiasing only: the shapes are the same, but the coverage of the antialiased edges is the exact area of the pixels, which differs slightly from the one of the browsers the fuzziness of the test is tuned for: 876 pixels of the edges of the squircle corners differ (by up to 76), 840 are allowed
corner-shape/corner-shape-opposite-scale-elliptical.htmlPass1 / 1
corner-shape/corner-shape-opposite-scale-mixed.htmlPass1 / 1
corner-shape/corner-shape-opposite-scale-notch.htmlPass1 / 1
corner-shape/corner-shape-opposite-scale-scoop.htmlPass1 / 1
corner-shape/corner-shape-opposite-scale-superellipse.htmlPass1 / 1
corner-shape/corner-shape-outline-auto-001.htmlPass1 / 1
corner-shape/corner-shape-outline-auto-002.htmlPass1 / 1
corner-shape/corner-shape-outline-auto-003.htmlPass1 / 1
corner-shape/corner-shape-outline-negative-offset-bevel.htmlPass1 / 1
corner-shape/corner-shape-outline-negative-offset-notch001.htmlPass1 / 1
corner-shape/corner-shape-outline-negative-offset-notch002.htmlPass1 / 1
corner-shape/corner-shape-outline-negative-offset-notch003.htmlPass1 / 1
corner-shape/corner-shape-outline-negative-offset-square.htmlPass1 / 1
corner-shape/corner-shape-outline-offset-bevel.htmlPass1 / 1
corner-shape/corner-shape-outline-offset-elliptical.htmlFail0 / 1BUGthe outline of a superellipse(-0.5) corner: the curve of the contour is the quarter of an ellipse between the tangents of its two ends for the parameters between -1 and 0 (https://drafts.csswg.org/css-borders-4/#border-aligned-corner-clip-out-path), and the reference draws Bézier curves of the superellipse, which start in another direction: the edges differ by up to 73/255 on 175 pixels (the test allows 46/255; it fails in all the browsers)
corner-shape/corner-shape-overflow-clip-margin.htmlPass1 / 1
corner-shape/corner-shape-scoop.htmlPass1 / 1
corner-shape/corner-shape-square-notch-mixed.htmlPass1 / 1
corner-shape/corner-shape-square-notch-superellipse.htmlPass1 / 1
corner-shape/corner-shape-square.htmlPass1 / 1
corner-shape/corner-shape-squircle.htmlPass1 / 1
corner-shape/corner-shape-superellipse-bevel.htmlPass1 / 1
corner-shape/corner-shape-superellipse-concave-outset.htmlPass1 / 1
corner-shape/corner-shape-superellipse-concave.htmlFail0 / 1BUGthe coverage of the antialiased edges is the exact area of the pixels, which differs slightly from the one of the browsers the fuzziness of the test is tuned for: 370 pixels of the concave corners differ (by up to 70), 347 are allowed
corner-shape/corner-shape-superellipse-convex-outset.htmlPass1 / 1
corner-shape/corner-shape-superellipse-convex.htmlPass1 / 1
corner-shape/corner-shape-superellipse-negative-100.htmlPass1 / 1
corner-shape/corner-shape-superellipse-negative-inf.htmlPass1 / 1
corner-shape/corner-shape-superellipse-scoop.htmlPass1 / 1
corner-shape/corner-shape-superellipse-squircle.htmlPass1 / 1
corner-shape/corner-shape-svg-border.htmlPass1 / 1
corner-shape/corner-shape-video-border.htmlPass1 / 1
corner-shape/corner-shorthand-rendering.htmlPass1 / 1
corner-shape/render-corner-shape.htmlPass113 / 113
subpixel-border-width.tentative.htmlPass1 / 1
subpixel-borders-with-child-border-box-sizing.htmlPass1 / 1
subpixel-borders-with-child.htmlPass1 / 1
tentative/border-radius-side-shorthands/border-radius-side-shorthands-001.htmlFail0 / 1TEST BUGthe test reads border-top-radius: 1em 4em / 2em 3em as the two radii of each corner (1em 4em for the first corner), where the values before the slash are the horizontal radii of the two corners and the values after it their vertical radii, as in border-radius (https://drafts.csswg.org/css-borders-4/#corner-sizing-side-shorthands); the green borders painted over the red ones of the same shape also leave red antialiased edges, and the test has no fuzzy tolerance (see its TODO)
tentative/border-radius-side-shorthands/border-radius-side-shorthands-002.htmlFail0 / 1TEST BUGthe test reads border-top-radius: 1em 4em / 2em 3em as the two radii of each corner (1em 4em for the first corner), where the values before the slash are the horizontal radii of the two corners and the values after it their vertical radii, as in border-radius (https://drafts.csswg.org/css-borders-4/#corner-sizing-side-shorthands); the green borders painted over the red ones of the same shape also leave red antialiased edges, and the test has no fuzzy tolerance (see its TODO)