Re: [csswg-drafts] [css-text] Clarify what ligatures are optional

I am also interested in which ligatures are "optional". I recently added a test for font feature precedence for the 'liga' feature at https://github.com/web-platform-tests/wpt/pull/13605 . I started writing one for 'dlig' as well (see https://chromium-review.googlesource.com/c/chromium/src/+/1294874 ) but the result is somewhat surprising when based on the current wording.

As per css-fonts-3 at https://www.w3.org/TR/css-fonts-3/#feature-precedence, "setting a non-default value for the ‘letter-spacing’ property disables common ligatures." Common ligatures are specified in css-fonts-3 as 'liga' and 'clig'.

As per css-text-3 at https://www.w3.org/TR/css-text-3/#letter-spacing-property, "when the effective spacing between two characters is not zero (due to either justification or a non-zero value of letter-spacing), user agents should not apply optional ligatures." However, optional ligatures are not defined.

Since css-font-3 is more specific than css-text-3, browsers tend towards the behavior that letter-spacing only effects 'liga' and 'clig'. This leads to the somewhat surprising behavior that common ligatures may be disabled by letter-spacing, but discretionary and historical (and possibly others) are not. It would be greatly beneficial to implementors for

- css-text-3 to specify more precisely which ligatures are "optional ligatures".
- css-fonts-3 to update the precedence rule 4 to explicitly state that only "common ligatures" ('liga' and 'clig') are affected by letter spacing **or** be updated to include more ligatures (perhaps by reference to the newly explicit list of "optional ligatures").
- for css-text-3 and css-fonts-3 to unambiguously agree and be appropriately specific around letter-spacing and ligatures.

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

Received on Tuesday, 23 October 2018 18:28:05 UTC