Summarized test results:
CSS Ruby

To run the test, or to see detailed, per character, results, click on the link in the left-most column. To see detailed results click on a row and look just above the table.

Key: pass fail partially successful

Updated

These tests check whether user agents correctly apply the properties defined in the CSS-ruby spec. These are simple, user-oriented tests, designed to check basic functionality, rather than test all edge cases and implementation details.

Note that some tests pass because the browser displays the annotations in the same way by default, rather than necessarily because of the application of a CSS property. No special action is taken in these cases, since the result is the same for the user, however there are some exploratory tests below that enable you to see what the default rendering looks like.

Defaults

The following information describes the default behaviour of the browser, in case you wish to compare it against what passes or fails in the other tests.

ruby-position

over/under

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
over
ruby-position-over-001.html
ruby-position:over will make ruby appear over the base in horizontal text. passpasspasspass
under
ruby-position-under-001.html
ruby-position:under will make ruby appear under the base in horizontal text. passpasspassfail
Vertical text
Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
over (v)
ruby-position-over-101.html
ruby-position:over will make ruby appear to the right of the base in vertical text, with kana characters upright. passpasspasspass
over, pinyin (v)
ruby-position-over-101-zh-hans.html
ruby-position:over for vertical text with pinyin annotations will make ruby appear to the right of the base with pinyin characters rotated and running down the page. passpasspasspartial *
under (v)
ruby-position-under-101.html
ruby-position:under will make ruby appear to the left of the base in vertical text, with kana characters upright. passpasspassfail
under, pinyin (v)
ruby-position-under-101-zh-hans.html
ruby-position:under for vertical text with pinyin annotations will make ruby appear to the left of the base, with pinyin characters rotated and running down the page. passpasspassfail

inter-character

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
inter-character
ruby-position-intercharacter-001.html
ruby-position:inter-character will make zhuyin annotations appear in vertical columns alongside the base in horizontal text. failfailfailfail
inter-character, tones
ruby-position-intercharacter-002.html
ruby-position:inter-character will make zhuyin non-neutral tone marks appear in the correct relative positions alongside the zhuyin characters in horizontal text. skipped *skippedskippedskipped *
inter-character, neutral tones
ruby-position-intercharacter-003.html
ruby-position:inter-character will make zhuyin neutral tone marks appear above the zhuyin characters in horizontal text. skipped *skippedskippedskipped *
Vertical text
Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
inter-character (v)
ruby-position-intercharacter-101.html
ruby-position:inter-character will make zhuyin annotations appear in vertical columns alongside the base in vertical text. passpasspasspass
inter-character, tones (v)
ruby-position-intercharacter-102.html
ruby-position:inter-character will make zhuyin non-neutral tone marks appear in the correct relative positions alongside the zhuyin characters in vertical text. failfailfailfail
inter-character, neutral tones (v)
ruby-position-intercharacter-103.html
ruby-position:inter-character will make zhuyin neutral tone marks appear above the zhuyin characters in vertical text. partial *failfailpartial *

ruby-align

start

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
start, long base
ruby-align-start-001.html
ruby-align: start will make ruby content aligned with the start edge of its box. Short ruby text will be flush left and set solid. passfailfailfail
start, long base, pinyin
ruby-align-start-001-zh-hans.html
ruby-align: start will make Simplified Chinese ruby content aligned with the start edge of its box. Short ruby text will be flush left and set solid. fail *failfailfail
start, long annotation
ruby-align-start-002.html
ruby-align: start will make ruby content aligned with the start edge of its box. Short base text will be flush left and set solid. passfailfailfail
start, long annotation, pinyin
ruby-align-start-002-zh-hans.html
ruby-align: start will make Simplified Chinese ruby content aligned with the start edge of its box. Short base text will be flush left and set solid. passfailfailfail
Vertical text
Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
start, long base (v)
ruby-align-start-101.html
ruby-align: start will make ruby content aligned with the start edge of its box. Short ruby text will be flush with the top of the line and set solid. passfailfailfail
start, long base, pinyin (v)
ruby-align-start-101-zh-hans.html
ruby-align: start will make Simplified Chinese ruby content aligned with the start edge of its box. Short ruby text will be flush with the top of the line and set solid. fail *failfailfail
start, long annotation (v)
ruby-align-start-102.html
ruby-align: start will make ruby content aligned with the start edge of its box. Short base text will be flush with the top of the line and set solid. passfailfailfail
start, long annotation, pinyin (v)
ruby-align-start-102-zh-hans.html
ruby-align: start will make Simplified Chinese ruby content aligned with the start edge of its box. Short base text will be flush with the top of the line and set solid. passfailfailfail

center

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
center, long base
ruby-align-center-001.html
ruby-align:center will centre an annotation shorter than the base text, and set it solid. passfailfailfail
center, long base, pinyin
ruby-align-center-001-zh-hans.html
ruby-align:center will centre a Simplified Chinese annotation shorter than the base text, and set it solid. passpasspasspartial *
center, long annotation
ruby-align-center-002.html
ruby-align:center will centre base text shorter than the annotation, and set it solid. passfailfailfail
center, long annotation, pinyin
ruby-align-center-002-zh-hans.html
ruby-align:center will centre Simplified Chinese base text shorter than the annotation, and set it solid. passfailfailfail
Vertical text
Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
center, long base (v)
ruby-align-center-101.html
ruby-align:center will centre an annotation shorter than the base text, and set it solid. passfailfailfail
center, long base, pinyin (v)
ruby-align-center-101-zh-hans.html
ruby-align:center will centre a Simplified Chinese annotation shorter than the base text, and set it solid. passpasspasspartial
center, long annotation (v)
ruby-align-center-102.html
ruby-align:center will centre base text shorter than the annotation, and set it solid. passfailfailfail
center, long annotation, pinyin (v)
ruby-align-center-102-zh-hans.html
ruby-align:center will centre Simplified Chinese base text shorter than the annotation, and set it solid. passfailfailfail

space-between

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
space-between, long base
ruby-align-space-between-001.html
For a wide-cell annotation shorter than its base, ruby-align:space-between adds equal space between annotation characters, with no extra space either side. passfailfailfail
space-between, long annotation
ruby-align-space-between-002.html
For a wide-cell base shorter than its annotation, ruby-align:space-between adds equal space base between characters, with no extra space either side. passfailfailfail
space-between, long base, one word latin annotation
ruby-align-space-between-003.html
For a narrow-cell annotation containing no spaces over a wider base, ruby-align:space-between will centre the annotation. passpasspasspass
space-between, long base, multiword latin annotation
ruby-align-space-between-004.html
For a narrow-cell annotation with multiple words over a wider base, ruby-align: space-between will justify the words, with no extra space either side. passfailfailfail
ruby-align:space-between, long annotation, one word latin base
ruby-align-space-between-006.html
For a narrow-cell base containing no spaces that is shorter than its annotation, ruby-align:space-between will centre the base. passpasspasspass
ruby-align:space-between, long annotation, multiword latin base
ruby-align-space-between-007.html
For a narrow-cell base with multiple words that is shorter than its annotation, ruby-align:space-between will justify the words, with no extra space either side. passfailfailfail
Vertical text
Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
space-between, long base (v)
ruby-align-space-between-101.html
For a wide-cell annotation shorter than its base, ruby-align:space-between adds equal space between annotation characters, with no extra space either side. passfailfailfail
space-between, long annotation (v)
ruby-align-space-between-102.html
For a wide-cell base shorter than its annotation, ruby-align:space-between adds equal space base between characters, with no extra space either side. passfailfailfail
space-between, long base, one word latin annotation (v)
ruby-align-space-between-103.html
For a narrow-cell annotation containing no spaces over a wider base, ruby-align:space-between will centre the annotation. passpasspasspass
space-between, long base, multiword latin annotation (v)
ruby-align-space-between-104.html
For a narrow-cell annotation with multiple words over a wider base, ruby-align: space-between will justify the words, with no extra space either side. passfailfailfail
ruby-align:space-between, long annotation, one word latin base (v)
ruby-align-space-between-106.html
For a narrow-cell base containing no spaces that is shorter than its annotation, ruby-align:space-between will centre the base. passpasspasspass
ruby-align:space-between, long annotation, multiword latin base (v)
ruby-align-space-between-107.html
For a narrow-cell base with multiple words that is shorter than its annotation, ruby-align:space-between will justify the words, with no extra space either side. passfailfailfail

space-around

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
space-around, long base
ruby-align-space-around-001.html
For a wide-cell annotation shorter than its base, ruby-align:space-around adds equal space between annotation characters, with a half-character space either side. passpasspasspass
space-around, long annotation
ruby-align-space-around-002.html
For a wide-cell base shorter than its annotation, ruby-align:space-around adds equal space base between characters, with a half-character space either side. passpasspasspass
space-around, long base, one word latin annotation
ruby-align-space-around-003.html
For a narrow-cell annotation containing no spaces over a wider base, ruby-align:space-around will centre the annotation. passpasspasspass
space-around, long base, multiword latin annotation
ruby-align-space-around-004.html
For a narrow-cell annotation with multiple words over a wider base, ruby-align: space-around will justify the words, with a small amount of space either side. passpasspasspass
ruby-align:space-around, long annotation, one word latin base
ruby-align-space-around-006.html
For a narrow-cell base containing no spaces that is shorter than its annotation, ruby-align:space-around will centre the base. passpasspasspass
ruby-align:space-around, long annotation, multiword latin base
ruby-align-space-around-007.html
For a narrow-cell base with multiple words that is shorter than its annotation, ruby-align:space-around will justify the words, with a small amount of space either side. passpasspasspass
Vertical text
Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
space-around, long base (v)
ruby-align-space-around-101.html
For a wide-cell annotation shorter than its base, ruby-align:space-around adds equal space between annotation characters, with a half-character space either side. passpasspasspass
space-around, long annotation (v)
ruby-align-space-around-102.html
For a wide-cell base shorter than its annotation, ruby-align:space-around adds equal space base between characters, with a half-character space either side. passpasspasspass
space-around, long base, one word latin annotation (v)
ruby-align-space-around-103.html
For a narrow-cell annotation containing no spaces over a wider base, ruby-align:space-around will centre the annotation. passpasspasspass
space-around, long base, multiword latin annotation (v)
ruby-align-space-around-104.html
For a narrow-cell annotation with multiple words over a wider base, ruby-align: space-around will justify the words, with a small amount of space either side. passpasspasspass
ruby-align:space-around, long annotation, one word latin base (v)
ruby-align-space-around-106.html
For a narrow-cell base containing no spaces that is shorter than its annotation, ruby-align:space-around will centre the base. passpasspasspass
ruby-align:space-around, long annotation, multiword latin base (v)
ruby-align-space-around-107.html
For a narrow-cell base with multiple words that is shorter than its annotation, ruby-align:space-around will justify the words, with a small amount of space either side. passpasspasspass

ruby-merge

Dependencies

  1. ruby-merge-collapse-002 and ruby-merge-auto-002 are only significant if the test immediately previous passes. This is because they are testing whether the association of annotation to base text is preserved across line breaks even though the placement would otherwise obscure the relationships.
Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
separate
ruby-merge-separate-001.html
ruby-merge:separate will render each annotation in the same column as its base text. passpasspasspass
collapse
ruby-merge-collapse-001.html
ruby-merge:collapse will render all annotations evenly across the base text. failfailfailfail
collapse, line break
ruby-merge-collapse-002.html
When a line break occurs between base characters while applying ruby-merge:collapse, ruby annotations are kept together with their respective ruby bases. skippedskippedskippedskipped
auto
ruby-merge-auto-001.html
[Exploratory test] ruby-merge:auto produces a distribution of annotation text across base text as described in JLREQ for jukugo-ruby. failfailfailfail
auto, line break
ruby-merge-auto-002.html
When a line break occurs between base characters while applying ruby-merge:auto, ruby annotations are kept together with their respective ruby bases. passpasspasspass
Vertical text
Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
separate (v)
ruby-merge-separate-101.html
ruby-merge:separate will render each annotation in the same column as its base text. passpasspasspass
collapse (v)
ruby-merge-collapse-101.html
ruby-merge:collapse will render all annotations evenly across the base text. failfailfailfail
collapse, line break (v)
ruby-merge-collapse-102.html
When a line break occurs between base characters while applying ruby-merge:collapse, ruby annotations are kept together with their respective ruby bases. skipped *skippedskippedskipped
auto (v)
ruby-merge-auto-101.html
[Exploratory test] ruby-merge:auto produces a distribution of annotation text across base text as described in JLREQ for jukugo-ruby. failfailfailfail
auto, line break (v)
ruby-merge-auto-102.html
When a line break occurs between base characters while applying ruby-merge:auto, ruby annotations are kept together with their respective ruby bases. passpasspasspass

Ruby autohide

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
ruby autohide
ruby-autohide-001.html
If a ruby annotation has the exact same text content as its base, it is hidden. passfailfailfail
ruby autohide (v)
ruby-autohide-101.html
If a ruby annotation has the exact same text content as its base, it is hidden. passfailfailfail

Results for Proprietary syntax

These test results based on CSS that has the following adaptations:

  1. -webkit-ruby-position is used with values set to either before or after
  2. -webkit-writing-modes and writing-modes:tb-rl are used for tests with vertical text.
  3. distributed-letter used in addition to space-between, and distributed-space used in addition to space-around for ruby-align.

ruby-position

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
[P] -webkit-ruby-position before
ruby-position-over-001.html
The addition of -webkit-ruby-position:before will make ruby appear over the base in horizontal text. passpasspasspass
[P] -webkit-ruby-position after
ruby-position-under-001.html
The addition of -webkit-ruby-position:after will make ruby appear under the base in horizontal text. passpasspasspass

Vertical text

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
[P] -webkit-ruby-position before (v)
ruby-position-over-101.html
The addition of -webkit-ruby-position:before will make ruby appear to the right of the base in vertical text. passpasspasspass
[P] -webkit-ruby-position after (v)
ruby-position-under-101.html
The addition of -webkit-ruby-position:after will make ruby appear to the left of the base in vertical text. passpasspasspass

ruby-align

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
[P] ruby-align:left, long base
ruby-align-start-001.html
The addition of ruby-align:left will make ruby content aligned with the start edge of its box. Short ruby text will be flush left and set solid. passfailfailfail
[P] ruby-align:left, long annotation
ruby-align-start-002.html
The addition of ruby-align:left will make ruby content aligned with the start edge of its box. Short base text will be flush left and set solid. passfailfailfail
distribute-letter, long base
ruby-align-space-between-001.html
For a wide-cell annotation shorter than its base, ruby-align:distribute-letter adds equal space between annotation characters, with no extra space either side. passfailfailfail
distribute-letter, long annotation
ruby-align-space-between-002.html
For a wide-cell base shorter than its annotation, ruby-align:distribute-letter adds equal space base between characters, with no extra space either side. passfailfailfail
distribute-letter, long base, one word latin annotation
ruby-align-space-between-003.html
For a narrow-cell annotation containing no spaces over a wider base, ruby-align:distribute-letter will centre the annotation. passpasspasspass
distribute-letter, long base, multiword latin annotation
ruby-align-space-between-004.html
For a narrow-cell annotation with multiple words over a wider base, ruby-align: distribute-letter will justify the words, with no extra space either side. passfailfailfail
[P] ruby-align:distribute-letter, long annotation, one word latin base
ruby-align-space-between-006.html
For a narrow-cell base containing no spaces that is shorter than its annotation, ruby-align:distribute-letter will centre the base. passpasspasspass
[P] ruby-align:distribute-letter, long annotation, multiword latin base
ruby-align-space-between-007.html
For a narrow-cell base with multiple words that is shorter than its annotation, ruby-align:distribute-letter will justify the words, with no extra space either side. passfailfailfail
[P] ruby-align:distribute-space, long base
ruby-align-space-around-001.html
For a wide-cell annotation shorter than its base, ruby-align:distribute-space adds equal space between annotation characters, with a half-character space either side. passpasspasspass
[P] ruby-align:distribute-space, long annotation
ruby-align-space-around-002.html
For a wide-cell base shorter than its annotation, ruby-align:distribute-space adds equal space base between characters, with a half-character space either side. passpasspasspass
[P] ruby-align:distribute-space, long base, one word latin annotation
ruby-align-space-around-003.html
For a narrow-cell annotation containing no spaces over a wider base, ruby-align:distribute-space will centre the annotation. passpasspasspass
[P] ruby-align:distribute-space, long base, multiword latin annotation
ruby-align-space-around-004.html
For a narrow-cell annotation with multiple words over a wider base, ruby-align:distribute-space will justify the words, with a small amount of space either side. passpasspasspass
[P] ruby-align:distribute-space, long annotation, one word latin base
ruby-align-space-around-006.html
For a narrow-cell base containing no spaces that is shorter than its annotation, ruby-align:distribute-space will centre the base. passpasspasspass
[P] ruby-align:distribute-space, long annotation, multiword latin base
ruby-align-space-around-007.html
For a narrow-cell base with multiple words that is shorter than its annotation, ruby-align:distribute-space will justify the words, with a small amount of space either side. passpasspasspass

Vertical text

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
[P] ruby-align:left, long base (v)
ruby-align-start-101.html
The addition of ruby-align:left will make ruby content aligned with the start edge of its box. Short ruby text will be flush left and set solid. passfailfailfail
[P] ruby-align:left, long annotation (v)
ruby-align-start-102.html
The addition of ruby-align:left will make ruby content aligned with the start edge of its box. Short base text will be flush left and set solid. passfailfailfail
distribute-letter, long base (v)
ruby-align-space-between-101.html
For a wide-cell annotation shorter than its base, ruby-align:distribute-letter adds equal space between annotation characters, with no extra space either side. passfailfailfail
distribute-letter, long annotation (v)
ruby-align-space-between-102.html
For a wide-cell base shorter than its annotation, ruby-align:distribute-letter adds equal space base between characters, with no extra space either side. passfailfailfail
distribute-letter, long base, one word latin annotation (v)
ruby-align-space-between-103.html
For a narrow-cell annotation containing no spaces over a wider base, ruby-align:distribute-letter will centre the annotation. passpasspasspass
distribute-letter, long base, multiword latin annotation (v)
ruby-align-space-between-104.html
For a narrow-cell annotation with multiple words over a wider base, ruby-align: distribute-letter will justify the words, with no extra space either side. passfailfailfail
[P] ruby-align:distribute-letter, long annotation, one word latin base (v)
ruby-align-space-between-106.html
For a narrow-cell base containing no spaces that is shorter than its annotation, ruby-align:distribute-letter will centre the base. passpasspasspass
[P] ruby-align:distribute-letter, long annotation, multiword latin base (v)
ruby-align-space-between-107.html
For a narrow-cell base with multiple words that is shorter than its annotation, ruby-align:distribute-letter will justify the words, with no extra space either side. passfailfailfail
[P] ruby-align:distribute-space, long base (v)
ruby-align-space-around-101.html
For a wide-cell annotation shorter than its base, ruby-align:distribute-space adds equal space between annotation characters, with a half-character space either side. passpasspasspass
[P] ruby-align:distribute-space, long annotation (v)
ruby-align-space-around-102.html
For a wide-cell base shorter than its annotation, ruby-align:distribute-space adds equal space base between characters, with a half-character space either side. passpasspasspass
[P] ruby-align:distribute-space, long base, one word latin annotation (v)
ruby-align-space-around-103.html
For a narrow-cell annotation containing no spaces over a wider base, ruby-align:distribute-space will centre the annotation. passpasspasspass
[P] ruby-align:distribute-space, long base, multiword latin annotation (v)
ruby-align-space-around-104.html
For a narrow-cell annotation with multiple words over a wider base, ruby-align:distribute-space will justify the words, with a small amount of space either side. passpasspasspass
[P] ruby-align:distribute-space, long annotation, one word latin base (v)
ruby-align-space-around-106.html
For a narrow-cell base containing no spaces that is shorter than its annotation, ruby-align:distribute-space will centre the base. passpasspasspass
[P] ruby-align:distribute-space, long annotation, multiword latin base (v)
ruby-align-space-around-107.html
For a narrow-cell base with multiple words that is shorter than its annotation, ruby-align:distribute-space will justify the words, with a small amount of space either side. passpasspasspass

ruby-merge

Dependencies

  1. ruby-merge-collapse-002 and ruby-merge-auto-002 are only significant if the test immediately previous passes. This is because they are testing whether the association of annotation to base text is preserved across line breaks even though the placement would otherwise obscure the relationships.
Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
separate
ruby-merge-separate-001.html
ruby-merge:separate will render each annotation in the same column as its base text. passpasspasspass
collapse
ruby-merge-collapse-001.html
ruby-merge:collapse will render all annotations evenly across the base text. failfailfailfail
collapse, line break
ruby-merge-collapse-002.html
When a line break occurs between base characters while applying ruby-merge:collapse, ruby annotations are kept together with their respective ruby bases. passpasspasspass
auto
ruby-merge-auto-001.html
[Exploratory test] ruby-merge:auto produces a distribution of annotation text across base text as described in JLREQ. failfailfailfail
auto, line break
ruby-merge-auto-002.html
When a line break occurs between base characters while applying ruby-merge:auto, ruby annotations are kept together with their respective ruby bases. passpasspasspass

Vertical text

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
separate (v)
ruby-merge-separate-101.html
ruby-merge:separate will render each annotation in the same column as its base text. passpasspassfail
collapse (v)
ruby-merge-collapse-101.html
ruby-merge:collapse will render all annotations evenly across the base text. failfailfailpass
collapse, line break (v)
ruby-merge-collapse-102.html
When a line break occurs between base characters while applying ruby-merge:collapse, ruby annotations are kept together with their respective ruby bases. passpasspasspass
auto (v)
ruby-merge-auto-101.html
[Exploratory test] ruby-merge:auto produces a distribution of annotation text across base text as described in JLREQ. failfailfailfail
auto, line break (v)
ruby-merge-auto-102.html
When a line break occurs between base characters while applying ruby-merge:auto, ruby annotations are kept together with their respective ruby bases. passpasspasspass

Ruby autohide

Links to run testsAssertionsGecko FirefoxBlink ChromeBlink EdgeWebkit Safari
ruby autohide
ruby-autohide-001.html
If a ruby annotation has the exact same text content as its base, it is hidden. passfailfailfail
ruby autohide (v)
ruby-autohide-101.html
If a ruby annotation has the exact same text content as its base, it is hidden. passfailfailfail