absolute-length-units-001.html | Pass | 7 / 7 | | |
acos-asin-atan-atan2-computed.html | Pass | 52 / 52 | | |
acos-asin-atan-atan2-invalid.html | Pass | 63 / 63 | | |
acos-asin-atan-atan2-serialize.html | Pass | 62 / 62 | | |
animations/calc-interpolation.html | Pass | 140 / 140 | | |
animations/line-height-lh-transition.html | Pass | 1 / 1 | | |
attr-IACVT.html | Pass | 1 / 1 | | |
attr-all-types.html | Pass | 178 / 178 | | |
attr-argument-grammar.html | Pass | 15 / 15 | | |
attr-container-style-query.html | Pass | 1 / 1 | | |
attr-css-wide-keywords.html | Pass | 21 / 21 | | |
attr-cycle.html | Pass | 37 / 37 | | |
attr-invalidation-after-stylesheet-change.html | Pass | 1 / 1 | | |
attr-invalidation-after-view-transition.html | Pass | 1 / 1 | | |
attr-invalidation.html | Pass | 1 / 1 | | |
attr-length-specified.html | Pass | 3 / 3 | | |
attr-null-namespace.xhtml | Pass | 5 / 5 | | |
attr-parse-url.html | Pass | 1 / 1 | | |
attr-pseudo-elem-invalidation-2.html | Pass | 9 / 9 | | |
attr-pseudo-elem-invalidation.html | Pass | 6 / 6 | | |
attr-pseudo-element-originating.html | Pass | 6 / 6 | | |
attr-revert-rule.html | Pass | 1 / 1 | | |
attr-security-animation.html | Pass | 6 / 6 | | |
attr-security-if.html | Pass | 14 / 14 | | |
attr-security-transition-2.html | Pass | 1 / 1 | | |
attr-security-transition-interpolated.html | Pass | 3 / 3 | | |
attr-security-transition.html | Pass | 1 / 1 | | |
attr-security.html | Pass | 32 / 32 | | |
attr-serialization.html | Pass | 1 / 1 | | |
attr-universal-selector.html | Pass | 1 / 1 | | |
calc-angle-values.html | Pass | 27 / 27 | | |
calc-background-position-002.html | Pass | 6 / 6 | | |
calc-background-position-003.html | Pass | 6 / 6 | | |
calc-catch-divide-by-0.html | Pass | 21 / 21 | | |
calc-complex-unresolved-serialize.html | Pass | 12 / 12 | | |
calc-dimension-serialization-order.html | Pass | 44 / 44 | | |
calc-in-color-001.html | Pass | 1 / 1 | | |
calc-in-font-feature-settings.html | Pass | 1 / 1 | | |
calc-in-media-queries-with-mixed-units.html | Pass | 12 / 12 | | |
calc-infinity-nan-computed.html | Fail | 64 / 65 | REQUIRES(layout) | width/margin-left with infinite percentages resolve only against the containing block |
calc-infinity-nan-serialize-angle.html | Pass | 30 / 30 | | |
calc-infinity-nan-serialize-length.html | Pass | 41 / 41 | | |
calc-infinity-nan-serialize-number.html | Pass | 31 / 31 | | |
calc-infinity-nan-serialize-resolution.html | Pass | 29 / 29 | | |
calc-infinity-nan-serialize-time.html | Pass | 29 / 29 | | |
calc-integer.html | Pass | 7 / 7 | | |
calc-invalid-parsing.html | Pass | 6 / 6 | | |
calc-letter-spacing.html | Pass | 6 / 6 | | |
calc-linear-radial-conic-gradient-001.html | Pass | 8 / 8 | | |
calc-nesting-002.html | Pass | 12 / 12 | | |
calc-nesting.html | Pass | 8 / 8 | | |
calc-numbers.html | Pass | 12 / 12 | | |
calc-parentheses.html | Pass | 6 / 6 | | |
calc-percentage-in-number-functions.html | Pass | 21 / 21 | | |
calc-percentage-position.html | Pass | 8 / 8 | | |
calc-rgb-percent-001.html | Pass | 1 / 1 | | |
calc-rounds-to-integer.html | Pass | 136 / 136 | | |
calc-serialization-002.html | Pass | 24 / 24 | | |
calc-serialization.html | Pass | 1 / 1 | | |
calc-serialize.html | Pass | 4 / 4 | | |
calc-size/animation/calc-size-height-interpolation.html | Pass | 1,156 / 1,156 | | |
calc-size/animation/calc-size-interpolation-expansion.html | Fail | 9 / 11 | TEST BUG | two subtests expect the expansions of Chrome, which the test itself says are "not fully specified": 0px to calc-size(calc-size(min-content, size + 20px), 2 * size) keeps the nested basis, but preparing a calc-size() for interpolation always replaces a calc-size() basis with its own basis and substitutes its calculation (https://drafts.csswg.org/css-values-5/#calc-size-prepare-for-interpolation: calc-size(min-content, 0px + (1.5 * (20px + size)))); and calc-size(min-content, size * 4) to the same value expects size for the product 1 * size, which the simplification of a product keeps (https://drafts.csswg.org/css-values-4/#calc-simplification: only the numbers are multiplied together); Safari fails both subtests too (with the same (1 * size) for the second) |
calc-size/animation/calc-size-width-interpolation.html | Pass | 732 / 732 | | |
calc-size/animation/interpolate-size-height-composition.html | Pass | 20 / 20 | | |
calc-size/animation/interpolate-size-height-interpolation.html | Pass | 318 / 318 | | |
calc-size/animation/interpolate-size-interpolation.html | Pass | 84 / 84 | | |
calc-size/animation/interpolate-size-logical-properties-interpolation.html | Pass | 144 / 144 | | |
calc-size/animation/interpolate-size-max-height-composition.html | Pass | 20 / 20 | | |
calc-size/animation/interpolate-size-max-height-interpolation.html | Pass | 282 / 282 | | |
calc-size/animation/interpolate-size-max-width-composition.html | Pass | 30 / 30 | | |
calc-size/animation/interpolate-size-max-width-interpolation.html | Pass | 282 / 282 | | |
calc-size/animation/interpolate-size-min-height-composition.html | Pass | 20 / 20 | | |
calc-size/animation/interpolate-size-min-height-interpolation.html | Pass | 228 / 228 | | |
calc-size/animation/interpolate-size-min-width-composition.html | Pass | 30 / 30 | | |
calc-size/animation/interpolate-size-min-width-interpolation.html | Pass | 228 / 228 | | |
calc-size/animation/interpolate-size-which-value.html | Pass | 8 / 8 | | |
calc-size/animation/interpolate-size-width-composition.html | Pass | 30 / 30 | | |
calc-size/animation/interpolate-size-width-interpolation.html | Pass | 270 / 270 | | |
calc-size/calc-size-aspect-ratio-percentage-height-001.html | Pass | 2 / 2 | | |
calc-size/calc-size-flex-basis-on-column.html | Pass | 33 / 33 | | |
calc-size/calc-size-flex-basis-on-row.html | Pass | 33 / 33 | | |
calc-size/calc-size-height-box-sizing.html | Pass | 15 / 15 | | |
calc-size/calc-size-height.html | Pass | 37 / 37 | | |
calc-size/calc-size-list-box.html | Fail | 8 / 10 | BUG | a rounding error of the order of 1e-14px: the layout of the library uses floating-point coordinates where the browsers use fixed-point units (1/64px), and the 13.333px font of the controls (10pt) gives sizes that are not exact binary fractions, so the label of the list box or of the drop-down box measured for its natural size and for the reference differ in their last bits (the test compares the widths exactly) |
calc-size/calc-size-out-of-flow.html | Pass | 12 / 12 | | |
calc-size/calc-size-parsing.html | Pass | 94 / 94 | | |
calc-size/calc-size-replaced-element.html | Pass | 33 / 33 | | |
calc-size/calc-size-table.html | Pass | 6 / 6 | | |
calc-size/calc-size-typed-om.html | Fail | 18 / 19 | TEST BUG | the test expects the root product of the calculation of calc-size(max-content, size / 2) in parentheses ((0.5 * size)), but not the root products of calc-size(min-content, size * 2) (2 * size) and calc-size(10px, sign(size) * size): the calculation of calc-size() is serialized like the one of calc(), whose outer parentheses are removed (https://drafts.csswg.org/css-values-4/#serialize-a-calculation-tree), and the products nested in a sum keep theirs (30px + (0.5 * size), as expected by the test); Chrome and Safari fail this subtest the same way (0.5 * size) |
calc-size/calc-size-width-box-sizing.html | Pass | 15 / 15 | | |
calc-size/calc-size-width.html | Pass | 20 / 20 | | |
calc-size/interpolate-size-computed.html | Pass | 2 / 2 | | |
calc-size/interpolate-size-parsing.html | Pass | 5 / 5 | | |
calc-time-values.html | Pass | 10 / 10 | | |
calc-unit-analysis.html | Pass | 10 / 10 | | |
calc-z-index-fractions-001.html | Pass | 6 / 6 | | |
cap-invalidation.html | Pass | 1 / 1 | | |
ch-empty-pseudo-recalc-on-font-load.html | Pass | 3 / 3 | | |
ch-pseudo-recalc-on-font-load.html | Pass | 5 / 5 | | |
ch-recalc-on-font-load.html | Pass | 3 / 3 | | |
clamp-color-computed.html | Pass | 15 / 15 | | |
clamp-color-invalid.html | Pass | 14 / 14 | | |
clamp-integer-computed.html | Pass | 6 / 6 | | |
clamp-integer-invalid.html | Pass | 14 / 14 | | |
clamp-length-computed.html | Pass | 24 / 24 | | |
clamp-length-invalid.html | Pass | 23 / 23 | | |
clamp-length-serialize.html | Pass | 50 / 50 | | |
clamp-none-whitespace.html | Pass | 3 / 3 | | |
dynamic-viewport-units-rule-cache.html | Pass | 1 / 1 | | |
exp-log-compute.html | Pass | 59 / 59 | | |
exp-log-invalid.html | Pass | 48 / 48 | | |
exp-log-serialize.html | Pass | 19 / 19 | | |
font-relative-length.html | Pass | 5 / 5 | | |
getComputedStyle-border-radius-001.html | Pass | 5 / 5 | | |
getComputedStyle-border-radius-002.html | Pass | 8 / 8 | | |
getComputedStyle-border-radius-003.html | Pass | 1 / 1 | | |
getComputedStyle-calc-mixed-units-001.html | Pass | 3 / 3 | | |
getComputedStyle-calc-mixed-units-002.html | Pass | 8 / 8 | | |
getComputedStyle-calc-mixed-units-003.html | Pass | 7 / 7 | | |
hypot-pow-sqrt-computed.html | Pass | 123 / 123 | | |
hypot-pow-sqrt-invalid.html | Pass | 49 / 49 | | |
hypot-pow-sqrt-serialize.html | Pass | 25 / 25 | | |
ident-function-computed.html | Pass | 14 / 14 | | |
ident-function-parsing.html | Pass | 19 / 19 | | |
ident-function-substitution.html | Pass | 13 / 13 | | |
if-conditionals.html | Pass | 203 / 203 | | |
if-cycle.html | Pass | 46 / 46 | | |
if-function-revert-rule.html | Pass | 2 / 2 | | |
if-initial-unregistered.html | Pass | 1 / 1 | | |
if-invalidation.html | Pass | 1 / 1 | | |
if-media-invalidation.html | Pass | 1 / 1 | | |
if-style-invalidation.html | Pass | 1 / 1 | | |
if-supports-quirks.html | Pass | 1 / 1 | | |
inherit-function-basic.html | Pass | 6 / 6 | | |
inherit-function-invalidation.html | Pass | 3 / 3 | | |
inherit-function-parsing.html | Pass | 8 / 8 | | |
integer_interpolation_round_half_001.html | Pass | 1 / 1 | | |
integer_interpolation_round_half_002.html | Pass | 1 / 1 | | |
integer_interpolation_round_half_towards_positive_infinity_order.html | Pass | 1 / 1 | | |
integer_interpolation_round_half_towards_positive_infinity_z_index.html | Pass | 1 / 1 | | |
lh-rlh-on-root-001.html | Fail | 6 / 8 | REQUIRES(layout) | the root line height is measured with the height of an absolutely positioned box |
lh-rlh-percentage-line-height-with-zoom.html | Pass | 6 / 6 | | |
lh-unit-003.html | Pass | 2 / 2 | | |
lh-unit-004.html | Pass | 1 / 1 | | |
lh-unit-005.html | Pass | 1 / 1 | | |
line-break-ch-unit.html | Pass | 194 / 194 | | |
minmax-angle-computed.html | Pass | 32 / 32 | | |
minmax-angle-invalid.html | Pass | 52 / 52 | | |
minmax-angle-serialize.html | Pass | 38 / 38 | | |
minmax-integer-computed.html | Pass | 10 / 10 | | |
minmax-length-computed.html | Pass | 80 / 80 | | |
minmax-length-invalid.html | Pass | 48 / 48 | | |
minmax-length-percent-computed.html | Pass | 50 / 50 | | |
minmax-length-percent-invalid.html | Pass | 20 / 20 | | |
minmax-length-percent-serialize.html | Pass | 57 / 57 | | |
minmax-length-serialize.html | Pass | 24 / 24 | | |
minmax-number-computed.html | Pass | 14 / 14 | | |
minmax-number-invalid.html | Pass | 48 / 48 | | |
minmax-number-serialize.html | Pass | 40 / 40 | | |
minmax-percentage-computed.html | Pass | 14 / 14 | | |
minmax-percentage-invalid.html | Pass | 48 / 48 | | |
minmax-percentage-serialize.html | Pass | 35 / 35 | | |
minmax-time-computed.html | Pass | 24 / 24 | | |
minmax-time-invalid.html | Pass | 52 / 52 | | |
minmax-time-serialize.html | Pass | 22 / 22 | | |
percentage-without-context.html | Pass | 12 / 12 | | |
progress-computed.html | Pass | 36 / 36 | | |
progress-invalid.html | Pass | 35 / 35 | | |
progress-serialize.html | Pass | 68 / 68 | | |
random-in-keyframe.html | Pass | 1 / 1 | | |
random-item-computed.html | Pass | 37 / 37 | | |
random-item-in-keyframe.html | Pass | 1 / 1 | | |
random-item-invalid.html | Pass | 14 / 14 | | |
random-item-nested.html | Pass | 4 / 4 | | |
random-item-serialize.html | Pass | 15 / 15 | | |
random-item-unresolvable-argument.html | Pass | 3 / 3 | | |
random-item-valid.html | Pass | 21 / 21 | | |
rcap-invalidation.html | Pass | 1 / 1 | | |
rch-invalidation.html | Pass | 1 / 1 | | |
rem-unit-root-element.html | Pass | 4 / 4 | | |
rex-invalidation.html | Pass | 1 / 1 | | |
rgba-011.html | Pass | 1 / 1 | | |
ric-invalidation.html | Pass | 1 / 1 | | |
rlh-invalidation.html | Pass | 1 / 1 | | |
rlh-on-root-lengths.html | Pass | 1 / 1 | | |
round-function.html | Pass | 219 / 219 | | |
round-mod-rem-computed.html | Pass | 243 / 243 | | |
round-mod-rem-invalid.html | Pass | 108 / 108 | | |
round-mod-rem-serialize.html | Pass | 24 / 24 | | |
sign-in-keyframes-with-relative-units.html | Fail | 0 / 2 | TEST BUG | the first subtest expects the 1em of the font-style, font-weight, font-palette and font-variation-settings keyframes to be the font size of the element (8px, so sign(1em - 10px) is -1): in the font-affecting properties, the font-relative lengths resolve against the metrics of the parent (16px, so the sign is 1 and font-style is oblique 1.75deg; https://drafts.csswg.org/css-values-4/#font-relative-lengths), as css/css-values/using-font-relative-units-in-font-properties.html expects (Chrome and Safari pass it for font-style, font-weight and font-variation-settings); the non-font properties of the keyframes (scale, rotate, text-size-adjust) use the font size of the element, as expected; the test expects the interpolated font-palette as palette-mix(in oklab, palette-mix(in lch, ...), palette-mix(in lch, ...)), with the default color space: the computed value omits it (palette-mix(palette-mix(in lch, ...), palette-mix(in lch, ...))), as css/css-fonts/parsing/palette-mix-computed.html requires; the second subtest only fails for this |
signed-zero.html | Pass | 162 / 162 | | |
signs-abs-computed.html | Pass | 233 / 233 | | |
signs-abs-invalid.html | Pass | 53 / 53 | | |
signs-abs-serialize.html | Pass | 16 / 16 | | |
sin-cos-tan-computed.html | Pass | 32 / 32 | | |
sin-cos-tan-invalid.html | Pass | 42 / 42 | | |
sin-cos-tan-serialize.html | Pass | 270 / 270 | | |
tree-counting/calc-sibling-function-in-shadow-dom.html | Pass | 3 / 3 | | |
tree-counting/calc-sibling-function-parsing.html | Pass | 47 / 47 | | |
tree-counting/calc-sibling-function.html | Fail | 6 / 7 | TEST BUG | the nested pseudo-element subtest calls getComputedStyle(element, '::before::marker'): getComputedStyle() parses its argument as a single <pseudo-element-selector> and returns an empty declaration block when it fails to parse (https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle), and ::before::marker is two pseudo-elements; the test acknowledges that it requires the unresolved https://github.com/w3c/csswg-drafts/issues/4456, and fails in every browser the same way ("") |
tree-counting/sibling-function-container-query-invalidation.html | Pass | 8 / 8 | | |
tree-counting/sibling-function-container-query.html | Pass | 6 / 6 | | |
tree-counting/sibling-function-if-style-query.html | Pass | 4 / 4 | | |
tree-counting/sibling-function-invalidation.html | Pass | 12 / 12 | | |
tree-counting/sibling-index-keyframe-font-style-dynamic.html | Pass | 2 / 2 | | |
tree-counting/sibling-index-keyframe-font-variation-settings-dynamic.html | Pass | 2 / 2 | | |
tree-counting/sibling-index-keyframe-font-weight-dynamic.html | Pass | 2 / 2 | | |
tree-counting/sibling-index-keyframe-length-value-dynamic.html | Pass | 2 / 2 | | |
tree-counting/sibling-index-keyframe-palette-mix-dynamic.html | Pass | 2 / 2 | | |
tree-counting/sibling-index-keyframe-percent-dynamic.html | Pass | 2 / 2 | | |
tree-counting/sibling-index-keyframe-registered-properties-dynamic.html | Fail | 18 / 20 | TEST BUG | the --color subtests expect the from keyframe value (color(srgb 0 0.6 0)) of a step-end animation to red: the step easing gives a transformed distance of 0, and the value is the interpolation at p = 0 (https://drafts.csswg.org/web-animations-1/#the-effect-value-of-a-keyframe-animation-effect), which is in the Oklab interpolation space when a color is not a legacy color (https://drafts.csswg.org/css-color-4/#interpolation-space), as css/css-color/animation/color-interpolation.html expects with the same steps(1, end) easing (color(srgb 0 0 0) to color(srgb 1 1 1) at 0 is oklab(0 0 0) in every browser); Safari fails these subtests the same way (Chrome and Firefox do not interpolate a color with a tree-counting function and keep the keyframe value) |
tree-counting/sibling-index-keyframe-rotate-dynamic.html | Pass | 2 / 2 | | |
tree-counting/sibling-index-keyframe-scale-dynamic.html | Pass | 2 / 2 | | |
tree-counting/sibling-index-keyframe-transform-dynamic.html | Pass | 2 / 2 | | |
tree-counting/sibling-index-keyframe-value-dynamic.html | Pass | 2 / 2 | | |
tree-counting/sibling-index-linear-gradient-gcs.html | Pass | 3 / 3 | | |
tree-counting/tree-scoped-sibling-function.html | Fail | 1 / 2 | TEST BUG | the test expects sibling-index() and sibling-count() in a ::part() rule of the outer tree to be 1: they are tree-scoped references that fail to match an element of a descendant shadow tree, so they return 0 ("If the reference fails to match (because the element is, for example, in a descendent shadow tree from the stylesheet), the function returns 0", and the ::part(my-part) example "Returns 0px", https://drafts.csswg.org/css-values-5/#tree-counting); Safari returns 0 too (Chrome and Firefox return 1, an earlier resolution) |
tree-counting/trig-functions-in-gradient-position.html | Pass | 1 / 1 | | |
tree-counting/trig-functions-with-runtime-angle-arguments.html | Pass | 4 / 4 | | |
typed-arithmetic-negated-product.html | Pass | 6 / 6 | | |
typed_arithmetic.html | Pass | 41 / 41 | | |
typed_arithmetic_cycle.html | Pass | 1 / 1 | | |
update-subpixel-rem-unit.html | Pass | 1 / 1 | | |
urls/cross-origin/url-font-cross-origin-anonymous-negative.sub.html | Pass | 1 / 1 | | |
urls/cross-origin/url-font-cross-origin-anonymous.sub.html | Pass | 1 / 1 | | |
urls/cross-origin/url-font-cross-origin-use-credentials-negative.sub.html | Pass | 1 / 1 | | |
urls/cross-origin/url-font-cross-origin-use-credentials.sub.html | Pass | 1 / 1 | | |
urls/empty.html | Pass | 4 / 4 | | |
urls/fragment-only.html | Pass | 5 / 5 | | |
urls/integrity/url-font-integrity-negative.sub.html | Pass | 1 / 1 | | |
urls/integrity/url-font-integrity.sub.html | Pass | 1 / 1 | | |
urls/referrer-policy/no-referrer/url-font-referrer-policy.sub.html | Pass | 1 / 1 | | |
urls/referrer-policy/no-referrer/url-import-referrer-policy.html | Pass | 1 / 1 | | |
urls/resolve-relative-to-base.sub.html | Pass | 2 / 2 | | |
urls/resolve-relative-to-stylesheet.html | Pass | 3 / 3 | | |
urls/url-request-modifiers-computed.sub.html | Pass | 23 / 23 | | |
urls/url-request-modifiers-font-face-parsing.html | Pass | 7 / 7 | | |
urls/url-request-modifiers-import-parsing.sub.html | Pass | 10 / 10 | | |
urls/url-request-modifiers-invalid.sub.html | Pass | 34 / 34 | | |
urls/url-request-modifiers-serialize.sub.html | Pass | 23 / 23 | | |
using-font-relative-units-in-font-properties.html | Pass | 9 / 9 | | |
various-values-important.html | Pass | 4 / 4 | | |
viewport-relative-lengths-scaled-viewport.html | Pass | 1 / 1 | | |
viewport-units-after-font-load.html | Pass | 1 / 1 | | |
viewport-units-compute.html | Pass | 34 / 34 | | |
viewport-units-css2-001.html | Pass | 160 / 160 | | |
viewport-units-extreme-scale.html | Pass | 4 / 4 | | |
viewport-units-gutter-001.html | Pass | 1 / 1 | | |
viewport-units-gutter-002.html | Pass | 1 / 1 | | |
viewport-units-gutter-003.html | Pass | 1 / 1 | | |
viewport-units-gutter-004.html | Pass | 1 / 1 | | |
viewport-units-gutter-005.html | Pass | 1 / 1 | | |
viewport-units-gutter-006.html | Pass | 1 / 1 | | |
viewport-units-gutter-007.html | Pass | 1 / 1 | | |
viewport-units-gutter-008.html | Pass | 1 / 1 | | |
viewport-units-invalidation.html | Pass | 24 / 24 | | |
viewport-units-keyframes.html | Pass | 24 / 24 | | |
viewport-units-media-queries.html | Pass | 26 / 26 | | |
viewport-units-modify.html | Pass | 1 / 1 | | |
viewport-units-parsing.html | Pass | 24 / 24 | | |
viewport-units-scrollbars-compute.html | Fail | 26 / 34 | TEST BUG | the fractional values expect the used height rounded down to 1/64 px (the layout unit of Blink and WebKit, e.g. 1dvw = 1.84375px instead of 1.85px): the specification does not round the used values |
viewport-units-scrollbars-mq-001.html | Pass | 1 / 1 | | |
viewport-units-scrollbars-root-properties-001.html | Pass | 1 / 1 | | |
viewport-units-writing-mode.html | Pass | 8 / 8 | | |