css/css-ruby

edit

WPT coverage of the tests of css/css-ruby 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
Stable20200100%
Tentative0100%
Reftests123143086%
All143164087%

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: 7
  • TEST BUG: 3
  • NOT IMPLEMENTED: 7
  • TEST RUNNER: 4

Stable tests

TestResultSubtestsKindDescription
br-clear-all-000.htmlPass1 / 1
br-clear-all-001.htmlPass1 / 1
br-clear-all-002.htmlPass1 / 1
inheritance.htmlPass8 / 8
line-break-around-ruby-001.htmlPass6 / 6
line-spacing.htmlPass11 / 11
parsing/ruby-align-invalid.htmlPass4 / 4
parsing/ruby-align-valid.htmlPass4 / 4
parsing/ruby-merge-invalid.htmlPass6 / 6
parsing/ruby-merge-valid.htmlPass3 / 3
parsing/ruby-overhang-invalid.htmlPass11 / 11
parsing/ruby-overhang-valid.htmlPass3 / 3
parsing/ruby-position-invalid.htmlPass5 / 5
parsing/ruby-position-valid.htmlPass3 / 3
position-relative.htmlPass3 / 3
rt-display-blockified.htmlPass2 / 2
ruby-overhang-no-overlap.htmlPass1 / 1
ruby-overhang-spaces-no-overlap.htmlPass1 / 1
ruby-position-alternate.htmlPass7 / 7
ruby-position.htmlPass6 / 6

Tentative tests

TestResultSubtestsKindDescription
line-spacing-on-edges.tentative.htmlFail0 / 3NOT IMPLEMENTEDthe annotations of the first line of a block container use the space before it (its block-start margin, the space after the content of the last line of the previous block), as Chrome does (https://github.com/w3c/csswg-drafts/issues/14405): the first line is extended by its annotations, because the stable tests css/css-ruby/ruby-annotation-pairing-001.html, ruby-annotation-with-margin.html and css/css-text-decor/text-emphasis-color-001.xht expect the annotations of a first line inside the paragraph even when it has a margin; the first subtest passes when the block-start margin is used

Reftests

TestResultVariantsKindDescription
abs-in-ruby-base-container.htmlPass1 / 1
abs-in-ruby-base.htmlPass1 / 1
abs-in-ruby-container.htmlPass1 / 1
block-ruby-001.htmlFail0 / 1NOT IMPLEMENTEDas in Gecko, no line break between the bases of a ruby segment without annotation (the reference uses white-space: nowrap): each base is a ruby column
block-ruby-002.htmlFail0 / 1NOT IMPLEMENTEDthe inlinification of the computed display of the block-level ruby containers in a ruby container (block ruby instead of ruby): the boxes are inlinified, not the computed values
block-ruby-003.htmlPass1 / 1
block-ruby-004.htmlPass1 / 1
block-ruby-005.htmlFail0 / 1BUGthe inlinified block-level ruby containers (display: block ruby) in an annotation or in a base container are not laid out as in the reference
break-within-bases/basic.htmlFail0 / 1NOT IMPLEMENTEDthe line breaks inside the ruby bases (https://drafts.csswg.org/css-ruby-1/#break-within): a ruby column is a unit of the line breaking (its items are the items of its bases followed by the items of its annotations), so breaking it needs the bases and the annotations to be broken at different positions on each line; Chrome only
break-within-bases/no-break-opportunity-at-end.htmlFail0 / 1NOT IMPLEMENTEDthe line breaks inside the ruby bases (https://drafts.csswg.org/css-ruby-1/#break-within): a ruby column is a unit of the line breaking (its items are the items of its bases followed by the items of its annotations), so breaking it needs the bases and the annotations to be broken at different positions on each line; Chrome only
break-within-bases/nowrap.htmlFail0 / 1NOT IMPLEMENTEDthe line breaks inside the ruby bases (https://drafts.csswg.org/css-ruby-1/#break-within): a ruby column is a unit of the line breaking (its items are the items of its bases followed by the items of its annotations), so breaking it needs the bases and the annotations to be broken at different positions on each line; Chrome only
collapse-trailing-whitespace.htmlFail0 / 1TEST BUGthe reference pairs the base n with the annotation n, which is hidden (https://drafts.csswg.org/css-ruby-1/#autohide: its text content is the text content of its base, as in Gecko), where the base n of the test (with a space) keeps its annotation; the test passes in Chrome, which does not hide annotations (the trailing space of the base is removed at the end of the line as expected)
empty-ruby-base-container.htmlPass1 / 1
empty-ruby-text-container-abs.htmlPass1 / 1
empty-ruby-text-container-float.htmlPass1 / 1
empty-ruby-text-container.htmlPass1 / 1
improperly-contained-annotation-001.htmlPass1 / 1
interlinear-block-margin-box.htmlPass1 / 1
intra-base-white-space-001.htmlPass1 / 1
nested-ruby-pairing-001.htmlFail0 / 1BUGa ruby nested in a ruby base is 2px wider than the equivalent ruby with two annotation levels: the slots of the inner ruby columns are not widened by the annotation of the outer ruby
pseudo-first-letter.htmlPass1 / 1
pseudo-first-line.htmlPass1 / 1
rb-display-001.htmlPass1 / 1
rbc-rtc-basic-001.htmlFail0 / 1BUGthe column of an annotation without base (the second annotation of a ruby with one base) does not overhang the text after the ruby, where the column of the reference, whose base is a no-break space, overhangs the white space that follows it by 7.5px (ruby-overhang: auto): the next two rubies are 7.5px to the right (passes in Firefox only)
root-block-ruby.xhtmlPass1 / 1
root-ruby.xhtmlPass1 / 1
rt-display-001.htmlPass1 / 1
rt-text-indent-001.htmlPass1 / 1
ruby-align-001.htmlPass1 / 1
ruby-align-001a.htmlPass1 / 1
ruby-align-002.htmlPass1 / 1
ruby-align-002a.htmlPass1 / 1
ruby-align-space-around.htmlPass1 / 1
ruby-annotation-pairing-001.htmlPass1 / 1
ruby-annotation-with-margin.htmlPass1 / 1
ruby-autohide-001.htmlPass1 / 1
ruby-autohide-002.htmlPass1 / 1
ruby-autohide-003.htmlPass1 / 1
ruby-autohide-004.htmlPass1 / 1
ruby-base-container-abs.htmlPass1 / 1
ruby-base-container-float.htmlPass1 / 1
ruby-base-different-size.htmlPass1 / 1
ruby-bidi-001.htmlPass1 / 1
ruby-bidi-002.htmlPass1 / 1
ruby-bidi-003.htmlFail0 / 1BUGthe annotation container of the test (text in the rt) is as tall as the content area of its text, the one of the reference (an inlinified div, an inline-block with line-height: 1) as tall as its margin box: the annotation is 4px taller in the test and its base 2px lower; the Hebrew characters have no glyph in the fonts of the runner
ruby-bidi-004.htmlPass1 / 1
ruby-box-generation-001.htmlPass1 / 1
ruby-box-generation-002.htmlFail0 / 1TEST BUGthe reference assumes that the annotations do not overhang (ruby-overhang: auto: they "may overhang adjacent content"): the annotations wider than their base overhang the inter-segment white space before and after their column (ruby-overhang: auto, as Blink), where the reference (made for Gecko, which does not overhang) puts that white space in a ruby base of its own segment, which is not overhung: the columns l (002) and t (005) are 0.9px narrower than in the reference (passes in Firefox only)
ruby-box-generation-003.htmlPass1 / 1
ruby-box-generation-004.htmlPass1 / 1
ruby-box-generation-005.htmlFail0 / 1TEST BUGthe reference assumes that the annotations do not overhang (ruby-overhang: auto: they "may overhang adjacent content"): the annotations wider than their base overhang the inter-segment white space before and after their column (ruby-overhang: auto, as Blink), where the reference (made for Gecko, which does not overhang) puts that white space in a ruby base of its own segment, which is not overhung: the columns l (002) and t (005) are 0.9px narrower than in the reference (passes in Firefox only)
ruby-box-model-001.htmlPass1 / 1
ruby-dynamic-insertion-001.htmlPass1 / 1
ruby-dynamic-insertion-002.htmlPass1 / 1
ruby-dynamic-insertion-003.htmlPass1 / 1
ruby-dynamic-insertion-004.htmlPass1 / 1
ruby-dynamic-insertion-005.htmlPass1 / 1
ruby-dynamic-removal-001.htmlPass1 / 1
ruby-dynamic-removal-002.htmlPass1 / 1
ruby-dynamic-removal-003.htmlPass1 / 1
ruby-float-handling-001.htmlPass1 / 1
ruby-inlinize-blocks-001.htmlPass1 / 1
ruby-inlinize-blocks-002.htmlPass1 / 1
ruby-inlinize-blocks-003.htmlPass1 / 1
ruby-inlinize-blocks-004.htmlPass1 / 1
ruby-inlinize-blocks-005.htmlPass1 / 1
ruby-inlinize-recursive-simple.htmlFail0 / 1BUGthe inlinified list item (li) in the ruby container and in the annotation is laid out 1px apart from the reference
ruby-intra-level-whitespace-001.htmlPass1 / 1
ruby-intra-level-whitespace-002.htmlPass1 / 1
ruby-intra-level-whitespace-003.htmlPass1 / 1
ruby-intrinsic-isize-001.htmlPass1 / 1
ruby-intrinsic-isize-002.htmlFail0 / 1BUGthe texts of the bases are shaped separately: no kerning between them, unlike the single text of the reference
ruby-intrinsic-isize-003.htmlFail0 / 1BUGa glyph of the bases next to the margins, borders and paddings of the ruby container is a fraction of a pixel off
ruby-justification-001.htmlFail0 / 1NOT IMPLEMENTEDthe expansion of the ruby columns by the justification of their line (text-align: justify): they are not expanded, and the annotation (an inline-block of 100px in an rtc) spans the two bases, which are centered in its column; the reference has no annotation and the bases at the start of the line. Chromium 152 matches the reference because it lays out rtc as an inline box (it does not implement ruby-text-container): the extra space of the justified line goes to the space before it
ruby-justification-002.htmlPass1 / 1
ruby-lang-specific-style-001.htmlPass1 / 1
ruby-layout-internal-boxes.htmlPass1 / 1
ruby-line-break-suppression-001.htmlPass1 / 1
ruby-line-break-suppression-002.htmlPass1 / 1
ruby-line-break-suppression-003.htmlPass1 / 1
ruby-line-break-suppression-004.htmlPass1 / 1
ruby-line-break-suppression-005.htmlPass1 / 1
ruby-line-breaking-001.htmlPass1 / 1
ruby-line-breaking-002.htmlPass1 / 1
ruby-line-breaking-003.htmlPass1 / 1
ruby-no-transform.htmlPass1 / 1
ruby-overhang-dynamic.htmlPass1 / 1
ruby-overhang-none.htmlPass1 / 1
ruby-overhang-spaces-001.htmlPass1 / 1
ruby-overhang-spaces-002.htmlPass1 / 1
ruby-overhang-spaces-003.htmlPass1 / 1
ruby-overhang-spaces-004.htmlPass1 / 1
ruby-overhang-spaces-005.htmlPass1 / 1
ruby-overhang-spaces-006.htmlPass1 / 1
ruby-overhang-spaces-007.htmlPass1 / 1
ruby-overhang-spaces-008.htmlPass1 / 1
ruby-overhang-spaces-009.htmlPass1 / 1
ruby-overhang-spaces-010.htmlPass1 / 1
ruby-overhang-spaces-011.htmlPass1 / 1
ruby-overhang-spaces-012.htmlPass1 / 1
ruby-overhang-spaces-013.htmlFail0 / 1TEST RUNNERthe test is made for a default font whose Latin a is half an ideograph wide (the Japanese fonts that the browsers use for lang=ja): with tab stops of 1ic, the tabs before and after the ruby are then 0.5ic wide and the annotation overhangs them on both sides; the a of the default font of the runner is 0.44ic wide, so the tab after the column does not end on the tab stop that the reference assumes (and the overhang used by the line breaking, 11.1px, differs from the one of the positioned line, 20px: the box is 8.9px wider than its content); passes in Chrome only
ruby-overhang-spaces-014.htmlPass1 / 1
ruby-overhang-spaces-015.htmlPass1 / 1
ruby-overhang-spaces-016.htmlPass1 / 1
ruby-overhang-spaces-017.htmlPass1 / 1
ruby-overhang-spaces-018.htmlPass1 / 1
ruby-overhang-spaces-019.htmlFail0 / 1TEST RUNNERthe test is made for a default font whose U+00B7 MIDDLE DOT is fullwidth (the Japanese fonts that the browsers use for lang=ja), with a blank quarter on each side that the annotation overhangs (5px); the middle dot of the default font of the runner is proportional (6.7px), and the annotation overhangs a quarter of it (1.7px): the test is 6.7px wider than the reference; passes in Chrome only
ruby-overhang-spaces-020.htmlPass1 / 1
ruby-overhang-spaces-021.htmlPass1 / 1
ruby-overhang-spaces-022.htmlPass1 / 1
ruby-overhang-spaces-align-001.htmlPass1 / 1
ruby-overhang-spaces-align-002.htmlPass1 / 1
ruby-overhang-spaces-align-003.htmlPass1 / 1
ruby-overhang-spaces-align-004.htmlPass1 / 1
ruby-overhang-spaces-align-005.htmlPass1 / 1
ruby-overhang-spaces-non-bmp-001.htmlPass1 / 1
ruby-overhang-spaces-non-bmp-002.htmlPass1 / 1
ruby-overhang-spaces-text-spacing-trim-001.htmlPass1 / 1
ruby-overhang-spaces-text-spacing-trim-002.htmlPass1 / 1
ruby-overhang-spaces-vertical-001.htmlPass1 / 1
ruby-overhang-spaces-vertical-002.htmlPass1 / 1
ruby-overhang-spaces-vertical-003.htmlPass1 / 1
ruby-overhang-spaces-vertical-004.htmlFail0 / 1TEST RUNNERthe Japanese fallback font of the runner (M+ 1p) has no vertical metrics (vhea, vmtx): its upright glyphs advance by the ascent and the descent of the font (1.395em) in vertical text, while the brackets that are set sideways advance by 1em; the reference assumes that the blank half of a bracket is half of the advance of an ideograph (the brackets set sideways are overhung by 10px, the reference expects 13.95px)
ruby-overhang-spaces-vertical-005.htmlPass1 / 1
ruby-overhang-spaces-vertical-006.htmlFail0 / 1TEST RUNNERthe Japanese fallback font of the runner (M+ 1p) has no vertical metrics (vhea, vmtx): its upright glyphs advance by the ascent and the descent of the font (1.395em) in vertical text, while the brackets that are set sideways advance by 1em; the reference assumes that the blank half of a bracket is half of the advance of an ideograph (the brackets set sideways are overhung by 10px, the reference expects 13.95px); the font has no vhal feature either
ruby-reflow-001-opaqueruby.htmlPass1 / 1
ruby-reflow-001-transparentruby.htmlPass1 / 1
ruby-span-001.htmlPass1 / 1
ruby-tab-in-base-001.htmlPass1 / 1
ruby-tab-in-base-002.htmlPass1 / 1
ruby-tab-in-base-003.htmlPass1 / 1
ruby-text-collapse.htmlPass1 / 1
ruby-text-combine-upright-001a.htmlPass1 / 1
ruby-text-combine-upright-001b.htmlPass1 / 1
ruby-text-combine-upright-002a.htmlPass1 / 1
ruby-text-combine-upright-002b.htmlPass1 / 1
ruby-text-dynamic-style.htmlPass1 / 1
ruby-whitespace-001.htmlPass1 / 1
ruby-whitespace-002.htmlPass1 / 1
ruby-with-floats-001.htmlPass1 / 1
ruby-with-floats-002.htmlPass1 / 1
ruby-with-floats-003.htmlPass1 / 1
whitespace-ruby-beside-float.htmlPass1 / 1