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 |
---|
These tests check whether user agents correctly apply word-break
to various writing systems per the CSS-text-3 spec. Since the CSS spec relies on the browser to implement fine details on a language-by-language basis, the tests listed here check only unarguable expectations of behaviour, in very simplistic arrangements. They focus on the interaction between letters and spaces, and do not tackle the impact of punctuation marks.
For word-break:normal
the CSS spec mostly just says that the 'customary rules' should be applied, without further detail. More detailed rules may be added to the spec as the information becomes available (initiatives such as the layout requirements and digital publishing work may provide such details, amongst others). For the time being, these tests check browser behavior for just the obvious characteristics pertaining to several major writing systems. As more information becomes available, additional tests may be added.
Some specific behaviors for CJK script, in particular, are covered by line break tests elsewhere. See the word-break: break-all section for tests related to typographic units that are only exposed when partial words are wrapped, such as indic conjuncts.
These scripts separate words with spaces and in simple scenarios wrap whole words to the next line when part of a word exceeds the length of a line.
These scripts don't separate words in text and in simple scenarios wrap characters one-by-one to the next line when part of a word exceeds the length of a line. Tests elsewhere examine less basic behaviour for Chinese and Japanese.
This test is exploratory. Simple Korean text can wrap characters or words when part of a word exceeds the length of a line, according to preference. The more common approach is to wrap between any two consecutive Hangul/Hanja, so this test checks whether this is what a browser does.
These scripts don't separate words in text but nevertheless in simple scenarios wrap whole words to the next line when part of a word exceeds the length of a line.
These scripts don't separate words in text but typically wrap an orthographic syllable to the next line when part of a word exceeds the length of a line.
When it exceeds the line length, word-break: break-all
splits text between typographic letter units, regardless of word boundaries.
These tests deal with text where a typographic letter unit is equivalent to a single code point. Note that the expected behaviour for Korean is unambiguous here for text encoded using syllabic code points.
Where the line length is exceeded by a code point that is part of a grapheme cluster, break-all
should wrap the whole grapheme cluster to the next line, since typographic letter units include grapheme clusters.
This test is exploratory. In some cases, a user-perceived character encompasses more than one grapheme cluster. Conjunct clusters in northern Indic scripts are a prime example.
This test is exploratory because indic conjuncts containing more than one consonant are not covered by the extended grapheme cluster definition, and therefore constitute more than one typographic unit, per the definition in the CSS spec. Nevertheless, people using relevant indic scripts expect the user agent to keep the orthographic syllable as a single unit. The test checks whether such a sequence is wrapped to the next line as a unit.
The CSS spec says that when shaping scripts such as Arabic are allowed to break within words due to break-all
, the characters must still be shaped as if the word were not broken.
When it exceeds the line length, word-break: keep-all
splits text at 'word' boundaries, regardless of normal behaviour.
The basic use of keep-all
is to prevent break opportunities within 'words' – which, when dealing with sequences of ordinary letters surrounded by spaces, means that breaks only occur after the spaces. This is particularly relevant for CJK scripts.
keep-all
prevents break opportunities within sequences of letters, except where opportunities exist due to dictionary-based breaking (such as in Khmer and Thai). These tests check whether an unbroken sequence of text in such languages are broken at word boundaries by the browser when keep-all
is set.