With word-break: break-all, Chromium incorrectly allowed line breaks
before BA (Break After) class characters such as U+1361 Ethiopic Wordspace. This
violates LB21 from UAX#14, which states that line breaks must not occur before BA
class characters. The Ethiopic wordspace would appear alone at the start of a line.
The ShouldBreakAfterBreakAll function now enforces LB21 by suppressing
break opportunities before BA class characters (unless line-break: loose
is set). U+007C (Vertical Line |) is excluded from this restriction
since it is not relevant for the Ethiopic punctuation use case.
With word-break: break-all in a narrow container, the Ethiopic
wordspace must stay attached to the preceding letter (no break before it).
With default word-break: normal, Ethiopic text wraps at wordspace
boundaries. This path does not call ShouldBreakAfterBreakAll and is
unaffected by the fix -- shown here as a baseline reference.
word-break: normal)
does not use ShouldBreakAfterBreakAll and is unaffected by the fix.
U+007C | is a BA class character but is excluded from the LB21
restriction in break-all mode. Breaking before | remains
allowed.
When line-break: loose is set, the LB21 restriction is relaxed,
allowing breaks before BA characters (including hyphens and Ethiopic wordspace).
csswg-drafts#4765 -- Original W3C issue about Ethiopic word-break behavior
CSS Text 3 -- word-break property