Re: [csswg-drafts] [css-text] Clarification on the trimming and positioning of whitespace (#9307)

> is clearly different from what UAs currently do;

How so? It seems to me that it is excatly what UAs are doing. What difference are you seeing?

> is contradictory to [UAX #14](https://www.unicode.org/reports/tr14/#SP);

* How so? UAX 14 calls for "any number of space characters are kept together invisibly on the previous line and the first non-space character starts the next line." UAX14 in general does not speak of dropping characters, but wow is the call to keeping them *invisibly* observably different from what we are saying in css-text?
* css-text uses UAX 14 as a starting point, but deliberately diverges in a few occasions when needed. The [spec calls for](https://drafts.csswg.org/css-text-3/#text-encoding) "adherence to normative requirements of the Unicode Core Standard, **except where explicitly overridden by CSS**".

> renders the first case in Step 4 in 4.1.2. Phase II: Trimming and Positioning unreachable:
>> If `white-space` is set to `normal`, `nowrap`, or `pre-line`, the UA must hang this sequence (unconditionally).

It is not unreachable: if you look in context, "this sequence" refers to “any sequence of [white space](https://drafts.csswg.org/css-text/#white-space), [other space separators](https://drafts.csswg.org/css-text/#other-space-separators), and/or [preserved](https://drafts.csswg.org/css-text/#preserved-white-space) [tabs](https://drafts.csswg.org/css-text/#tabs)”.

"Other spaces separators" are defined to be “all characters in the Unicode [general category](https://drafts.csswg.org/css-text/#unicode-general-category) Zs except space (U+0020) and no-break space (U+00A0)”. So, for instance U+3000 IDEOGRAPHIC SPACE.

So if you have a line under `white-space: normal` that ends with U+0020 (a collapsible space) followed by U+3000 (an "other spaces separator"), then:
* the U+0020 is not removed, as we do not have "A sequence of collapsible spaces at the end of a line": there's something after it (an U+3000)
* there remains a sequence of "white space, other space separators[…]" (the U+0020 U+3000 sequence) at the end of the line, which must then hang.

-- 
GitHub Notification of comment by frivoal
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9307#issuecomment-1714077847 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Monday, 11 September 2023 15:06:28 UTC