Elamur: **Mova** · [Parse](https://mova.elamur.ai/free/en/parse/) · [Dictionary](https://md.dictionary.elamur.ai/free/en/) · [Translate](https://md.translate.elamur.ai/free/en/) · [Research](https://md.research.elamur.ai/free/en/) · [Groupants](https://md.groupants.elamur.ai/free/en/)

[Mova](https://md.mova.elamur.ai/free/en/) · [this page in HTML](https://mova.elamur.ai/free/en/docs/languages/uk/01-consonants/)

[home](https://md.mova.elamur.ai/free/en/) / [docs](https://md.mova.elamur.ai/free/en/docs/) / [languages](https://mova.elamur.ai/free/en/docs/languages/) / [uk](https://md.mova.elamur.ai/free/en/docs/languages/uk/) / 1. Consonants

# 1. Consonants

**On this page**

1. [1. The inventory](#1-the-inventory)
2. [2. Labials: no soft phonemes](#2-labials-no-soft-phonemes)
3. [3. Dentals: the hard–soft opposition](#3-dentals-the-hardsoft-opposition)
4. [4. Hushing consonants: *ж, ш, ч, дж, щ*](#4-hushing-consonants-ж-ш-ч-дж-щ)
5. [5. Affricates](#5-affricates)
6. [6. The back consonants: *г, ґ, к, х*](#6-the-back-consonants-г-ґ-к-х)
7. [7. Sonorants](#7-sonorants)
8. [8. Voicing: no final devoicing](#8-voicing-no-final-devoicing)
9. [9. Consonant length](#9-consonant-length)
10. [10. Frequencies](#10-frequencies)
11. [11. How Mova handles consonants](#11-how-mova-handles-consonants)
12. [Sources for this chapter](#sources-for-this-chapter)

Standard Ukrainian has **32 consonant phonemes**: 23 that are hard or have no hard–soft pair, and 9 soft (palatalized) dentals that stand against hard partners. The system has three features that set it apart from its neighbours: voiced obstruents stay voiced at the end of a word and before voiceless consonants; *в* is a sonorant that turns into a non-syllabic [u̯] after vowels and never into [f]; and the letter *г* stands for a voiced glottal fricative [ɦ], while the velar stop [ɡ] has its own, rare letter *ґ*. This chapter gives the inventory (§1), the labials (§2), the hard–soft opposition of the dentals (§3), the hushing consonants and affricates (§4–5), the back consonants *г, ґ, к, х* (§6), the sonorants (§7), voicing (§8), consonant length (§9) and frequencies (§10); the alternations of consonants in inflection and word formation are in [4. Connected speech](https://md.mova.elamur.ai/free/en/docs/languages/uk/04-connected-speech/) §9, the spelling of soft consonants and the apostrophe in [5. The writing system](https://md.mova.elamur.ai/free/en/docs/languages/uk/05-writing-system/) and [6. Spelling rules and the 2019 orthography](https://md.mova.elamur.ai/free/en/docs/languages/uk/06-spelling-rules/). §11 says what Mova does with Ukrainian consonants: very little.

The description is the one of the standard orthoepic tradition (Simovych 1919 §§11–24, 30–41; Smal-Stockyj 1913 §§3–4, 7), checked against the 2019 orthography (Pravopys 2019 §§5–8, 26–30, 122) and against the review of the orthoepic dictionaries by Bas-Kononenko (2019). Transliteration follows the scholarly system (*г* h, *ґ* g, *и* y, *і* i, *ї* ji, *й* j, *є* je, *ю* ju, *я* ja, *ж* ž, *ч* č, *ш* š, *щ* šč, *х* x, *ц* c, *ь* ', apostrophe "), given on the first use of a word with a gloss; sounds are in the IPA, phonemes between slashes, pronunciations in square brackets.

## 1. The inventory

|  | labial | dental / alveolar, hard | dental / alveolar, soft | postalveolar | palatal | velar | glottal |
| --- | --- | --- | --- | --- | --- | --- | --- |
| stops, voiceless | п /p/ | т /t/ | ть /tʲ/ |  |  | к /k/ |  |
| stops, voiced | б /b/ | д /d/ | дь /dʲ/ |  |  | ґ /ɡ/ |  |
| affricates, voiceless |  | ц /ʦ/ | ць /ʦʲ/ | ч /ʧ/ |  |  |  |
| affricates, voiced |  | дз /ʣ/ | дзь /ʣʲ/ | дж /ʤ/ |  |  |  |
| fricatives, voiceless | ф /f/ | с /s/ | сь /sʲ/ | ш /ʃ/ |  | х /x/ |  |
| fricatives, voiced |  | з /z/ | зь /zʲ/ | ж /ʒ/ |  |  | г /ɦ/ |
| nasals | м /m/ | н /n/ | нь /nʲ/ |  |  |  |  |
| lateral |  | л /l/ | ль /lʲ/ |  |  |  |  |
| trill |  | р /r/ | рь /rʲ/ |  |  |  |  |
| approximants | в /ʋ/ |  |  |  | й /j/ |  |  |

Count: 23 hard or unpaired (*б п в м ф д т з с ц дз н л р ж ш ч дж й ґ к х г*) and 9 soft (*дь ть зь сь ць дзь нь ль рь*), 32 in all. The same figure, with six vowels, is the basis of the orthoepic dictionaries Bas-Kononenko (2019) reviews; she notes that the consonant-to-vowel ratio of the inventory, about 5:1, comes close to 1:1 in running speech because open syllables dominate.

What the table does not show:

- **щ** (šč) is not one phoneme but the sequence /ʃʧ/: *що* (ščo) 'what', *щастя* (ščastja) 'happiness' are [ʃʧɔ], [ʃʧasʲːa]. Simovych (1919 §23) already calls *щ* "a sign for three sounds" (*ш-т-ш*, that is [ʃ] + [ʧ]).
- **дж** and **дз** are single phonemes inside a root (*джерело* (džerelo) 'spring, source', *дзвін* (dzvin) 'bell') and two sounds where a prefix meets a root: *віджи́ти* (vidžyty) 'to become obsolete' is [ʋʲid-ʒɪtɪ], not [ʋʲiʤɪtɪ]. The alphabet has no letters for them; the dictionaries alphabetize them under *д* (Pravopys 1928, section on the alphabet; the same practice holds today).
- **Semi-palatalized** consonants: before *і* every consonant is pronounced with the tongue raised (Smal-Stockyj 1913 §3 notes this for *к, г* as [kʲ, ɡʲ]); for labials, hushing consonants and velars this is a positional variant, not a phoneme: *білий* 'white', *кіт* (kit) 'cat', *ніж* (niž) 'knife'. Orthoepic dictionaries mark it with a separate diacritic (Bas-Kononenko 2019, §III.1).
- The **long** consonants ([dː], [tː], [nː], [lː] …) are sequences of two identical consonants, not separate phonemes (§9).

## 2. Labials: no soft phonemes

The labials *б, п, в, м, ф* have no soft partners. Before *і* they are semi-palatalized; before *я, ю, є, ї* they are followed by a full [j], which the spelling shows with an apostrophe:

| spelling | pronunciation | gloss |
| --- | --- | --- |
| *м'ясо* (m"jaso) | [ˈmjasɔ] | 'meat' |
| *б'ю* (b"ju) | [bju] | 'I beat' |
| *п'ять* (p"jat') | [pjatʲ] | 'five' |
| *в'юн* (v"jun) | [ʋjun] | 'loach (fish)' |
| *мавп'ячий* (mavp"jačyj) | [ˈmau̯pjaʧɪj] | 'of monkeys' |
| *бік* (bik) | [bʲik] | 'side' |

The same holds after *р* at the end of a syllable (*подвір'я* (podvir"ja) 'yard', *бур'ян* (bur"jan) 'weed') and after a prefix ending in a consonant (*з'їзд* (z"jizd) 'congress', *роз'яснити* 'to explain'). The apostrophe is the reverse of *ь*: *ь* marks a soft consonant without a following [j], the apostrophe a hard consonant followed by [j] (Pravopys 2019 §7; Smal-Stockyj 1913 §4 describes the same for Galician usage of his time, where the apostrophe was not yet written after labials).

A labial before *я* in a loan follows the same rule: the apostrophe is written where [j] is heard after a hard labial (*прем'єр*, *комп'ютер*, *інтерв'ю*). In the news sample of §10 a labial + apostrophe + iotated vowel occurs about 21 000 times in 300 000 sentences (15 278 with the ASCII apostrophe ', 6 790 with ’); see [5. The writing system](https://md.mova.elamur.ai/free/en/docs/languages/uk/05-writing-system/) for the three apostrophe characters.

## 3. Dentals: the hard–soft opposition

Nine dental consonants come in pairs. The soft member is pronounced with the middle of the tongue raised towards the hard palate (Smal-Stockyj 1913 §3); *т', д'* are not followed by an audible [j] before a consonant or a word boundary, and the soft *с', з', л'* are single fricatives or laterals, "as in Polish", with no [j] noise (ibid.).

### 3.1 Minimal pairs

| hard | soft |  |
| --- | --- | --- |
| *рад* (rad) 'glad' | *ряд* (rjad) 'row' | /r/ ~ /rʲ/ |
| *лук* (luk) 'bow' | *люк* (ljuk) 'hatch' | /l/ ~ /lʲ/ |
| *галка* (halka) 'jackdaw' | *галька* (hal'ka) 'pebble' | /l/ ~ /lʲ/ |
| *стан* (stan) 'state, condition' | *стань* (stan') 'stand! (imperative)' | /n/ ~ /nʲ/ |
| *син* (syn) 'son' | *синь* (syn') 'blueness' | /n/ ~ /nʲ/ |
| *мил* (myl, gen. pl. of *мило* 'soap') | *миль* (myl', gen. pl. of *миля* 'mile') | /l/ ~ /lʲ/ |
| *брат* (brat) 'brother' | *брать* (brat', a colloquial infinitive) | /t/ ~ /tʲ/ |

The pair *стан / стань* and *галка / галька* are the 1928 orthography's own illustrations of what *ь* marks (Pravopys 1928 §13: *кінь* beside *кін*, *стань* beside *стан*, *Галька* beside *галка*).

### 3.2 Where softness occurs

- **Before a vowel** a soft dental is written with *я, ю, є, і* or *ьо*: *лялька* 'doll', *тюлень* 'seal', *синє* 'blue (neut.)', *тіло* 'body', *льон* 'flax', *сьомий* 'seventh'.
- **At the end of a word or syllable** with *ь*: *мідь* 'copper', *суть* 'essence', *вісь* 'axis', *кінь* 'horse', *батько* 'father', *кільце* 'ring' (Pravopys 2019 §26).
- **Before another soft consonant** the first consonant is softened in pronunciation, but no *ь* is written (except after *л*): *пісня* [ˈpʲisʲnʲa] 'song', *свято* 'feast', *цвях* 'nail' (§27.3); the degree of this assimilation varies with the speaker ([4. Connected speech](https://md.mova.elamur.ai/free/en/docs/languages/uk/04-connected-speech/) §6.3).
- ***ц*** is soft at the end of a native word (*палець* 'finger', *хлопець* 'boy', *місяць* 'moon, month') and hard in loans (*палац* 'palace', *кварц* 'quartz', *шприц* 'syringe'; §27.7). Simovych (1919 §49) records the Galician and Podillian hard *-ец* (*хлопец, кравец*) as dialect; the standard has *-ець*.
- ***р*** is soft only before a vowel (*ряд*, *буря* 'storm', *рюкзак* 'rucksack', *трьох* 'of three'); at the end of a syllable it is always hard, even where it was once soft: *кобзар* 'kobza player', *лікар* 'doctor', *Харків* (§27.1). Smal-Stockyj (1913 §7) states that Ukrainian "apart from one dialect" has no soft *r*, and describes *ря, рю, ре* as a hard *r* followed by a short [i̯]; the present orthoepic norm has /rʲ/ before vowels, and both descriptions name the same weak point of the system.

### 3.3 Hard consonants before *е* and *и*

Ukrainian dentals are hard before *е* and *и*: *тепер* [tɛˈpɛr] 'now', *сила* [ˈsɪɫa] 'strength', *синій* [ˈsɪnʲij] 'blue'. This is the most audible difference from Russian, where the same consonants are soft before *е* and *и* (the Ukrainian *и* is the reflex of both Common Slavic *i* and *y*; [2. Vowels](https://md.mova.elamur.ai/free/en/docs/languages/uk/02-vowels/) §1.2). Softness before *е* is written *є*: *синє* [ˈsɪnʲɛ].

## 4. Hushing consonants: *ж, ш, ч, дж, щ*

The postalveolars are **hard** in the standard: *жаба* 'frog', *шапка* 'hat', *час* 'time', *чорний* 'black'. They are semi-palatalized before *і* (*ніж*, *чіп*) and long before *я, ю, і, є* in a closed set of words (*збіжжя* 'grain', *піддашшя* 'eaves', *сторіччя* 'century'; §9). After them the spelling has *е* where the next consonant is soft and *о* where it is hard (*вечеря* 'supper' but *вечори* 'evenings'; Pravopys 2019 §10; [2. Vowels](https://md.mova.elamur.ai/free/en/docs/languages/uk/02-vowels/) §5.2).

The standard *ч* is hard; a soft, Russian-like [ʧʲ] before *а, у* (*[ʧʲɑs]* for *час*) can be heard in Russian-influenced speech and in surzhyk in the east and south ([8. Regional varieties, diaspora and surzhyk](https://md.mova.elamur.ai/free/en/docs/languages/uk/08-national-varieties/)).

## 5. Affricates

| affricate | as one phoneme | as a sequence across a boundary |
| --- | --- | --- |
| *ц* /ʦ/, *ць* /ʦʲ/ | *цап* 'goat', *палець* | — (always one letter) |
| *ч* /ʧ/ | *час* | — |
| *дз* /ʣ/, *дзь* /ʣʲ/ | *дзвін* 'bell', *ґедзь* 'gadfly', *дзьоб* 'beak' | *підзахисний* [pʲid-zɑ…] 'protected' |
| *дж* /ʤ/ | *джміль* 'bumblebee', *джерело* | *віджати* [ʋʲid-ʒɑtɪ] 'to squeeze out' |

The voiced affricates are rare in native roots; *дж* is mainly the result of the alternation *д ~ дж* in verbs (*ходити* 'to walk' → *ходжу* 'I walk'; *садити* → *саджу*, Pravopys 2019 §15) and of loans (*джаз*, *бюджет*, *менеджер*). In the news sample the digraph *дж* occurs 24 471 times and *дз* 3 418 times per 300 000 sentences (both counts include the boundary sequences).

Affricates also arise in connected speech from *т, д* + sibilant (*братство* [ˈbrɑʦtʋɔ], *-ться* [ʦʲːɑ]): [4. Connected speech](https://md.mova.elamur.ai/free/en/docs/languages/uk/04-connected-speech/) §6.

## 6. The back consonants: *г, ґ, к, х*

### 6.1 *г* /ɦ/

The letter *г* stands for a **voiced glottal (pharyngeal) fricative** [ɦ]: *гора* 'mountain', *нога* 'leg', *Бог* 'God'. Smal-Stockyj (1913 §3) describes it as "a voiced breath, like Czech *h*": the vowel that follows must already sound during the breathing. Word-finally the voicing fades and *г* becomes "a soft *ch*": *міг* [mʲiɦ ~ mʲix] 'could', *луг* 'meadow' (ibid.); before a voiceless consonant it is devoiced to [x] in the standard (*легко* [ˈlɛxkɔ] 'easily', *нігті* [ˈnʲixtʲi] 'nails', *вогкий* 'damp'), the one systematic exception to the rule of §8.

Ukrainian *г* is not the velar [ɣ] of southern Russian dialects nor the [ɡ] of standard Russian; a velar [ɡ] or [ɣ] in place of *г* is heard in the Ukrainian of speakers whose first language is Russian ([8. Regional varieties, diaspora and surzhyk](https://md.mova.elamur.ai/free/en/docs/languages/uk/08-national-varieties/)).

### 6.2 *ґ* /ɡ/

The velar stop [ɡ] is marginal. It has its own letter *ґ*, written in a closed list of native and long-borrowed words (*ґанок* 'porch', *ґудзик* 'button', *ґрунт* 'soil', *ґава* 'crow', *аґрус* 'gooseberry', *дзиґа* 'spinning top', *ґедзь* 'gadfly', *ґрати* 'bars') and their derivatives, in place names of Ukraine (*Ґорґани*) and in Ukrainian family names (*Ґалаґан*, *Ґонта*) (Pravopys 2019 §6). It was dropped from the Soviet alphabet in 1933 and restored in 1990 ([5. The writing system](https://md.mova.elamur.ai/free/en/docs/languages/uk/05-writing-system/)).

**[g] and [h] in loans.** The 2019 orthography writes *г* for both foreign [g] and [h] in common nouns (*агітація*, *блогер*, *маркетинг*; *гандбол*, *горизонт*), *х* for [h] in a traditional set (*хобі*, *хокей*, *хол*, *холдинг*), and allows **two spellings for [g] in personal names**: adapted *Гегель, Гете* or imitating *Геґель, Ґете* (Pravopys 2019 §122.1–4). The 1928 orthography had written *ґ* for foreign *g* widely (its own text has *Вюртемберґ*), and that practice lived on in the diaspora and in Galician publishing. Usage, measured on the Leipzig news sample of 2024 (1 000 000 sentences, counts of 2026-11-06, any word beginning with the given string):

| norm (2019) | count | variant | count | note |
| --- | --- | --- | --- | --- |
| *гаджет* 'gadget' | 261 | *ґаджет* | 77 | *ґ* against the norm in 23% |
| *Гете* | 23 | *Ґете* | 4 | both allowed |
| *хакер* (traditional *х*; the code's own example in §134) | 296 | *гакер* | 1 |  |
| *лайфхак* | 178 | *лайфгак* | 75 |  |

Hordiienko (2024) reads such pairs in the online press as inconsistency rather than as phonetic variants: the *х* for English [h] (*хакер*) continues the Russian tradition, the *ґ* for [g] (*ґаджет*) a hypercorrect imitation of the source. Both readings describe a real spread of usage that the code has not settled.

In the UD Ukrainian-IU treebank (CC BY-NC-SA, counted only) *ґ* turns up in *ґрунт* and its forms and in the Galician–diaspora loan spellings *сиґарети*, *еміґрантів*, *Шредінґера*; in the ParlaMint treebank (official transcripts of Verkhovna Rada sessions, 2003–2022) only 8 words contain *ґ*.

### 6.3 *к* and *х*

*к* /k/ is unaspirated, as in the other Slavic languages (Smal-Stockyj 1913 §3 warns German readers not to aspirate it). *х* /x/ is a velar fricative; Smal-Stockyj notes a fronted variant [ç] after front vowels, "thinner than in northern German" (*міх* 'sack'). Both are semi-palatalized before *і* (*кіт*, *хіба*).

## 7. Sonorants

### 7.1 *в*

*в* is a labiodental approximant [ʋ] (or bilabial [w]) before a vowel: *вода* 'water', *вітер* 'wind'. It is **never a fricative and never voiceless**:

| position | pronunciation | examples |
| --- | --- | --- |
| before a vowel | [ʋ] / [w] | *вода*, *слово* |
| after a vowel at the end of a word | [u̯] | *знав* [znɑu̯] 'knew', *любов* [lʲuˈbɔu̯] 'love', *Київ* [ˈkɪjiu̯] |
| after a vowel before a consonant | [u̯] | *вовк* [ʋɔu̯k] 'wolf', *автор* [ˈɑu̯tɔr] |
| at the start of a word before a consonant | [u̯] | *вчора* [ˈu̯ʧɔrɑ] 'yesterday', *вдова* 'widow' |

Bas-Kononenko (2019) lists the devoicing of *в* to [f] (*[кɪjіf]*, *[фхопифс'а]*) among the serious violations of the orthoepic norm. The past tense masculine in *-в* (*ходив*, *читав*, *знав*) continues an old *-л* that became [u̯] (Simovych 1919 §35; Smal-Stockyj 1913 §10), while nouns kept *л* (*стіл* 'table', *віл* 'ox', *орел* 'eagle'). Smal-Stockyj (1913 §4) treats the endings *-ав, -ов, -ів* as diphthongs, written with a consonant letter for their unstressed second half, like *-ай, -ой*.

The alternation of *в* with *у* between words is the subject of [4. Connected speech](https://md.mova.elamur.ai/free/en/docs/languages/uk/04-connected-speech/) §2.

### 7.2 *л*

The hard *л* is velarized [ɫ] (*лука* 'meadow', *колос* 'ear of grain'); there is no "clear", neutral [l] in native words (Smal-Stockyj 1913 §3). The soft *ль* is a palatalized [lʲ] with no glide (*лялька*, *біль* 'pain'). The 2019 orthography renders a foreign [l] in loans as hard or soft *л* by established usage (§121): hard in *бал*, *клас*, *план*, *Лондон* and in recent English loans (*ланч*, *файл*), soft in *автомобіль*, *асфальт*, *гольф*, *пляж*, *пілюля*; the details are in [6. Spelling rules and the 2019 orthography](https://md.mova.elamur.ai/free/en/docs/languages/uk/06-spelling-rules/).

### 7.3 *р*, *м*, *н*, *й*

*р* is an apical trill [r] (one or two taps in fast speech). *м* and *н* are as in other Slavic languages; *н* is velar [ŋ] before *к, г* only as a positional variant (Smal-Stockyj 1913 §3). *й* /j/ is the palatal approximant; after a vowel it forms the second half of a falling diphthong (*край* 'edge', *мій* 'my'; Smal-Stockyj 1913 §4), and *я, ю, є, ї* write it together with the vowel at the start of a word and after a vowel (*яма*, *моє*, *їжак*).

## 8. Voicing: no final devoicing

The core rule is old and was stated against Russian and Polish in every early grammar: **voiced obstruents keep their voice at the end of a word and before a voiceless consonant** (Simovych 1919 §§30–31). Pronounced and written:

| word | pronunciation | not | gloss |
| --- | --- | --- | --- |
| *хліб* | [xlʲib] | *[xlʲip]* | 'bread' |
| *дід* | [dʲid] | *[dʲit]* | 'grandfather' |
| *віз* | [ʋʲiz] | *[ʋʲis]* | 'cart' |
| *ніж* | [nʲiʒ] | *[nʲiʃ]* | 'knife' |
| *дуб* | [dub] | *[dup]* | 'oak' |
| *берізка* | [bɛˈrʲizkɑ] | *[bɛˈrʲiskɑ]* | 'little birch' |
| *ніжка* | [ˈnʲiʒkɑ] | *[ˈnʲiʃkɑ]* | 'little leg' |
| *редька* | [ˈrɛdʲkɑ] | *[ˈrɛtʲkɑ]* | 'radish' |

The prepositions and prefixes *без-, від-, під-, над-, об-, перед-, роз-* keep their voiced final consonant before voiceless ones (*безпека* 'safety', *відповідь* 'answer', *розписати* 'to write out'); only *з-* is written *с-* before *к, п, т, ф, х* (*сказати*, *спитати*, *стерти*, *сфотографувати*, *схопити*; Pravopys 2019 §31; [4. Connected speech](https://md.mova.elamur.ai/free/en/docs/languages/uk/04-connected-speech/) §5.3).

The phonetic truth is more graded than the rule. Smal-Stockyj (1913 §3) puts Ukrainian "in the middle" between German, which devoices fully, and French, which does not: the closure of a final *б, д, г* is still voiced, its release no longer, roughly [-bᵖ, -dᵗ, -ɡᵏ], and the voice is lost still more easily before a voiceless consonant (*бабка*). What matters for the system is that the final *д* of *дід* and the *т* of *кіт* stay distinct, and that no rule turns written *б, д, з, ж* into their voiceless partners. The orthoepic dictionaries keep this as the norm; Bas-Kononenko (2019) quotes Syniavskyi's formulation that voiced consonants "have great strength" in Ukrainian: usual at the end of words (*хліб*), in the middle before voiceless ones (*книжка*), and even turning a written voiceless consonant voiced before a voiced one (*боротьба* said "бородьба"). The one voiced consonant that loses its voice in the norm is *г* before a voiceless consonant (§6.1).

The opposite assimilation, voicing of a voiceless consonant before a voiced one, is general (*боротьба* [bɔrɔdʲˈbɑ] 'struggle', *просьба* [ˈprɔzʲbɑ] 'request', *вокзал* [ʋɔɡˈzɑl] 'station', *якби* [jɑɡˈbɪ] 'if'); see [4. Connected speech](https://md.mova.elamur.ai/free/en/docs/languages/uk/04-connected-speech/) §6.1.

**Regional devoicing.** Simovych (1919 §31, note) records final and preconsonantal devoicing in parts of Galicia (but not among the Hutsuls and in Pokuttia), in Polissia, western Volhynia and the Kholm region, and in northern Chernihiv, and ascribes it to Polish and Russian contact. It belongs to the dialect descriptions of [8. Regional varieties, diaspora and surzhyk](https://md.mova.elamur.ai/free/en/docs/languages/uk/08-national-varieties/).

## 9. Consonant length

Ukrainian has long consonants of two origins, both written with a double letter.

**Lengthening before an old *j*** (Pravopys 2019 §30). The ten consonants *д, т, з, с, л, н, ж, ш, ц, ч* are long after a vowel before *я, ю, і, є* in:

| class | examples |
| --- | --- |
| neuter nouns in *-я* (2nd declension), all cases except gen. pl. | *життя* 'life', *знання* 'knowledge', *волосся* 'hair', *гілля* 'branches', *знаряддя* 'tool', *збіжжя*, *сторіччя*, *піддашшя* |
| some feminine and masculine nouns in *-я* | *суддя* 'judge', *стаття* 'article', *рілля* 'ploughland' |
| the instrumental singular of 3rd-declension feminine nouns | *сіллю* (sil'lju) 'with salt', *тінню* 'with shadow', *ніччю* 'at night', *розкішшю* |
| some adverbs and verb forms | *навмання* 'at random', *спросоння*, *ллю* 'I pour', *ллєш* |

Labials and *р* are never lengthened: *безхліб'я*, *матір'ю*, *пір'я* 'feathers' (apostrophe instead; Pravopys 1928 §18 already states this). In the genitive plural the length goes with the ending: *знань*, *знарядь*, *піддаш*, *сторіч*; nouns that take *-ів* keep it (*почуттів*, *відкриттів*).

**Junction of identical consonants** (§29): prefix + root (*відділ* 'department', *ввічливий* 'polite', *беззвучний* 'soundless', *роззброїти* 'to disarm'), stem + suffix (*денний* 'daily' < *день*, *законний* 'lawful', *письменник* 'writer', *годинник* 'clock'), stem + *-ся* in the past tense (*розрісся* 'grew out', *трясся* 'shook'), parts of stump compounds (*міськком*), and a few roots (*Ганна*, *ссати* 'to suck', *лляний* 'linen'). The suffixes *-анн-(ий), -енн-(ий)* of intensive adjectives are doubled (*незрівнянний* 'incomparable', *страшенний* 'terrible'), participles are not (*зроблений* 'done', *сказаний*).

The long [ʦʲː] of *-ться* and [sʲː] of *-шся* arise in connected speech and are written single ([4. Connected speech](https://md.mova.elamur.ai/free/en/docs/languages/uk/04-connected-speech/) §6.2).

Frequency of double letters in the news sample (300 000 sentences, 24.2 million Cyrillic letters, 2026-11-06):

| double letter | count |  | double letter | count |
| --- | --- | --- | --- | --- |
| *нн* | 118 233 |  | *дд* | 2 660 |
| *тт* | 12 306 |  | *сс* | 2 037 |
| *лл* | 3 542 |  | *жж* | 918 |
| *чч* | 3 250 |  | *зз* | 198 |
| *шш* | 55 |  | *цц* | 40 |

*нн* dominates because of the verbal nouns in *-ння* (*завдання* 'task', *питання* 'question', *рішення* 'decision') and the adjectives in *-нний*; the news genre is rich in both.

## 10. Frequencies

Phoneme frequencies need a pronunciation model Mova does not have (§11). Letter frequencies are a usable proxy because the spelling is close to the pronunciation. Over the first 300 000 sentences of the Leipzig *ukr_news_2024* collection (24 172 419 Cyrillic letters and apostrophes, counted 2026-11-06, case folded):

| letter | share |  | letter | share |  | letter | share |
| --- | --- | --- | --- | --- | --- | --- | --- |
| *н* | 7.00% |  | *д* | 3.45% |  | *ч* | 1.16% |
| *в* | 5.74% |  | *л* | 3.43% |  | *х* | 0.97% |
| *т* | 5.20% |  | *п* | 2.85% |  | *ж* | 0.94% |
| *р* | 5.05% |  | *м* | 2.85% |  | *ц* | 0.84% |
| *с* | 3.99% |  | *з* | 2.53% |  | *ш* | 0.67% |
| *к* | 3.75% |  | *б* | 1.66% |  | *щ* | 0.55% |
| *ь* | 1.76% |  | *г* | 1.49% |  | *ф* | 0.30% |
| *й* | 1.20% |  | *ґ* | 0.005% (1 155) |  | apostrophes (', ’, ʼ) | 0.12% |

*ф* is the rarest native consonant letter after *ґ*: it occurs mostly in loans, because the native lexicon had no /f/ (older loans replaced it with *х*, *хв* or *п*: the names *Хома* (Thomas), *Пилип* (Philip), dialect *хвартух* for *фартух* 'apron'). The share of *в* includes the preposition *в* (and is offset by the preposition *у*, counted as a vowel; [4. Connected speech](https://md.mova.elamur.ai/free/en/docs/languages/uk/04-connected-speech/) §2). The two non-standard letters that turn up are Russian: *ы* 94 times and *э* 20 times, in quotations and names.

## 11. How Mova handles consonants

**Mova has no model of Ukrainian sounds.** It reads written Ukrainian; there is no grapheme-to-phoneme module, no pronunciation lexicon and no rule for assimilation, voicing or length. Every statement above about pronunciation is a statement of this manual, not of code.

- **What reaches the code is spelling.** The `kg` crate (Mova's Ukrainian path, `kg/src/uk.rs`, `kg/src/morph.rs`) tokenizes text with `uk::tokenize`, which keeps an apostrophe (', ’ or ʼ) and a hyphen inside a word when a letter follows, and normalizes the word for lookup with `morph::norm`: lower case, every apostrophe variant (’ ʼ ‘ `) mapped to ', stress marks (U+0301, U+0300) and invisible characters (zero-width characters, soft hyphen) removed. So *м'ясо*, *м’ясо* and *мʼясо* are one key; nothing else about consonants is normalized.
- **Morphology knows consonant alternations only as listed forms.** Analysis and synthesis come from VESUM (`dict_corp_vis.txt.bz2`, CC BY-NC-SA, research and tests only): the alternations *г ~ ж ~ з*, *д ~ дж*, *т ~ ч* ([4. Connected speech](https://md.mova.elamur.ai/free/en/docs/languages/uk/04-connected-speech/) §9) are present because VESUM lists every form (*нога, нозі, ніжка*), not because Mova has a rule.
- **The English tree parser** reads Ukrainian UD after `en xpos-fill` has mapped tags; consonants matter to it only as letters of word forms. `en tok-eval` on UD Ukrainian-IU (train → dev, 2026-11-06, two identical runs) keeps the apostrophe inside words as UD does (*в’їзд* one token); its misses are hyphenated words and initials, not consonant letters ([7. Punctuation, capitals, abbreviations and numbers](https://md.mova.elamur.ai/free/en/docs/languages/uk/07-punctuation-typography/)).
- **No regional or surzhyk phonetics.** A spelling like *ґаджет* or *лайфгак* is a separate, unrelated string; no table links spelling variants.

**What would be needed.** A rule-based grapheme-to-phoneme module is the natural first step, because Ukrainian spelling is close to phonemic: the rules of §§2–9 and the assimilations of [4. Connected speech](https://md.mova.elamur.ai/free/en/docs/languages/uk/04-connected-speech/) §6 are enough for most words. Senyk et al. (2025) built exactly such a phonemizer for speech synthesis, with six ordered rule groups (cluster simplification, several assimilations, allophones) and a separate exception for *-ться*; it errs on 1.23% of a hand-made list of 487 words and on 3.07% of 553 words sampled from VESUM, against 48.75% for a naive letter-to-sound mapping. Their code and data are open (lang-uk, `ukrainian-tts-preprocessing`). A Mova module would have to be written in Rust, from the rules, and tested against an open pronunciation list; stress (needed for vowel quality, [2. Vowels](https://md.mova.elamur.ai/free/en/docs/languages/uk/02-vowels/)) is the hard part ([3. Syllable, stress and intonation](https://md.mova.elamur.ai/free/en/docs/languages/uk/03-syllable-stress-intonation/) §8).

## Sources for this chapter

- Simovych, Vasyl'. 1919. *Hramatyka ukrajins'koji movy dlja samonavčannja ta v dopomohu škil'nij nauci.* Kyiv–Leipzig: Ukrajins'ka nakladnja. §§11–41. Public domain. Library `books/s/si/simovych-1919-hramatyka-ukrainskoi-movy-dlia` (`uk-gram-simovych-1919`).
- Smal-Stockyj, Stephan. 1913. *Ruthenische Grammatik.* Berlin/Leipzig: Göschen. §§3–4, 7, 10. Public domain. Library `books/s/st/stockyj-1913-ruthenische-grammatik` (`uk-gram-smal-stockyj-1913`); [archive.org/details/ruthenischegramm00smaluoft](https://archive.org/details/ruthenischegramm00smaluoft)
- *Ukrajins'kyj pravopys* (2019), approved by Cabinet of Ministers resolution No. 437 of 22.05.2019. §§5–8, 10, 15, 26–31, 121–122. Official document, not protected by copyright. Library `books/u/uk/ukrainskyi-pravopys-2019` (`uk-gram-pravopys-2019`).
- *Ukrajins'kyj pravopys* (1928). §§13, 18. Official document. Library `books/u/uk/ukrainskyi-pravopys-1928-r-1928` (`uk-gram-pravopys-1928`).
- Bas-Kononenko, O. V. 2019. Vymovni normy jak mirylo mylozvučnosti ukrajins'koji movy (na materiali orfoepičnych slovnykiv). *Ukrajins'ka mova* 2019 (1): 103–114. Library card CC BY 4.0; the article prints CC BY-NC-ND 4.0, so paraphrased only (`bas-2019-kononenko-orfoepichni-normy`); [doi.org/10.15407/ukrmova2019.01.103](https://doi.org/10.15407/ukrmova2019.01.103)
- Hordiienko, O. Je. 2024. Fonetyko-hrafične osvojennja ta pravopys novitnich zapozyčen' u sučasnomu ukrajins'komu komunikatyvnomu prostori. *Ukrajins'ka mova* 2024 (4): 97–108. Library card CC BY 4.0; the article prints CC BY-NC-ND 4.0, so paraphrased only (`hordiienko-2024-novitni-zapozychennia`); [doi.org/10.15407/ukrmova2024.04.097](https://doi.org/10.15407/ukrmova2024.04.097)
- Senyk, Anastasiia, Mykhailo Lukianchuk, Valentyna Robeiko & Yurii Paniv. 2025. Context-Aware Lexical Stress Prediction and Phonemization for Ukrainian TTS Systems. UNLP 2025. CC BY 4.0 (ACL Anthology) (`senyk-2025-context-aware-lexical-stress-prediction`); [aclanthology.org/2025.unlp-1.11](https://aclanthology.org/2025.unlp-1.11/)
- Counts: Leipzig Corpora Collection *ukr_news_2024* (1M sentences), CC BY (Goldhahn, Eckart & Quasthoff 2012), leipzig-news-2024; UD Ukrainian-IU 2.18 (CC BY-NC-SA 4.0, counted only) and UD Ukrainian-ParlaMint 2.18 (CC BY-SA 4.0), ud-treebanks-v2.18; all counts of 2026-11-06.
- Mova: `kg/src/uk.rs` (`tokenize`), `kg/src/morph.rs` (`norm`, `invisible`), [kg — the Mova knowledge graph](https://md.mova.elamur.ai/free/en/docs/kg/); `en/src/main.rs` (`xpos_fill`, `tok_eval`).
- [← previous 0. Introduction](https://md.mova.elamur.ai/free/en/docs/languages/uk/00-introduction/)
- [next → 2. Vowels](https://md.mova.elamur.ai/free/en/docs/languages/uk/02-vowels/)
- [↑ back to Ukrainian: a reference manual for Mova](https://md.mova.elamur.ai/free/en/docs/languages/uk/)
