World Scripts
The Indic Script Series covers nine abugidas that share one ancestor and one Unicode layout. This track covers four scripts that share neither: Latin and Cyrillic, alphabets that spell out both consonants and vowels and read left to right, and Arabic and Hebrew, abjads built primarily from consonants that read right to left. Together they cover the large majority of the world's day-to-day typesetting, and each one asks a font for something genuinely different.
Four scripts, two structures, one shaping pipeline
Every script here runs on the same OpenType GSUB/GPOS machinery this site has covered before. What changes is which features actually do the work.
Latin and Cyrillic are alphabets in the strict sense: every consonant sound and every vowel sound gets its own full letter, sitting in a row, read in the order it's written. That's the writing model most readers of this sentence grew up with, and it's easy to mistake for the default. It isn't. Arabic and Hebrew are abjads: the letters spell out consonants, vowel sounds are usually left for the reader to supply from context, and when vowels do need to be marked, they attach as small points above or below the consonant rather than as full letters of their own.
That's a real structural difference, not just a stylistic one. A Hebrew or Arabic reader routinely reads text with no vowel marks at all, the way an English reader might read "txt msg" abbreviations, except it's the ordinary way the language is written, not a shortcut. Vowel points exist for children's books, poetry, liturgical text, and anywhere ambiguity matters, and a font has to support them even though most running text will never carry them.
Arabic and Hebrew read right to left, but neither is a simple mirror image of a left-to-right script. Numbers inside RTL text still read left to right, a Latin brand name dropped into a Hebrew sentence still reads left to right, and punctuation has to land on the correct visual side of a word without anyone manually reversing it. Unicode's Bidirectional Algorithm (UAX #9) is what makes this work: every character carries an implicit directionality, and the algorithm resolves mixed-direction text into a correct visual order automatically. Fonts don't implement bidi themselves, but every glyph a font ships needs to work correctly when the shaping engine hands it text in either direction.
The same OpenType feature list looks different depending which script it's serving. This table shows which features carry the real weight for each script in this track; each script's own article covers its full model.
| Feature | Tag | Where it matters most |
|---|---|---|
| Standard ligatures | liga | Latin (fi, fl), required in most text |
| Discretionary ligatures | dlig | Hebrew (alef-lamed), optional by design |
| Required ligatures | rlig | Arabic, mandatory joined forms like lam-alef |
| Isolated / initial / medial / final forms | isol / init / medi / fina | Arabic only; no other script here needs positional letterforms |
| Localized forms | locl | Cyrillic (Bulgarian, Serbian, Macedonian letterform conventions) |
| Small capitals | smcp / c2sc | Latin and Cyrillic; Arabic and Hebrew have no case to convert |
| Mark attachment | mark / mkmk | All four, for accents, niqqud, and harakat alike |
| Kerning | kern | All four, though RTL kerning has to run in reading order, not visual order |
| Symptom | Likely cause | Fix |
|---|---|---|
| Diacritics collide with tall or descending letters | Anchor points placed without testing the full glyph set they'll actually meet | Test marks against a script's tallest and lowest base letters, not just an average one |
| RTL text mixed with Latin words or numbers reads in the wrong order | Font or layout code overrides the Unicode Bidirectional Algorithm instead of trusting it | Test mixed-direction sentences, not isolated single-script strings |
| A script "supported" by a font breaks on real text | Coverage tested only against isolated letters, not real words and required ligatures | Build a test corpus of real sentences per script, including its required ligatures |
| A font looks complete in one application and broken in another | Different platforms use different shaping engines (HarfBuzz, DirectWrite, CoreText) | Test across shaping engines, not just one operating system's default renderer |
Latin Latn
AlphabetThe most widely used script on earth, and the one carrying the widest diacritic and language coverage burden of any script a font ships.
Cyrillic Cyrl
AlphabetShares Latin's OpenType toolkit almost feature for feature, but its italic letterforms are genuinely redrawn, not just slanted.
Hebrew Hebr
Abjad · RTLTwenty-two consonant letters, five with a distinct final form, optional niqqud vowel points, and no letter joining at all.
Arabic Arab
Abjad · RTLA true cursive script: every letter takes up to four different shapes depending on its position in the word.