w3c / alreq

Documenting gaps and requirements for support of Arabic Script languages on the Web and in eBooks.
Other
62 stars 31 forks source link

Text stroke cuts joining glyphs apart #220

Open r12a opened 4 years ago

r12a commented 4 years ago

This issue is likely to apply to all cursive script text, but also to other scripts that have joins between letters.

When text stroke effects are applied to cursive text, they should not interrupt the cursive flow.

The GAP

Unfortunately, that's not the case for current implementations. Overlaps where the glyphs join produce double breaks in the cursive flow.

This example shows the typical result for Arabic.

text-stroke

The set of modern languages using cursive scripts includes those that use the following scripts: Arabic, Syriac, Mongolian, Mandaic, N'Ko, Adlam, Hanifi Rohingya. It also affects text in archaic scripts, including Phags Pa, Manichaean, Psalter Pahlavi, Sogdian, Old Uyghur, Chorasmian.

However, this also affects scripts such as Devanagari (Hindi, Marathi, etc), Gurmukhi (Punjabi), Bengali, Gondi, Modi, Newa, etc. This example is Hindi:

Screenshot 2022-02-08 at 17 12 09

In Gecko, Blink, and Webkit the stroke around the text interrupts the cursive flow.

The property text-stroke is not yet in CSS, but has been implemented in major browsers under the name -webkit-text-stroke.

-webkit-text-stroke is currently specified in WhatWG's Compatibility spec.

Priority:

Marking as advanced because this is a decorative feature.

Tests

Interactive test, Text stroke applied to Arabic text doesn't cut joining glyphs apart
i18n test suite, Text stroke

Action taken

Issue, Standardize text-stroke Open.

Outcomes

tbd

r12a commented 4 years ago

The first comment in this issue contains text that will automatically appear in one or more gap-analysis documents as a subsection with the same title as this issue. Any edits made to that comment will be immediately available in the document. Proposals for changes or discussion of the content can be made in comments below this point.

Relevant gap analysis documents include: _AdlamArabic & PersianKashmiriN'KoUighur_

scottkellum commented 2 years ago

Note the issue is with every outline overlap. This includes overlapping shapes within characters as well as characters themselves overlapping. This issue is particularly visible in variable fonts where overlaps aren’t removed to preserve interpolation.

See a Twitter thread on the issue

svgeesus commented 1 year ago

The same issue affects "handwriting" (cursive, joined) fonts for scripts such as Latin.

image

r12a commented 5 months ago

Just a clarification to say that it seems to me that this is a more intractable problem for content authors that write in scripts that are always joined up (like Arabic), since they can't use text stroke at all without it looking wierd. At least the Latin script content author can make a choice as to whether they combine joined-up with stroke colour, whereas Arabic content authors don't have an alternative strategy.