w3c/alreq

Text stroke cuts joining glyphs apart

r12a opened this issue · 4 comments

r12a commented

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

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

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

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

image