alreq icon indicating copy to clipboard operation
alreq copied to clipboard

Text stroke cuts joining glyphs apart

Open r12a opened this issue 5 years ago • 4 comments

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 avatar Feb 02 '20 16:02 r12a

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

r12a avatar Feb 02 '20 16:02 r12a

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

scottkellum avatar Jan 19 '22 16:01 scottkellum

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

image

svgeesus avatar Sep 14 '23 08:09 svgeesus

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.

r12a avatar Jun 20 '24 16:06 r12a