Summarized test results:
CSS3 Text, word-break

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.

word-break: normal

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.

Scripts that wrap space-separated words

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.

Scripts that wrap characters

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.

Korean

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.

Scripts that wrap words without spaces

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.

Scripts that wrap by syllable

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.

word-break: break-all

When it exceeds the line length, word-break: break-all splits text between typographic letter units, regardless of word boundaries.

Simple cases

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.

Grapheme clusters

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.

Syllabic 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.

Cursive joining

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.

word-break: keep-all

When it exceeds the line length, word-break: keep-all splits text at 'word' boundaries, regardless of normal behaviour.

Basic tests

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.

Dictionary-based breaking

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.