mathml

edit

WPT coverage of the tests of mathml 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
Stable200208096%
Tentative12050%
Reftests270282196%
All471492196%

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: 14
  • NOT IMPLEMENTED: 5
  • FLAKY: 1

Stable tests

TestResultSubtestsKindDescription
idlharness.window.jsPass89 / 89
presentation-markup/direction/direction.htmlPass1 / 1
presentation-markup/fractions/default-mfrac-padding-style.htmlPass1 / 1
presentation-markup/fractions/frac-1.htmlPass5 / 5
presentation-markup/fractions/frac-linethickness-002.htmlPass6 / 6
presentation-markup/fractions/frac-parameters-1.htmlPass20 / 20
presentation-markup/fractions/frac-parameters-2.htmlPass13 / 13
presentation-markup/fractions/frac-parameters-3.htmlPass4 / 4
presentation-markup/mpadded/legacy-orthogonal-pseudo-units.htmlPass7 / 7
presentation-markup/mpadded/mpadded-001.htmlPass9 / 9
presentation-markup/mpadded/mpadded-002.htmlPass10 / 10
presentation-markup/mpadded/mpadded-003.htmlPass5 / 5
presentation-markup/mpadded/mpadded-percentage-002.htmlPass5 / 5
presentation-markup/mpadded/mpadded-rendering-from-in-flow.htmlPass1 / 1
presentation-markup/mrow/inferred-mrow-baseline.htmlPass14 / 14
presentation-markup/mrow/inferred-mrow-stretchy.htmlPass14 / 14
presentation-markup/mrow/legacy-mrow-like-elements-001.htmlPass16 / 16
presentation-markup/mrow/legacy-mstyle-attributes.htmlPass9 / 9
presentation-markup/mrow/merror-001.htmlPass2 / 2
presentation-markup/mrow/mphantom-001.htmlPass2 / 2
presentation-markup/mrow/mrow-fallback-001.htmlPass47 / 47
presentation-markup/mrow/mrow-fallback-002.htmlPass47 / 47
presentation-markup/mrow/mrow-preferred-width.htmlPass3 / 3
presentation-markup/mrow/no-spacing.htmlPass54 / 54
presentation-markup/mrow/spacing-002.htmlPass4 / 4
presentation-markup/mrow/spacing.htmlPass12 / 12
presentation-markup/mrow/stretch-along-block-axis-001.htmlPass5 / 5
presentation-markup/operators/character-level-mirroring.htmlPass3 / 3
presentation-markup/operators/display-operator-min-height-default-font.htmlPass1 / 1
presentation-markup/operators/display-operator-min-height-no-workaround.htmlPass1 / 1
presentation-markup/operators/embellished-operator-001.htmlPass40 / 40
presentation-markup/operators/embellished-operator-002.htmlPass32 / 32
presentation-markup/operators/embellished-operator-003.htmlPass14 / 14
presentation-markup/operators/embellished-operator-004.htmlPass10 / 10
presentation-markup/operators/embellished-operator-dynamic-002.htmlPass8 / 8
presentation-markup/operators/largeop-hit-testing.htmlPass1 / 1
presentation-markup/operators/mo-axis-height-1.htmlPass9 / 9
presentation-markup/operators/mo-font-relative-lengths-001.htmlPass4 / 4
presentation-markup/operators/mo-lspace-rspace-5.htmlPass48 / 48
presentation-markup/operators/mo-lspace-rspace-with-positive-scriptlevel.htmlPass1 / 1
presentation-markup/operators/mo-minsize-maxsize-001.htmlPass6 / 6
presentation-markup/operators/mo-no-vertical-adjustment-for-basic-binary-operators.htmlPass1 / 1
presentation-markup/operators/mo-stretch-properties-001.htmlPass1 / 1
presentation-markup/operators/mo-stretch-properties-dynamic-001.htmlPass5 / 5
presentation-markup/operators/operator-dictionary-combining-default.htmlPass2 / 2
presentation-markup/operators/operator-dictionary-combining.htmlPass8 / 8
presentation-markup/operators/operator-dictionary-largeop-001.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-largeop-002.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-largeop-003.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-largeop-004.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-largeop-005.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-largeop-006.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-movablelimits-001.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-movablelimits-002.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-movablelimits-003.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-movablelimits-004.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-movablelimits-005.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-movablelimits-006.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-multi-char.htmlPass20 / 20
presentation-markup/operators/operator-dictionary-spacing-001.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-spacing-002.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-spacing-003.htmlFail3 / 4TEST BUGsupport/operator-dictionary.json gives the infix / an lspace and an rspace of 4/18em; the operator dictionary of MathML Core puts it in the category K (0)
presentation-markup/operators/operator-dictionary-spacing-004.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-spacing-005.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-spacing-006.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-stretchy-001.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-stretchy-002.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-stretchy-003.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-stretchy-004.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-stretchy-005.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-stretchy-006.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-symmetric-001.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-symmetric-002.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-symmetric-003.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-symmetric-004.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-symmetric-005.htmlPass4 / 4
presentation-markup/operators/operator-dictionary-symmetric-006.htmlPass4 / 4
presentation-markup/operators/size-and-position-of-stretchy-fences-with-default-font-001.htmlFail1 / 2TEST BUGthe result depends on the default math font: with the bundled STIX Two Math, the inner fences around x + y (the descender of y, stretched symmetrically around the math axis) need a size variant, the ones around x do not
presentation-markup/operators/stretchy-largeop-with-default-font-1.htmlPass1 / 1
presentation-markup/operators/stretchy-largeop-with-default-font-2.htmlFail0 / 1TEST BUGthe result depends on the default math font: the display size variant of U+2AFC in the bundled STIX Two Math is taller but not wider than its base glyph
presentation-markup/operators/stretchy-largeop-with-default-font-3.htmlPass1 / 1
presentation-markup/operators/symmetric-largeop.htmlPass1 / 1
presentation-markup/radicals/glyph-level-mirroring.htmlPass2 / 2
presentation-markup/radicals/root-parameters-1.htmlPass7 / 7
presentation-markup/radicals/root-parameters-2.htmlPass2 / 2
presentation-markup/scripts/cramped-001.htmlPass15 / 15
presentation-markup/scripts/empty-underover.htmlPass1 / 1
presentation-markup/scripts/scripts-rendering-from-in-flow.htmlPass7 / 7
presentation-markup/scripts/subsup-1.htmlPass5 / 5
presentation-markup/scripts/subsup-2.htmlPass6 / 6
presentation-markup/scripts/subsup-3.htmlPass5 / 5
presentation-markup/scripts/subsup-4.htmlPass2 / 2
presentation-markup/scripts/subsup-5.htmlPass3 / 3
presentation-markup/scripts/subsup-6-rtl.htmlPass5 / 5
presentation-markup/scripts/subsup-6.htmlPass5 / 5
presentation-markup/scripts/subsup-parameters-1.htmlPass10 / 10
presentation-markup/scripts/subsup-parameters-2.htmlPass3 / 3
presentation-markup/scripts/underover-1.htmlPass5 / 5
presentation-markup/scripts/underover-parameters-1.htmlPass4 / 4
presentation-markup/scripts/underover-parameters-2.htmlPass4 / 4
presentation-markup/scripts/underover-parameters-3.htmlPass8 / 8
presentation-markup/scripts/underover-parameters-and-embellished-operator-1.htmlPass4 / 4
presentation-markup/scripts/underover-parameters-and-embellished-operator-2.htmlPass4 / 4
presentation-markup/spaces/mspace-width-height-001.htmlPass4 / 4
presentation-markup/spaces/space-1.htmlPass9 / 9
presentation-markup/spaces/space-like-001.htmlPass14 / 14
presentation-markup/spaces/space-like-002.htmlPass6 / 6
presentation-markup/spaces/space-like-003.htmlPass15 / 15
presentation-markup/spaces/space-like-004.htmlPass4 / 4
presentation-markup/tables/dynamic-table-001.htmlPass9 / 9
presentation-markup/tables/table-001.htmlPass6 / 6
presentation-markup/tables/table-002.htmlPass2 / 2
presentation-markup/tables/table-003.htmlPass2 / 2
presentation-markup/tables/table-axis-height.htmlPass1 / 1
presentation-markup/tables/table-cell-mrow-layout.htmlPass2 / 2
presentation-markup/tables/table-default-styles-001.htmlPass10 / 10
presentation-markup/tokens/tokens-rendering-from-in-flow.htmlPass5 / 5
relations/css-styling/attribute-mapping-001.htmlPass165 / 165
relations/css-styling/attribute-mapping-002.htmlPass132 / 132
relations/css-styling/default-font-family.htmlPass2 / 2
relations/css-styling/default-properties-on-semantics-and-maction.htmlPass2 / 2
relations/css-styling/default-properties-on-the-math-root.htmlPass8 / 8
relations/css-styling/display-2.htmlFail15 / 17NOT IMPLEMENTEDthe math layout of an mrow whose children are display: inline-block boxes in a multi-column container: the browsers lay them out as the div of the reference (they wrap in the columns)
relations/css-styling/display-contents.htmlPass1 / 1
relations/css-styling/displaystyle-1.htmlPass36 / 36
relations/css-styling/displaystyle-2.htmlPass27 / 27
relations/css-styling/displaystyle-3.htmlPass6 / 6
relations/css-styling/floats/not-floating-001.htmlPass24 / 24
relations/css-styling/ignored-properties-001.htmlPass260 / 260
relations/css-styling/lengths-2.htmlPass6 / 6
relations/css-styling/lengths-vi-vb-units.htmlFail1 / 2TEST BUGthe test expects the vi/vb of the width attribute of an mspace to follow the writing mode of the root element (vertical-rl), but they resolve against the writing mode of the element itself (https://drafts.csswg.org/css-values-4/#viewport-relative-lengths, WPT css/css-values/viewport-units-writing-mode.html: "The writing-mode of the document element does not matter"), which MathML Core forces to horizontal-tb on every MathML element (https://w3c.github.io/mathml-core/#user-agent-stylesheet, WPT mathml/relations/css-styling/writing-mode/force-horizontal-tb.html): vi is the width and vb the height of the viewport in both cases
relations/css-styling/mathvariant-auto-selection.htmlPass112 / 112
relations/css-styling/multi-column-layout.htmlPass2 / 2
relations/css-styling/not-participating-to-parent-layout.htmlPass166 / 166
relations/css-styling/out-of-flow/absolutely-positioned-002.htmlPass26 / 26
relations/css-styling/out-of-flow/all-mathml-containers.htmlPass50 / 50
relations/css-styling/overflow/computed-value-001.htmlPass1 / 1
relations/css-styling/padding-border-margin/border-001.htmlPass6 / 6
relations/css-styling/padding-border-margin/border-002.htmlPass51 / 51
relations/css-styling/padding-border-margin/margin-001.htmlPass6 / 6
relations/css-styling/padding-border-margin/margin-002.htmlPass76 / 76
relations/css-styling/padding-border-margin/margin-003.htmlPass17 / 17
relations/css-styling/padding-border-margin/padding-001.htmlPass6 / 6
relations/css-styling/padding-border-margin/padding-002.htmlPass51 / 51
relations/css-styling/padding-border-margin/padding-border-mpadded-baseline.htmlPass3 / 3
relations/css-styling/parsing/math-depth-computed.htmlPass5 / 5
relations/css-styling/parsing/math-depth-invalid.htmlPass10 / 10
relations/css-styling/parsing/math-depth-valid.htmlPass5 / 5
relations/css-styling/parsing/math-shift-computed.htmlPass2 / 2
relations/css-styling/parsing/math-shift-invalid.htmlPass3 / 3
relations/css-styling/parsing/math-shift-valid.htmlPass2 / 2
relations/css-styling/parsing/math-style-computed.htmlPass2 / 2
relations/css-styling/parsing/math-style-invalid.htmlPass3 / 3
relations/css-styling/parsing/math-style-valid.htmlPass2 / 2
relations/css-styling/scriptlevel-001.htmlPass16 / 16
relations/css-styling/width-height-001.htmlPass103 / 103
relations/css-styling/width-height-004.htmlPass20 / 20
relations/css-styling/width-height-005.htmlPass40 / 40
relations/css-styling/width-height-006.htmlPass26 / 26
relations/css-styling/writing-mode/force-horizontal-tb.htmlPass68 / 68
relations/css-styling/writing-mode/writing-mode-001.htmlPass2 / 2
relations/css-styling/writing-mode/writing-mode-002.htmlPass30 / 30
relations/html5-tree/a-hreflang-getter.htmlPass1 / 1
relations/html5-tree/a-hreflang-setter.htmlPass1 / 1
relations/html5-tree/a-keydown-enter.htmlPass1 / 1
relations/html5-tree/a-ping.htmlFail2 / 3NOT IMPLEMENTEDthe ping IDL attribute of MathMLAnchorElement; the pings are sent
relations/html5-tree/a-referrerpolicy-getter-setter.htmlFail0 / 1NOT IMPLEMENTEDthe referrerPolicy IDL attribute of MathMLAnchorElement
relations/html5-tree/a-rel-getter-setter.htmlFail0 / 1NOT IMPLEMENTEDthe rel/relList IDL attributes of MathMLAnchorElement
relations/html5-tree/a-rel-policy.htmlPass8 / 8
relations/html5-tree/a-type-getter-001.htmlPass1 / 1
relations/html5-tree/a-type-getter-002.htmlPass1 / 1
relations/html5-tree/a-type-setter.htmlPass1 / 1
relations/html5-tree/anchor-hyperlinkutils-getter-setter.htmlPass15 / 15
relations/html5-tree/anchor-hyperlinkutils-getter.htmlPass10 / 10
relations/html5-tree/anchor-visited-privacy.htmlPass1 / 1
relations/html5-tree/attribute-overflow.htmlPass3 / 3
relations/html5-tree/attributeStyleMap-getter-setter.htmlPass32 / 32
relations/html5-tree/attributeStyleMap-getter.htmlPass32 / 32
relations/html5-tree/autofocus-001.htmlPass1 / 1
relations/html5-tree/autofocus-002.htmlPass1 / 1
relations/html5-tree/autofocus-003.htmlPass1 / 1
relations/html5-tree/autofocus-004.htmlPass2 / 2
relations/html5-tree/canvas-visited-privacy.htmlPass1 / 1
relations/html5-tree/class-2.htmlPass1 / 1
relations/html5-tree/clipboard-event-handlers.htmlPass9 / 9
relations/html5-tree/content-editable.htmlPass2 / 2
relations/html5-tree/css-inline-style-interface.htmlPass33 / 33
relations/html5-tree/display-1.htmlPass11 / 11
relations/html5-tree/dynamic-childlist-001.htmlPass44 / 44
relations/html5-tree/dynamic-childlist-002.htmlPass26 / 26
relations/html5-tree/dynamic-href-002.htmlPass1 / 1
relations/html5-tree/focus-blur-001.htmlPass33 / 33
relations/html5-tree/href-click-003.htmlPass1 / 1
relations/html5-tree/href-click-004.htmlPass28 / 28
relations/html5-tree/href-navigation.htmlPass1 / 1
relations/html5-tree/href-target-base.htmlPass1 / 1
relations/html5-tree/html-or-svg-or-mathml-element-interfaces.htmlPass5 / 5
relations/html5-tree/integration-point-4.htmlPass2 / 2
relations/html5-tree/integration-point-5.htmlPass2 / 2
relations/html5-tree/math-global-event-handlers.htmlPass375 / 375
relations/html5-tree/style-src-attr-meta.htmlPass288 / 288
relations/html5-tree/style-src-elem-meta.htmlPass320 / 320
relations/html5-tree/tabindex-001.htmlPass64 / 64
relations/html5-tree/tabindex-002.htmlPass1 / 1
relations/html5-tree/tabindex-003.htmlPass224 / 224
relations/html5-tree/tabindex-focus-001.htmlPass1 / 1
relations/html5-tree/unique-identifier-2.htmlPass1 / 1
relations/text-and-math/basic-mathematical-alphanumeric-symbols-with-default-font.htmlPass3 / 3

Tentative tests

TestResultSubtestsKindDescription
presentation-markup/scripts/underover-parameters-4.tentative.htmlFail3 / 6TEST BUGtentative: the overscripts are accents because of the accent property of the operator dictionary of MathML 3; MathML Core only uses the accent/accentunder attributes
relations/css-styling/size-containment-001.tentative.htmlPass44 / 44

Reftests

TestResultVariantsKindDescription
presentation-markup/direction/direction-006.htmlPass1 / 1
presentation-markup/direction/direction-007.htmlPass1 / 1
presentation-markup/direction/direction-008.htmlPass1 / 1
presentation-markup/direction/direction-010.htmlPass1 / 1
presentation-markup/direction/direction-mpadded.htmlPass1 / 1
presentation-markup/direction/direction-overall-002.htmlPass1 / 1
presentation-markup/direction/direction-overall-003.htmlPass1 / 1
presentation-markup/direction/direction-overall.htmlPass1 / 1
presentation-markup/direction/direction-token.htmlPass1 / 1
presentation-markup/fractions/frac-bar-001.htmlPass1 / 1
presentation-markup/fractions/frac-bar-002.htmlPass1 / 1
presentation-markup/fractions/frac-bar-003.htmlPass1 / 1
presentation-markup/fractions/frac-color-001.htmlPass1 / 1
presentation-markup/fractions/frac-color-002.htmlPass1 / 1
presentation-markup/fractions/frac-created-dynamically-2.htmlPass1 / 1
presentation-markup/fractions/frac-created-dynamically-3.htmlPass1 / 1
presentation-markup/fractions/frac-created-dynamically-4.htmlPass1 / 1
presentation-markup/fractions/frac-created-dynamically.htmlPass1 / 1
presentation-markup/fractions/frac-default-padding.htmlPass1 / 1
presentation-markup/fractions/frac-invalid-2.htmlPass1 / 1
presentation-markup/fractions/frac-invalid-3.htmlPass1 / 1
presentation-markup/fractions/frac-invalid.htmlPass1 / 1
presentation-markup/fractions/frac-legacy-bevelled-attribute.tentative.htmlPass1 / 1
presentation-markup/fractions/frac-linethickness-001.htmlPass1 / 1
presentation-markup/fractions/frac-linethickness-003.htmlPass1 / 1
presentation-markup/fractions/frac-linethickness-004.htmlPass1 / 1
presentation-markup/fractions/frac-linethickness-005.htmlPass1 / 1
presentation-markup/fractions/frac-linethickness-006.htmlPass1 / 1
presentation-markup/fractions/frac-linethickness-007.htmlPass1 / 1
presentation-markup/fractions/frac-linethickness-008.htmlPass1 / 1
presentation-markup/fractions/frac-mrow-001.htmlPass1 / 1
presentation-markup/fractions/frac-numalign-denomalign-001.htmlPass1 / 1
presentation-markup/fractions/frac-parameters-gap-001.htmlPass1 / 1
presentation-markup/fractions/frac-parameters-gap-002.htmlPass1 / 1
presentation-markup/fractions/frac-parameters-gap-003.htmlPass1 / 1
presentation-markup/fractions/frac-parameters-gap-004.htmlPass1 / 1
presentation-markup/fractions/frac-parameters-gap-005.htmlPass1 / 1
presentation-markup/fractions/frac-parameters-gap-006.htmlPass1 / 1
presentation-markup/fractions/frac-rendering-from-in-flow.htmlPass1 / 1
presentation-markup/fractions/frac-visibility-001.htmlPass1 / 1
presentation-markup/menclose/legacy-menclose-radical-notation.htmlPass1 / 1
presentation-markup/mpadded/mpadded-010.htmlPass1 / 1
presentation-markup/mpadded/mpadded-011.htmlPass1 / 1
presentation-markup/mpadded/mpadded-012.htmlPass1 / 1
presentation-markup/mpadded/mpadded-013.htmlPass1 / 1
presentation-markup/mpadded/mpadded-percentage-001.htmlPass1 / 1
presentation-markup/mrow/dynamic-mrow-like-001.htmlPass1 / 1
presentation-markup/mrow/legacy-mfenced-element-001.htmlPass1 / 1
presentation-markup/mrow/legacy-mrow-like-elements-002.htmlFail0 / 1TEST BUGthe squares that the HTML parser moves out of math (the span child of annotation in the test, of mrow in the reference) and the ones it keeps in a token element are swapped between the test and the reference, and a line that contains an mtext or annotation-xml with the 50px inline-block is 56px tall (the strut of the bundled math font, STIX Two Math, has a 6px descent) while a line with the bare inline-block is 54px tall: the second square is 2px higher than in the reference; the test assumes a math font whose strut is not deeper than the one of the default font, only Chrome passes; the trees differ because of the HTML parser (https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign: a span start tag in foreign content pops the elements up to a MathML text integration point, an HTML integration point or an HTML element), and the height of a line depends on the strut of the font of its block container (CSS 2 section 10.8.1: "each line box starts with a zero-width inline box with the element's font and line height properties"; MathML Core user agent style sheet: math { font-family: math; line-height: normal })
presentation-markup/mrow/mrow-painting-order.htmlPass1 / 1
presentation-markup/mrow/semantics-001.htmlPass1 / 1
presentation-markup/mrow/semantics-002.htmlPass1 / 1
presentation-markup/mrow/semantics-003.htmlPass1 / 1
presentation-markup/mrow/semantics-004.htmlPass1 / 1
presentation-markup/mrow/semantics-005.htmlPass1 / 1
presentation-markup/operators/embellished-op-1-2.htmlPass1 / 1
presentation-markup/operators/embellished-op-1-3.htmlPass1 / 1
presentation-markup/operators/embellished-op-1-4.htmlPass1 / 1
presentation-markup/operators/embellished-op-1-5.htmlPass1 / 1
presentation-markup/operators/embellished-op-2-1.htmlPass1 / 1
presentation-markup/operators/embellished-op-2-2.htmlPass1 / 1
presentation-markup/operators/embellished-op-2-3.htmlPass1 / 1
presentation-markup/operators/embellished-op-2-4.htmlPass1 / 1
presentation-markup/operators/embellished-op-3-2.htmlPass1 / 1
presentation-markup/operators/embellished-op-3-3.htmlPass1 / 1
presentation-markup/operators/embellished-op-3-4.htmlPass1 / 1
presentation-markup/operators/embellished-op-3-5.htmlPass1 / 1
presentation-markup/operators/embellished-op-4-1.htmlPass1 / 1
presentation-markup/operators/embellished-op-4-2.htmlPass1 / 1
presentation-markup/operators/embellished-op-4-3.htmlPass1 / 1
presentation-markup/operators/embellished-op-5-1.htmlPass1 / 1
presentation-markup/operators/embellished-op-5-2.htmlPass1 / 1
presentation-markup/operators/embellished-operator-dynamic-001.htmlPass1 / 1
presentation-markup/operators/mo-boolean-attributes-case-insensitive.htmlPass1 / 1
presentation-markup/operators/mo-dynamic-mozilla-347348.xhtmlPass1 / 1
presentation-markup/operators/mo-fallback-font.htmlFail0 / 1NOT IMPLEMENTEDthe rendering of the U+002D HYPHEN-MINUS content of an mo with the glyph of U+2212 MINUS SIGN (a WebKit behavior: the hyphen of the primary font is painted, 16.8px wide instead of 20.5px); only Safari passes
presentation-markup/operators/mo-form-dynamic-002.htmlPass1 / 1
presentation-markup/operators/mo-form-dynamic.htmlPass1 / 1
presentation-markup/operators/mo-form-fallback.htmlPass1 / 1
presentation-markup/operators/mo-form-minus-plus.htmlPass1 / 1
presentation-markup/operators/mo-form.htmlPass1 / 1
presentation-markup/operators/mo-invisibleoperators-2.htmlPass1 / 1
presentation-markup/operators/mo-invisibleoperators.htmlPass1 / 1
presentation-markup/operators/mo-lspace-rspace-2.htmlPass1 / 1
presentation-markup/operators/mo-lspace-rspace-3.htmlPass1 / 1
presentation-markup/operators/mo-lspace-rspace-4.htmlPass1 / 1
presentation-markup/operators/mo-lspace-rspace-dynamic.htmlPass1 / 1
presentation-markup/operators/mo-lspace-rspace.htmlFail0 / 1TEST BUGthe test expects the spacing of the MathML 3 operator dictionary for U+223F SINE WAVE (lspace and rspace of 3/18em); this character is not in the operator dictionary of MathML Core, so it gets the default 5/18em (the mo is 1.8px further and the row 3.6px wider); Chrome fails too; MathML Core: the category of an operator that is not in the dictionary is Default, whose lspace and rspace are 0.2777777777777778em (https://w3c.github.io/mathml-core/#dfn-algorithm-for-determining-the-properties-of-an-embellished-operator, https://w3c.github.io/mathml-core/#operator-dictionary); Firefox and Safari pass with the MathML 3 dictionary
presentation-markup/operators/mo-movablelimits-and-embellished-operator.htmlPass1 / 1
presentation-markup/operators/mo-movablelimits-default.htmlPass1 / 1
presentation-markup/operators/mo-movablelimits-dynamic.htmlPass1 / 1
presentation-markup/operators/mo-movablelimits-from-in-flow.htmlPass1 / 1
presentation-markup/operators/mo-movablelimits.htmlPass1 / 1
presentation-markup/operators/mo-not-in-dictionary-lspace-rspace.htmlPass1 / 1
presentation-markup/operators/mo-not-in-dictionary-movablelimits.htmlPass1 / 1
presentation-markup/operators/mo-paint-lspace-rspace.htmlPass1 / 1
presentation-markup/operators/mo-single-char-and-children.htmlPass1 / 1
presentation-markup/operators/munderover-accent-dynamic-001.htmlPass1 / 1
presentation-markup/operators/munderover-accentunder-dynamic-001.htmlPass1 / 1
presentation-markup/operators/non-spacing-accent-1.xhtmlPass1 / 1
presentation-markup/operators/op-dict-1.htmlPass1 / 1
presentation-markup/operators/op-dict-12.htmlPass1 / 1
presentation-markup/operators/op-dict-13.htmlPass1 / 1
presentation-markup/operators/op-dict-2.htmlPass1 / 1
presentation-markup/operators/op-dict-3.htmlPass1 / 1
presentation-markup/operators/op-dict-4.htmlPass1 / 1
presentation-markup/operators/op-dict-5.htmlPass1 / 1
presentation-markup/operators/op-dict-6.htmlPass1 / 1
presentation-markup/operators/op-dict-7.htmlPass1 / 1
presentation-markup/operators/op-dict-8.htmlPass1 / 1
presentation-markup/operators/op-dict-9.htmlPass1 / 1
presentation-markup/operators/operator-dictionary-arabic-001.htmlPass1 / 1
presentation-markup/operators/operator-dictionary-arabic-002.htmlPass1 / 1
presentation-markup/operators/operator-dictionary-empty-and-three-chars.htmlPass1 / 1
presentation-markup/operators/painting-stretchy-operator-001.htmlPass1 / 1
presentation-markup/operators/painting-stretchy-operator-002.htmlPass1 / 1
presentation-markup/operators/stretchy-underbar-1.xhtmlPass1 / 1
presentation-markup/radicals/dynamic-radical-paint-invalidation-001.htmlPass1 / 1
presentation-markup/radicals/empty-msqrt.htmlPass1 / 1
presentation-markup/radicals/radical-rendering-from-in-flow.htmlPass1 / 1
presentation-markup/scripts/mmultiscript-001.htmlPass1 / 1
presentation-markup/scripts/mmultiscript-002.htmlPass1 / 1
presentation-markup/scripts/mmultiscript-003.htmlPass1 / 1
presentation-markup/scripts/mover-accent-dynamic-change.htmlPass1 / 1
presentation-markup/scripts/mprescripts-001.htmlPass1 / 1
presentation-markup/scripts/munder-mover-align-accent-false.htmlPass1 / 1
presentation-markup/scripts/munder-mover-align-accent-true.htmlPass1 / 1
presentation-markup/scripts/munderover-align-accent-false.htmlPass1 / 1
presentation-markup/scripts/munderover-align-accent-true.htmlPass1 / 1
presentation-markup/scripts/none-001.htmlPass1 / 1
presentation-markup/scripts/none-002.htmlPass1 / 1
presentation-markup/scripts/stretchy-mover-1a.htmlPass1 / 1
presentation-markup/scripts/stretchy-mover-1b.htmlPass1 / 1
presentation-markup/scripts/stretchy-mover-2a.htmlFail0 / 1TEST BUGthe test expects the stretchy operator of the mover not to be stretched; with the algorithm for stretching operators along the block axis of MathML Core, the embellished operator is the only child of its row, so it is stretched to its own ink extent, which includes the overscript: the arrow is 50px tall instead of 25px; Chrome and Firefox fail too, only Safari passes; MathML Core (https://w3c.github.io/mathml-core/#dfn-algorithm-for-stretching-operators-along-the-block-axis): "If LNotToStretch is empty, perform layout with block stretch size constraint (0, 0) for all the items of LToStretch. Calculate the unconstrained target sizes Uascent and Udescent as respectively the maximum ink ascent and maximum ink descent of the margin boxes of in-flow children that have been laid out in the previous step. Lay out or relayout all the elements of LToStretch with block stretch size constraint (Uascent, Udescent)"
presentation-markup/scripts/stretchy-mover-2b.htmlPass1 / 1
presentation-markup/scripts/stretchy-mover-3.htmlFail0 / 1TEST BUGthe test expects the stretchy operator of the mover not to be stretched; with the algorithm for stretching operators along the block axis of MathML Core, the embellished operator is the only child of its row, so it is stretched to its own ink extent, which includes the overscript: the double bar is stretched below the overscript instead of keeping its 25px; Chrome fails too; MathML Core (https://w3c.github.io/mathml-core/#dfn-algorithm-for-stretching-operators-along-the-block-axis): "If LNotToStretch is empty, perform layout with block stretch size constraint (0, 0) for all the items of LToStretch. Calculate the unconstrained target sizes Uascent and Udescent as respectively the maximum ink ascent and maximum ink descent of the margin boxes of in-flow children that have been laid out in the previous step. Lay out or relayout all the elements of LToStretch with block stretch size constraint (Uascent, Udescent)"
presentation-markup/scripts/stretchy-msup-1a.htmlPass1 / 1
presentation-markup/scripts/stretchy-msup-1b.htmlPass1 / 1
presentation-markup/scripts/stretchy-msup-1c.htmlPass1 / 1
presentation-markup/scripts/stretchy-msup-1d.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-1a.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-1b.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-1c.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-1d.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-1e.htmlFail0 / 1TEST BUGthe reference math > mrow > munderover > mo is an embellished operator, around which the math row adds the lspace and rspace of the arrow (5/18em = 6.9px, MathML Core: add-space is true for the math element), while the test sets lspace="0em" rspace="0em": the reference is 6.9px to the right of the test; Chrome and Safari fail too, only Firefox passes; MathML Core (https://w3c.github.io/mathml-core/#layout-of-mrow): "Set add-space to true if the box corresponds to a math element or is not an embellished operator" and "If the child is an embellished operator and add-space is true then increment inline-offset by its lspace property"
presentation-markup/scripts/stretchy-munderover-2a.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-2b.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-2c.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-2d.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-2e.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-2f.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-2g.htmlFail0 / 1TEST BUGthe reference math > mrow > msup > munderover > mo is an embellished operator, around which the math row adds the lspace and rspace of the arrow (5/18em = 6.9px, MathML Core: add-space is true for the math element), while the test sets lspace="0em" rspace="0em": the reference is 6.9px to the right of the test; Chrome and Safari fail too, only Firefox passes; MathML Core (https://w3c.github.io/mathml-core/#layout-of-mrow): "Set add-space to true if the box corresponds to a math element or is not an embellished operator" and "If the child is an embellished operator and add-space is true then increment inline-offset by its lspace property"
presentation-markup/scripts/stretchy-munderover-3a.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-3b.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-3c.htmlPass1 / 1
presentation-markup/scripts/stretchy-munderover-3d.htmlPass1 / 1
presentation-markup/scripts/sub-vs-sup-mozilla-345563.xhtmlPass1 / 1
presentation-markup/scripts/subsup-legacy-scriptshift-attributes-001.tentative.htmlPass1 / 1
presentation-markup/scripts/underover-legacy-align-attribute-001.htmlPass1 / 1
presentation-markup/scripts/underover-stretchy-001.htmlPass1 / 1
presentation-markup/scripts/underover-stretchy-002.htmlPass1 / 1
presentation-markup/scripts/underover-stretchy-003.htmlPass1 / 1
presentation-markup/spaces/mspace-children.htmlPass1 / 1
presentation-markup/spaces/mspace-percentage-001.htmlPass1 / 1
presentation-markup/spaces/space-2.htmlPass1 / 1
presentation-markup/spaces/space-3.htmlPass1 / 1
presentation-markup/spaces/space-vertical-align.tentative.htmlPass1 / 1
presentation-markup/tables/columnspan-rowspan-001.htmlPass1 / 1
presentation-markup/tables/columnspan-rowspan-002.htmlPass1 / 1
presentation-markup/tables/columnspan-rowspan-003.htmlPass1 / 1
presentation-markup/tables/columnspan-rowspan-004.htmlPass1 / 1
presentation-markup/tables/columnspan-rowspan-005.htmlPass1 / 1
presentation-markup/tables/columnspan-rowspan-006.htmlPass1 / 1
presentation-markup/tables/dynamic-columnspan-rowspan-001a.htmlPass1 / 1
presentation-markup/tables/dynamic-columnspan-rowspan-001b.htmlPass1 / 1
presentation-markup/tables/dynamic-columnspan-rowspan-001c.htmlPass1 / 1
presentation-markup/tables/dynamic-columnspan-rowspan-002a.htmlPass1 / 1
presentation-markup/tables/dynamic-columnspan-rowspan-002b.htmlPass1 / 1
presentation-markup/tables/dynamic-columnspan-rowspan-002c.htmlPass1 / 1
presentation-markup/tables/dynamic-rowspan-mozilla-370692.xhtmlPass1 / 1
presentation-markup/tokens/dynamic-mi-mozilla-409125.xhtmlPass1 / 1
presentation-markup/tokens/dynamic-mi-mozilla-414123.xhtmlPass1 / 1
presentation-markup/tokens/dynamic-mtext-like-001.htmlPass1 / 1
presentation-markup/tokens/dynamic-mtext-like-002.htmlPass1 / 1
presentation-markup/tokens/mi-mathvariant-1.xhtmlPass1 / 1
presentation-markup/tokens/mi-mathvariant-2.xhtmlPass1 / 1
presentation-markup/tokens/ms-001.htmlPass1 / 1
relations/css-styling/anchor-displaystyle-001.htmlPass1 / 1
relations/css-styling/anchor-mathbackground-001.htmlPass1 / 1
relations/css-styling/anchor-mathcolor-001.htmlPass1 / 1
relations/css-styling/anchor-mathsize-001.htmlPass1 / 1
relations/css-styling/blur-filter.htmlPass1 / 1
relations/css-styling/clip-path.htmlPass1 / 1
relations/css-styling/clip.htmlPass1 / 1
relations/css-styling/color-001.htmlPass1 / 1
relations/css-styling/color-002.htmlPass1 / 1
relations/css-styling/color-003.htmlPass1 / 1
relations/css-styling/color-004.tentative.htmlPass1 / 1
relations/css-styling/color-005.htmlPass1 / 1
relations/css-styling/display-1.htmlPass1 / 1
relations/css-styling/display-with-overflow.htmlPass1 / 1
relations/css-styling/displaystyle-011.htmlPass1 / 1
relations/css-styling/displaystyle-012.htmlPass1 / 1
relations/css-styling/displaystyle-013.htmlPass1 / 1
relations/css-styling/displaystyle-014.htmlPass1 / 1
relations/css-styling/displaystyle-015.htmlPass1 / 1
relations/css-styling/dynamic-dir-1.htmlPass1 / 1
relations/css-styling/first-line-first-letter-pseudo-elements-001.htmlPass1 / 1
relations/css-styling/first-line-first-letter-pseudo-elements-002.htmlFail0 / 1TEST BUGexpects ::first-line and ::first-letter on a div with display: inline math, which computes to inline on an element that is not a MathML element (https://w3c.github.io/mathml-core/#new-display-math-value): an inline box has neither (they apply to block containers); Chromium 152 renders the same as the library (the items 1 and 2 are not green)
relations/css-styling/first-line-first-letter-pseudo-elements-003.htmlFail0 / 1TEST BUGthe test expects no red, but the math element is an atomic inline of the first line of the block: the background of the ::first-line of the block is painted behind it, as in the browsers (the test fails in Chrome, Firefox and Safari)
relations/css-styling/first-line-first-letter-pseudo-elements-004.htmlPass1 / 1
relations/css-styling/floats/floating-inside-mathml-with-block-display.htmlPass1 / 1
relations/css-styling/floats/floating-math.htmlPass1 / 1
relations/css-styling/legacy-scriptminsize-attribute.htmlPass1 / 1
relations/css-styling/legacy-scriptsizemultiplier-attribute.htmlPass1 / 1
relations/css-styling/lengths-1.htmlPass1 / 1
relations/css-styling/mathbackground-001.htmlPass1 / 1
relations/css-styling/mathbackground-002.htmlPass1 / 1
relations/css-styling/mathbackground-003.htmlPass1 / 1
relations/css-styling/mathbackground-004.htmlPass1 / 1
relations/css-styling/mathcolor-001.htmlPass1 / 1
relations/css-styling/mathcolor-002.htmlPass1 / 1
relations/css-styling/mathcolor-003.htmlPass1 / 1
relations/css-styling/mathcolor-004.htmlPass1 / 1
relations/css-styling/mathcolor-mathbackground-css.htmlPass1 / 1
relations/css-styling/mathsize-attribute-css-keywords.htmlPass1 / 1
relations/css-styling/mathsize-attribute-legacy-values.htmlPass1 / 1
relations/css-styling/mathsize-attribute.htmlPass1 / 1
relations/css-styling/mathvariant-auto.htmlPass1 / 1
relations/css-styling/mathvariant-font-style-font-weight.htmlPass1 / 1
relations/css-styling/mi-fontstyle-fontweight.htmlPass1 / 1
relations/css-styling/mozilla-393760-1.xmlFail0 / 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)
relations/css-styling/mozilla-393760-2.xmlDisabled–FLAKYreftest whose result depends on the platform: the glyphs are antialiased by the font engine of the platform (CoreText, FreeType, DirectWrite), so it passes on Linux and fails on macOS or the reverse
relations/css-styling/non-mathml-namespace-001.htmlPass1 / 1
relations/css-styling/out-of-flow/absolutely-positioned-001.htmlPass1 / 1
relations/css-styling/out-of-flow/fixed-positioned-001.htmlPass1 / 1
relations/css-styling/padding-border-margin/padding-border-margin-001.htmlPass1 / 1
relations/css-styling/padding-border-margin/padding-border-margin-002.htmlPass1 / 1
relations/css-styling/padding-border-margin/padding-border-margin-003.htmlPass1 / 1
relations/css-styling/padding-border-margin/padding-border-margin-004.htmlPass1 / 1
relations/css-styling/padding-border-margin/padding-border-margin-005.htmlPass1 / 1
relations/css-styling/padding-border-margin/padding-border-margin-006.htmlPass1 / 1
relations/css-styling/padding-border-margin/padding-border-margin-007.htmlPass1 / 1
relations/css-styling/presentational-hints-001.htmlPass1 / 1
relations/css-styling/presentational-hints-002.htmlPass1 / 1
relations/css-styling/table-width-1.xhtmlPass1 / 1
relations/css-styling/table-width-2.htmlPass1 / 1
relations/css-styling/table-width-3.htmlFail0 / 1TEST BUGthe test expects the cell to contain the ink of the italic f glyphs (Gecko includes the italic overhang of the glyphs in the inline size of a token element); the 48px italic f overflows its mi/mtext box and the td by about 10px on the right, as in Chrome and Safari; only Firefox passes; MathML Core (https://w3c.github.io/mathml-core/#layout-of-mtext): "The min-content inline size, max-content inline size and inline size of the math content box are equal to the one of the anonymous child" (the advances of the text, not its ink)
relations/css-styling/table-width-4.htmlPass1 / 1
relations/css-styling/transform.htmlPass1 / 1
relations/css-styling/visibility-001.htmlPass1 / 1
relations/css-styling/visibility-002.htmlPass1 / 1
relations/css-styling/visibility-003.htmlPass1 / 1
relations/css-styling/visibility-004.tentative.htmlPass1 / 1
relations/css-styling/visibility-005.htmlPass1 / 1
relations/css-styling/width-height-002.htmlPass1 / 1
relations/css-styling/width-height-003.htmlPass1 / 1
relations/css-styling/writing-mode/reset-and-logicial-property.htmlPass1 / 1
relations/html5-tree/class-1.htmlPass1 / 1
relations/html5-tree/color-attributes-1.htmlPass1 / 1
relations/html5-tree/css-inline-style-dynamic.htmlPass1 / 1
relations/html5-tree/display-2.htmlPass1 / 1
relations/html5-tree/dynamic-1.htmlPass1 / 1
relations/html5-tree/dynamic-2.htmlPass1 / 1
relations/html5-tree/dynamic-href-001.htmlPass1 / 1
relations/html5-tree/dynamic-mozilla-162063.xhtmlPass1 / 1
relations/html5-tree/href-click-001.htmlPass1 / 1
relations/html5-tree/href-click-002.htmlPass1 / 1
relations/html5-tree/integration-point-1.htmlPass1 / 1
relations/html5-tree/integration-point-2.htmlPass1 / 1
relations/html5-tree/integration-point-3.htmlPass1 / 1
relations/html5-tree/link-color-001.htmlPass1 / 1
relations/html5-tree/link-color-002.htmlPass1 / 1
relations/html5-tree/maction-click.htmlPass1 / 1
relations/html5-tree/required-extensions-2.htmlPass1 / 1
relations/html5-tree/shadow-dom-mozilla-1066554.htmlPass1 / 1
relations/html5-tree/unique-identifier-1.htmlPass1 / 1
relations/html5-tree/unique-identifier-3.htmlPass1 / 1
relations/text-and-math/mi-automatic-italic-with-default-font.htmlPass1 / 1
relations/text-and-math/mo-glyph-height-with-default-font.htmlPass1 / 1
relations/text-and-math/non-mathml-children-in-annotation.tentative.htmlPass1 / 1
relations/text-and-math/use-typo-metrics-1.htmlPass1 / 1