Stacked Vowels: ิ ี ึ ื ั ุ ู
See these keys on the full keyboard layout

Seven of Thai's most common vowels do not sit on the same horizontal line as the consonant they belong to. Instead they stack: ิ ี ึ ื ั appear above the consonant, while ุ and ู descend below it. On screen a syllable like กิ shows the ิ floating over the ก, but on the keyboard you press ก first, then ิ — the display is vertical but the input remains left-to-right. Understanding this distinction between rendering position and input order is the conceptual hurdle for this skill, and it is also the reason the seven vowels arrive as one lesson: they share one rule.
Why it matters
Stacked vowels are extraordinarily common. Sara ii (ี) appears in words like ดี, มี, ปี, ที, นี้ — everyday words you will type constantly. Sara i (ิ) gives the short /i/ sound in คิด, จิต, ริม, and many others. Mai han akat (ั) is the short /a/ that precedes nasal endings in กัน, ฉัน, มัน, and สั้น. The below-the-line vowels ุ and ู provide the short and long /u/ sounds: ทุก, คุ, รู, หู. Without these seven vowels you cannot write a representative Thai sentence.
The real-word payoff arrives immediately. With this lesson plus the previous three, the pool of fully typeable common words jumps: ผิด (ผ, ิ, ด), ริม (ร, ิ, ม), ดิน (ด, ิ, น), ดี (ด, ี), มี (ม, ี), ปี (ป, ี), กัน (ก, ั, น), รัก (ร, ั, ก), นัก (น, ั, ก), วัน (ว, ั, น), มัน (ม, ั, น), ทุก (ท, ุ, ก), ทุน (ท, ุ, น), สุข (ส, ุ, ข), รู (ร, ู), หู (ห, ู), ดู (ด, ู). Words you meet in the first paragraphs of almost any Thai text no longer require looking anything up.
The stacked vowels also complete the short–long vowel system that the previous lesson began. Thai pairs its vowels: อะ/อา, อิ/อี, อึ/อื, อุ/อู. The trailing-vowels lesson covered the /a/ pair; this lesson adds the other three pairs in their written forms — ิ short and ี long for /i/, ึ short and ื long for /ɯ/, ุ short and ู long for /u/ — plus ั, the mai han akat that writes the closed short /a/. When a learner can type all seven, every vowel written above or below the consonant is in place; the pre-posed vowels come next.
The seven keys also explain a structural fact about Thai input: every mark is its own character with its own key, not a modification of the previous letter. ิ and ี are separate code points, ั and ำ are separate code points, and the input engine stacks them because the script says they stack, not because any modifier key was pressed. That is why there is no 'attach' step in the drill — the sequence consonant-then-vowel IS the whole job, and the engine does the rest. Once this is internalised, Thai typing stops feeling like a special case and starts feeling like any other script: press the characters in their written order.
The characters
Kedmanee positions these vowels as follows. Above-the-consonant: ั on Y (top row, right index), ี on U (top row, right index one step right), ึ on Digit7 (number row, right index reaching up), ื on N (bottom row, right index), ิ on B (bottom row, left index). Below-the-consonant: ุ on Digit6 (number row, right index), ู on Shift+Digit6. A notable pattern: the right index finger is responsible for ั, ี, ึ, ื, ุ, and ู — six of the seven keys in this lesson, four of them on one vertical strip — while the single left-hand key, ิ on B, belongs to the left index. The layout concentrates the vowel marks under the two index fingers.
Mai han akat (ั) deserves its own paragraph because its job is different from the other six. ิ, ี, ึ, ื, ุ, and ู are pure vowels: they contribute a vowel sound to the syllable. ั is a short-vowel marker: it writes the short /a/ only in closed syllables — syllables that end in a final consonant. กัน is ก, ั, น; the ั tells the reader the /a/ is short because a final น follows. An open short /a/ is spelled with ะ instead, as you saw in the last lesson. This is why ั and ำ look alike but are not rivals: ำ carries its own final /m/, while ั waits for the final that follows it on the keyboard.
The seven keys live on three different rows, which is the real map to remember: ิ on B is bottom-row left index; ั on Y, ี on U are top-row right index; ื on N is bottom-row right index; ุ on Digit6 and ึ on Digit7 are number-row right index; ู is the Shift chord of Digit6. Visually the seven vowels form pairs or look-alikes — ิ/ี, ึ/ื, ั/ำ, ุ/ู — but physically each pair sits far apart or on the same key. The lesson's job is to break the visual pairs and attach each vowel to its own key, which is why the drills alternate the look-alikes deliberately.
- ิ on B — left index, bottom row
- ี on U — right index, top row
- ั on Y — right index, top row, one key left of U
- ื on N — right index, bottom row
- ึ on Digit7 — right index, number row
- ุ on Digit6 — right index, number row, one key left of Digit7
- ู on Shift+Digit6 — the Shift chord of Digit6, left hand on Shift
Above the consonant
Sara i (ิ) is the bottom-row left-hand key of this lesson: ิ on B, under the left index. From home, the left index drops one row and one column in from F, a movement it already knows from อ on V. Words that use ิ: ผิด (ผ on Z, then ิ, then ด), ริม (ร, ิ, ม), ดิน (ด, ิ, น), นิด (น, ิ, ด). Notice the hand alternation: ริม travels right, left, right — ร on I under the right middle, ิ on B under the left index, ม on the comma key under the right middle. The ิ key sits on the opposite side of the board from most of the consonants it attaches to, which makes ิ words natural alternation training.
Sara ii (ี) is the long partner, and its key is U, top row, under the right index. ดี is ด on F then ี on U — left index, right index, one of the first word shapes new typists learn. มี is ม on the comma key then ี on U (right middle, right index); ปี is ป on X then ี on U (left ring, right index); ที is ท on M then ี on U (right index, right index — a same-finger pair up the column). The ี words are everywhere, and the U key becomes a second home for the right index: after any consonant, the short trip up to U adds the long /i/.
Mai han akat (ั) on Y is the closed-syllable short /a/: กัน (ก, ั, น), รัก (ร, ั, ก), นัก (น, ั, ก), มัด (ม, ั, ด), ยัง (ย, ั, ง), ฝัน (ฝ, ั, น), นัด (น, ั, ด), วัน (ว, ั, น), มัน (ม, ั, น). The keystroke pattern is consonant, ั, final consonant — the vowel sits between the two consonants in typing order exactly as it does in writing. Y is one key left of U on the top row, so the right index alternates between ั and ี without leaving its row. The drill makes the contrast concrete: type รัก (ร, ั, ก), then the same skeleton with ี — รี, the shape that opens รีบ and รีด — and feel the key move from Y to U while the word changes its vowel.
The remaining above-vowels are ื on N and ึ on Digit7. N, bottom row under the right index, writes the long /ɯ/ in ยืน (ย, ื, น), ยืม (ย, ื, ม), ลืม (ล, ื, ม), มืด (ม, ื, ด), กลืน (ก, ล, ื, น) — and in most other words ื appears together with the pre-posed vowel เ (เมือง, เรือน, เนื้อ), which is why the full ื family arrives in the pre-posed-vowel lesson. ึ on Digit7 is the short partner, the lesson's first number-row key: หนึ่ง (ห, น, ึ, ่, ง — the tone mark arrives later), ยึด (ย, ึ, ด), มึน (ม, ึ, น), พึ่ง (พ, ึ, ่, ง). The short /ɯ/ is less common than the long one, and its key is on the number row.
- ิ family: ผิด ริม ดิน นิด — short /i/, left index on B
- ี family: ดี มี ปี ที — long /i/, right index on U
- ั family: กัน รัก นัก มัด ยัง ฝัน นัด วัน มัน — closed short /a/, ั on Y
- ื family: ยืน ยืม ลืม มืด กลืน — long /ɯ/, N under the right index
- ึ family: หนึ่ง ยึด มึน — short /ɯ/, Digit7 on the number row
Below the consonant
Two vowels hang under the consonant, and they share a single physical key. ุ (short /u/) is Digit6's base character; ู (long /u/) is its Shift layer. From home, the right index extends up two rows from J to reach Digit6 — the movement is one row farther than the U reach, and the finger must stay straight in its column to hit 6 rather than 7 or 5. Words with ุ: ทุก (ท, ุ, ก), ทุน (ท, ุ, น), สุข (ส, ุ, ข), ดุ (ด, ุ), หุง (ห, ุ, ง), รุก (ร, ุ, ก). Every one of these is fully typeable today — ทุก is common, often in ทุกวัน and ทุกที่.
The long ู adds the Shift chord: left pinky holds Shift while the right index presses Digit6, then both release. รู (ร, ู), หู (ห, ู), ดู (ด, ู), ปู (ป, ู), พู (พ, ู), สูง (ส, ู, ง). The chord is the lesson's only Shift character, and it teaches the opposite-hand rule in miniature: the key is on the right, so the Shift hand is the left. Because Digit6's two characters are a short–long pair, a missed Shift silently turns a long /u/ into a short one — หู (ear) becomes หุ, which is not a word — the failure mode is real, and the drill makes you feel it before you trust the chord.
The right-index cluster
Put the previous sections together and one fact stands out: this lesson hands six of its seven keys to the right index finger — ั on Y, ี on U, ึ on Digit7, ื on N, ุ on Digit6, and ู on the same Digit6 with Shift. The only exception is ิ on B for the left index. That is how Kedmanee is laid out. The right index already owns the two most frequent tone marks (่ on J, ้ on H), the top-row vowels ั and ี, and ท on the bottom row beside ื.
The concentration has a cost: fatigue and confusion inside the column. The five keys Y, U, Digit7, N, Digit6 are within one finger's strip, and at speed the differences between them are millimetres. That is why this lesson's drill emphasises column alternation rather than whole-pool randomness — ั, ี, ึ, ื, ุ in sequence forces the finger to calibrate five positions in a row, and the misses it produces are the finger's map being redrawn. If the right index starts aching mid-session, drop the hands and shake them out; a tired finger drifts one key left or right, and all the training in the world cannot stop a drifted press from being wrong.
Read the heatmap in this lesson by column, not by vowel. If U is hot, the right index's top-row calibration is off — drill ี beside ั and ร, its neighbours. If B is hot, the left index is struggling with the bottom-left strip — drill ิ beside อ and ื, the keys around it. If Digit6 and Digit7 are hot, the number row itself is the problem, and every vowel on it will wobble until the two-row reach from J is drilled straight. The heatmap groups these keys for a reason: fix the position, and every vowel sharing it stops missing at once.
- Alternate ั and ี: Y, U, Y, U — the two top-row keys one step apart.
- Alternate ื and ึ: N, Digit7, N, Digit7 — bottom row to number row, the long vertical.
- Alternate ุ and ู: Digit6, Shift+Digit6, Digit6, Shift+Digit6 — the same key, felt twice.
Technique
The rule is one sentence: type the consonant, then the vowel that belongs to it, in the order the marks are written — and for stacked vowels the writing order is consonant first, mark second, regardless of where the mark renders. The input engine repositions the mark above or below the consonant automatically; the typist never moves the cursor or presses special keys to stack. A syllable like ดี is two keystrokes, กัน is three, ทุก is three. There is no fourth 'stack' action anywhere in the system, and believing there is one is the most common conceptual bug this lesson removes.
- Always type the consonant before the stacked vowel, even though the vowel renders above or below it. The operating system's Thai input engine handles the visual stacking; your job is the keystroke sequence.
- For ู (Shift+Digit6), press the left Shift with your left hand while your right hand types Digit6 — using the opposite hand's Shift from the character key keeps both presses comfortable.
- When drilling ิ (B, bottom-left index) back-to-back with ี (U, top-right index), feel the full diagonal contrast: one finger moves down-left, the other up-right. Exaggerating the contrast early prevents later confusion.
- Place the left pinky on Shift first; it stays down for the whole chord.
- Press Digit6 with the right index while Shift is still held.
- Release Shift after the key registers — release order matters more than press order.
- Type รู twice through, then alternate รู and รุ, feeling the chord enter and leave.
The number-row reaches need their own technique. From the right index's home at H (the trainer's marked home), Digit6 and Digit7 are two rows up: the finger extends at the knuckle, travels past U/Y, and presses with the fingertip, then drops straight back. The wrist does not slide right; the finger's own column contains both keys. It helps to think of Digit7 as 'U's upstairs neighbour' and Digit6 as 'Y's upstairs neighbour' — the number row is the third floor of the same columns you already drilled in the reaches lesson. If Digit7 keeps coming out as Digit6, the finger is collapsing diagonally instead of travelling straight up.
Common mistakes
The most common confusion is between ิ on B and ี on U. They look alike — both thin vertical strokes above the consonant, the only difference a length mark — and they sit on opposite sides of the keyboard: bottom-row left for ิ, top-row right for ี. The confusion appears exactly when you rely on the shape instead of the word's spelling (คิด takes ิ, ดี takes ี). The fix is drilling the pairs in words: ริม, ดี, ผิด, ปี until the shape's key is decided by the word, not by the eye.
The second cluster of mistakes is the short–long pair slips: ื typed instead of ึ, ุ instead of ู, or the reverse. ื on N and ึ on Digit7 sit at opposite ends of the same finger's strip, bottom row and number row, and a tired index finger lands on the wrong floor; ุ and ู are the same key, so the slip there is a Shift failure — pressing Digit6 with Shift held when a short vowel was meant, or releasing Shift early when a long one was meant. Both errors are position errors wearing a different coat. The column alternations in the practice plan are the specific remedy.
The third mistake is subtler and worth naming because it survives into advanced typing: hesitating about whether a stacked vowel is needed at all, then inserting it late. Because the mark renders above the consonant, beginners sometimes type the consonant, type a following letter, and only then notice the missing vowel — producing ก, น, then a late ั, which the engine attaches to the earlier marks and corrupts the whole syllable. Read the word before typing it: the marks are part of the syllable's first pass, not an edit pass.
- Do not rely on the visual shape of the mark — rely on the word's spelling.
- Do not let a tired right index drift between the top row and the number row.
- Do not insert a forgotten stacked vowel as an afterthought — recompose the syllable.
A practice plan
The drill for this lesson draws from the seven vowels plus the consonants and trailing vowels you know, presenting full syllables. Because the pool is larger than anything before it, begin each session with a per-vowel sweep — every consonant you know against ิ, then ี, then ั, then ื, then ึ, then ุ, then ู — before letting the mixed drill take over. The sweeps are the lesson's real content; the mixed drill is where the sweeps get tested at an unfamiliar pace.
Watch the right index's load. In one mixed session the finger may visit Y, U, Digit7, N, and Digit6 dozens of times while also covering H, J, and M. If accuracy dips in the second half of a session, that is fatigue, not forgetting — end the session, rest, and come back. Two shorter sessions with a break beat one long grind, exactly as in the reaches lesson. The number-row keys are the first thing to degrade when the finger tires, so treat a late-session Digit6/Digit7 error wave as the signal to stop.
- Warm up: per-vowel sweeps — every consonant against ิ, ี, ั, ื, ึ, ุ, ู — one minute each.
- Main set: the skill drill's mixed pool for five minutes at a pace where the first press is usually right.
- Close: the family words once each (ผิด ริม ดิน นิด ดี มี ปี กัน รัก นัก มัด ยัง ฝัน วัน มัน ยืน ยืม ลืม มืด กลืน หนึ่ง ยึด มึน ทุก ทุน สุข หุง รุก รู หู ดู ปู สูง), then the heatmap.
How stacked marks are stored, and why apps lose them
Stacked marks are about a fifth of all Thai text. In our Wikipedia sample, which is formal written Thai, 20.8% of the 2.5 million Thai characters are marks drawn above or below another letter: vowels, tone marks, and signs such as ็ and ์. In 73,372 places a single consonant carries two of them. The commonest pair is ี followed by ่, which occurs 22,319 times, most of them in ที่.
| Word | Code points in typing order | Marks on one consonant | Times in sample |
|---|---|---|---|
| ที่ | ท ี ่ (M, U, J) | ี and ่ above ท | 11,614 |
| นี้ | น ี ้ (O, U, H) | ี and ้ above น | 1,430 |
| หนึ่ง | ห น ึ ่ ง (S, O, Digit7, J, Quote) | ึ and ่ above น | 859 |
| รู้ | ร ู ้ (I, Shift+Digit6, H) | ู below ร, ้ above it | 133 |
| สั้น | ส ั ้ น (L, Y, H, O) | ั and ้ above ส | 96 |
A mark has no width of its own. The font draws it relative to the letter before it, so it needs room above or below the line. When the line height is tight, the tone mark on top of ึ, or the foot of ุ, runs into the next line or is cut off by the edge of its box. When a program puts each code point in a separate box, the mark has nothing to stack on. Fonts then draw it on a dotted circle, like ◌่, or it lands in the wrong place.
ThaiTyper had exactly this bug. Until September 2026 the games drew one box per code point, and in words like หนึ่ง and สั้น the tone mark could not stack on its vowel and disappeared. Every typing surface now uses one renderer that groups each consonant with the marks after it, and a pre-posed vowel with the consonant it leads, into a single unit. The caret still moves one code point at a time inside that unit. We also measured the spacing: stacked marks need a line height of at least 1.46, and the prompt now uses 1.7 so the caret underline clears the next line.
Which stacked-vowel keys learners miss
| Vowel | Key | Finger and row | Miss rate | Times targeted |
|---|---|---|---|---|
| ี | U | Right index, top row | 7.9% | 1,959 |
| ั | Y | Right index, top row | 12.3% | 3,082 |
| ึ | Digit7 | Right index, number row | 13.3% | 518 |
| ื | N | Right index, bottom row | 13.5% | 1,246 |
| ิ | B | Left index, bottom row | 15.9% | 1,680 |
| ุ and ู | Digit6 (ู is Shift+Digit6) | Right index, number row | 19.0% | 1,459 |
ี on U is the only stacked-vowel key below the trainer's 11.1% average across all keys. ิ on B is missed at twice its rate, although the two marks look almost the same on screen. The number-row key 6, which carries both ุ and ู, is the fourth most-missed key in the whole trainer. Because heat is recorded per physical key, that figure cannot say whether the miss was the key itself or the Shift for ู.
Questions learners ask
Why does a Thai vowel show up on a dotted circle?
Because the mark was drawn without a consonant underneath it. That happens when the vowel is typed before its consonant, when a program draws each code point in its own box, or when a mark sits at the start of a line. Type the consonant first, then the mark: ที่ is ท, then ี, then ่. If the text is correct and it still happens, the app is splitting the cluster.
Why are Thai tone marks cut off at the top of the line?
The line height is too small for two stacked marks. A tone mark on top of an upper vowel, as in ที่ or หนึ่ง, needs extra room above the line, and a box with tight spacing clips it. When we measured ThaiTyper's prompt, a line height of 1.46 was the minimum for stacked marks to clear the next line. In your own documents or CSS, raise the line spacing until they show.
Do you type the vowel or the tone mark first in ที่?
The vowel first, then the tone mark. ที่ is ท on M, ี on U, then ่ on J, all three with the right index. The same order holds for every stacked vowel: นี้ is น, ี, ้, and หนึ่ง is ห, น, ึ, ่, ง. Typed the other way round, the text is stored in a different order and may not match what a search or spell checker expects.
Where is sara uu (ู) on the Thai keyboard?
On Kedmanee it is Shift+6. The unshifted 6 key gives the short ุ, so the long and short pair share one key on the number row, under the right index. Hold Shift with the left little finger, press 6 with the right index, and release Shift after the key registers. ดู is ด on F, then Shift+6.
What comes next
The pre-posed-vowel lesson turns the order rule around: เ, แ, โ, ใ, ไ print to the left of the consonant but are typed before it. เ sits on G — a home-row key next to ด — so the vowel-first habit starts from a position your left index already knows. With เ in hand, the ื family explodes: เมือง (เ, ม, ื, อ, ง), เรือน (เ, ร, ื, อ, น), เนื้อ (เ, น, ื, ้, อ — the tone mark arriving in the tone lessons), and whole clusters of everyday words become typeable in one lesson.
The tone-mark lessons then add ่ on J and ้ on H — right-index home-row keys that attach after the consonant and before trailing vowels, exactly as the keystroke-order section of the previous lesson described. Combined with the stacked vowels, that completes the canonical syllable shape: pre-posed vowel, consonant, above-vowel, tone, trailing vowel, final. This lesson's seven keys are the middle of that shape, and they are the ones a typist's right index calibrates a thousand times a session.
← Previous: Trailing Vowels: า ะ ำ
Related guides
Five Thai vowels are written to the left of their consonant on screen, yet you type them before the consonant. This feels backwards until you understand the rule — then it becomes the most natural thing in the world.
The three most essential trailing vowels sit in comfortable positions and follow consonants in the same left-to-right order you read them. They are the gentlest introduction to Thai vowel typing.
Your fingers rest on the home row for a reason — it holds seven of Thai's most frequent consonants. Master this row first and every other key becomes a short round trip.