Don not apply spacing between the joined typographic letter units of cursive scripts when letter-spacing is not normal
Categories
(Core :: Layout: Text and Fonts, defect, P3)
Tracking
()
People
(Reporter: chenpighead, Unassigned)
References
()
Details
Attachments
(1 file)
401 bytes,
text/html
|
Details |
STR: Put some texts which include the sequence of joined typographic letter units of cursive scripts such as Arabic, ex. مممممع in a web page. Apply letter-spacing property. Expect: The sequence مممممع should has no gaps in it Actual: The sequence مممممع has gaps in it I've uploaded a test file (see attached) which refers to CSSWG's text-justify test [1]. According to the CSS Text 3 letter-spacing specification [2], ``` if the UA cannot expand text from a cursive script without breaking its cursive connections, it must not apply spacing between any pair of that script’s typographic letter units at all. ``` A similar description can be found in text-justify [3] as well, ``` Justification must not introduce gaps between the joined typographic letter units of cursive scripts such as Arabic ``` It seems both of them specify that we should not introduce any gaps in these cursive scripts at all. [1] https://www.w3.org/International/tests/repo/run?base=css-text-3&batch=text-align&test=text-justify/text-justify-004.html [2] https://drafts.csswg.org/css-text-3/#cursive-tracking [3] https://drafts.csswg.org/css-text-3/#justify-cursive
Updated•7 years ago
|
Chrome/Chromium equivalent issue https://bugs.chromium.org/p/chromium/issues/detail?id=942012
Comment 3•5 years ago
|
||
Is there a definitive list of Unicode scripts that should be considered "cursive" for this purpose?
I guess what Flutter/Android/Minikin https://github.com/flutter/engine/blob/f38f03fc883c8006f0896f61ff91acd9171e4453/third_party/txt/src/minikin/Layout.cpp#L400 and https://github.com/abarth/minikin/commit/e8721b2d293ba1a0e5d92a066aa9aa15807357cc uses matches with DirectWrite https://gist.github.com/ebraminio/727689919dbc485e023fe054bdd7c19b and https://github.com/harfbuzz/harfbuzz/pull/1505/files (HB_SCRIPT_FLAG_IS_CURSIVE_WRITING) says, enough to consider it widespread on non-browser text rendering stacks.
The ones start with https://gist.github.com/ebraminio/727689919dbc485e023fe054bdd7c19b/ddc114e409b16ff42622273cdf822bef1287dc18 0b11 0b01 the left most bit is IS_CURSIVE_WRITING and the next is IS_CONNECTED_WRITING and apparently both used for isScriptOkForLetterspacing blacklist.
Was going to create a new file as forgot that have done already so worth a ping I guess.
Comment 8•4 years ago
|
||
The spec defines cursive scripts: https://drafts.csswg.org/css-text-3/#cursive-script
Updated•2 years ago
|
Description
•