Hebrew Script
Hebrew is an abjad: its 22 letters are mostly consonants, vowels are optional points added beneath or above them, and text flows right to left. Unlike Arabic, Hebrew letters don't join, each one keeps a fixed, disconnected shape regardless of neighbors. Its real complexity sits elsewhere: five letters carry a distinct final form, and the dagesh, a small dot, changes a letter's sound from inside its outline rather than above or below it.
Hebrew, in one screen
An abjad with no letter joining, five position-dependent final forms, and vowel points that most everyday text leaves out.
Hebrew has 22 base letters, all consonants in origin, though several also serve as vowel indicators in unpointed text. Five of them take a different, elongated shape when they fall at the end of a word, a leftover of how the script was historically written and still a hard rule in every modern Hebrew font.
Most combining marks in most scripts sit above or below the base letter they modify, a pattern this entire World Scripts track otherwise holds to. Hebrew breaks it with the dagesh: a small dot placed within a letter's own outline, most commonly in bet, kaf, and pe, where it changes a soft consonant sound to a hard one. Positioning a mark inside a glyph's counter space, rather than in the space above or below it, is a genuinely different anchoring problem than the mark placement every other script in this series relies on.
Niqqud, the full vowel-pointing system, sits above and below letters in the more conventional way, but it's optional. Everyday Hebrew, newspapers, novels, most web text, is written entirely without niqqud, and readers infer vowels from context and word shape. Niqqud shows up mainly in poetry, children's books, religious texts, and dictionaries, which means a font can be shipped for general use without ever drawing a single vowel point and still be considered complete for its market.
Hebrew's mark positions fall into three zones relative to a letter: above, below, and, for the dagesh alone, inside.
מֶלֶךְ ("melekh", king) shows the pattern: niqqud vowel points sit above and below the consonants, and the word ends in the final form of kaf (ך), its descender dropping below the line the way the upright kaf (כ) never does.
Hebrew script also writes Yiddish, which encodes vowels more fully than Hebrew does and defines its own small set of required ligatures built from doubled letters, treated as distinct characters rather than optional stylistic substitutions.
| Ligature | Built from | Use |
|---|---|---|
| װ | vav + vav | Represents the consonant "v" |
| ױ | vav + yod | Represents the vowel "oy" |
| ײ | yod + yod | Represents the vowel "ey" or "ay" |
Hebrew needs no positional joining, so its OpenType feature list is built almost entirely around mark placement, the required Yiddish ligatures, and language-specific substitutions.
| Feature | Tag | What it builds here |
|---|---|---|
| Mark positioning | mark | Anchors niqqud, cantillation marks, and the dagesh to their base letters. |
| Mark-to-mark | mkmk | Positions a second mark relative to one already placed, for combined niqqud and cantillation. |
| Discretionary ligatures | dlig | Example: alef-lamed forming a single decorative ligature. |
| Glyph composition | ccmp | Builds required Yiddish ligatures, such as yod-yod plus patah forming a single glyph. |
| Localized forms | locl | Distinguishes Hebrew and Yiddish conventions where the same letters are used differently. |
| Symptom | Likely cause | Fix |
|---|---|---|
| A word-final letter shows the wrong shape | Font or app fails to substitute the sofit form at word end | Confirm final-form substitution triggers on actual word boundaries, not just isolated glyph review |
| Dagesh dot collides with the letter's ink or sits off-center | Anchor point not tuned per letter, bet/kaf/pe have different counter shapes | Set dagesh anchors individually for each letter that carries one |
| Niqqud points overlap or drift off their letters | Mark attachment untested with real above-and-below combinations | Test full pointed words, not isolated vowel marks |
| Hebrew and embedded Latin/numbers appear in the wrong order | Bidi algorithm not applied, or applied without correct paragraph direction | Set explicit paragraph direction and test mixed-direction sentences directly |
| Yiddish double-yod or double-vav renders as two separate letters | Required ligature substitution missing or not enabled | Verify ccmp is applied for Yiddish-specific ligatures |
- 1Draw all 22 base letters and all 5 final forms, and verify substitution triggers at real word boundaries.
- 2Tune dagesh anchors per letter rather than using one shared anchor point.
- 3Decide whether niqqud support is in scope, general text doesn't need it, but liturgical and educational text does.
- 4Build required Yiddish ligatures if Yiddish is a target language.
- 5Test bidi behavior with real mixed Hebrew/Latin/numeral sentences.
- 6Review with a fluent reader, dagesh and sofit errors are easy to miss without one.
Copy these into a test document. Each targets a different part of the coverage and shaping surface covered above.