demo · v138
Script coverage grid
Slide letter-spacing from 0 to 8px. Cursive scripts (Arabic, Urdu, Hebrew, Devanagari, Bengali, Thai) preserve their connections — the v138 fix. Non-cursive scripts (Latin, Cyrillic, Greek, CJK) get the requested spacing. Side-by-side proves the renderer now respects script boundaries.
Unflagged in Chrome 138. Browser-internal heuristic: when text is in a cursive script (joining behaviour required),
letter-spacing is ignored. Latin / CJK / Cyrillic still honour it. No author opt-in — the fix is universal.
2.0px
Arabic cursive
السلام عليكم ورحمة الله وبركاته
Latin non-cursive
Hello, this is plain Latin text.
Urdu cursive
آپ سے مل کر خوشی ہوئی
Cyrillic non-cursive
Привет, как дела?
Hebrew cursive
שלום עליכם
Greek non-cursive
Γεια σας, χαίρομαι που σας γνωρίζω
Devanagari cursive
नमस्ते, आप कैसे हैं?
CJK non-cursive
こんにちは、調子はどうですか
Thai cursive
สวัสดีครับ ยินดีที่ได้รู้จัก
Mixed Latin+digits non-cursive
Order #138 ships v138.
What's happening
- Cursive scripts require connecting glyphs. Inserting space between glyphs breaks the joins — illegible, sometimes offensive.
- Pre-v138 Chrome dutifully applied
letter-spacingto every script. Authors setletter-spacing: 0.05emfor body copy and broke every Arabic/Hebrew/Devanagari paragraph site-wide. - v138 detects the cursive scripts at render time and skips spacing. Latin, CJK, Greek, Cyrillic — unchanged behaviour.
- You don't need a lang= attribute. The detection is per-glyph-cluster.