IPAbet
The design
IPAbet is a fast and memorable keyboard for typing the International Phonetic Alphabet — a system-wide input method, with the same engine in any browser. Unshifted keys type their normal characters; the phonetic symbols live on Shift and Option.
Where character pickers and escape schemes like X-SAMPA convert a transliteration after the fact, IPAbet emits genuine Unicode as you type. The notation is compositional — most symbols are a base letter plus a single modifier, s⇧H→ʃ t⇧R→ʈ n⇧G→ŋ — and nearly every choice in it follows from five constraints.
Five constraints
- Identity preservationhardA Latin letter that is already an IPA symbol keeps its value, and unshifted keys stay native US: s→st→tm→m.
- Length bound — two charactershardNo phonetic segment costs more than a base letter and at most one modifier: t⇧R→ʈ. (Diacritics are a separate prefix, dead-key layer.) This bounds both the effort of any symbol and the amount of text the engine ever has to look at.
- Local determinismhardEvery segment is unambiguous and decidable from the characters right at the cursor — no lookahead, no backtracking, no global state. This is the property that lets the input method be stateless: it commits each keystroke instantly and rewrites the character before the cursor, the way Korean input methods do, because it never has to remember anything.
- Phonetic operator algebrastructuralThe remaining symbols are generated by applying a small set of operators to bases, with open-ended rules preferred over lists. Most operators are articulatory moves whose letter names the feature: ⇧R retroflexes a coronal — t⇧R→ʈ — ⇧J palatalizes, ⇧W labializes. ⇧H is the orthographic h-digraph doing its several traditional jobs: t⇧H→θ spirantizes, s⇧H→ʃ hushes, and vowels lax (i⇧H→ɪ). An operator applies wherever its move makes phonetic sense, which is what makes the system a grammar you can read rather than a table you memorize. Voicing is not an operator; it rides the base letter (s/z).
- Convention reusebiasAmong encodings that satisfy the rest, prefer the one users already know: pinyin (s⇧H→ʃn⇧G→ŋ), the Arabic chat alphabet (2⇧H→ʔ7⇧H→ħ), X-SAMPA (4⇧H→ɾ), and English spelling (w⇧H→ʍ, from wh). This keeps it guessable rather than idiosyncratic.
The rough edges
They are predicted, not hidden. A sound more than one articulatory step from any Latin anchor cannot be reached in two keys, so the voiced palatal fricative ʝ gets an approximate g⇧J rather than a clean derivation — the length bound binding against a sparse corner of the alphabet. The constraints account for the compromises, not just the wins.
The algebra, animated
The operator algebra is easiest to see in motion. Every vowel and every pulmonic consonant below sits at its position on the official chart; choose an operator to light up the arrows that generate the derived symbols from their bases — the same ⇧H, ⇧R, ⇧J that you type. Drag the slider to morph the vowel quadrilateral into acoustic F1×F2 space, or the consonant grid into the vocal tract. Click any symbol to hear it.
Vowels
Select a modifier to see how derived vowels hang off the seven bases.Every non-base vowel is base + one trailing capital (except the central-vowel series on 5, which start from schwa).
Click any vowel to hear its recording (Wikimedia Commons, isolated phonemes).Rhoticity ˞ is vowel-then-⌥R. Formant values are illustrative averages.
Pulmonic consonants
Select an operator to see how derived consonants hang off the ~20 base letters.Every non-base symbol is a base plus one trailing capital (R J Q G H V L), or a ⇧-digit / ⌥-mark.
Click any symbol to hear its recording (Wikimedia Commons, isolated phonemes).Non-pulmonic consonants (clicks, implosives, ejectives) and the co-articulated / Other-Symbolconsonants live off this grid.
Coverage
IPAbet covers every symbol on the standard IPA chart — consonants, vowels, diacritics, suprasegmentals, pulmonic and non-pulmonic — plus the complete extIPA 2015 diacritic set, the extensions for disordered speech. (extIPA’s symbol letters — ʬ ʭ ʪ ʫ ʩ ꞎ ʞ — are not yet assigned.) Even the far corners follow the algebra: ɧ, the Swedish sj-sound, is x ⇧H (⇧H is the hushing digraph, and the IPA defines ɧ as ʃ and x pronounced simultaneously); the tie bar has both placements, ⌥J above (t͡s) and ⌥⇧J below for when descenders collide (t͜s). The full mapping is on the chart, in machine-readable form, and as raw JSON.