open-standards/aac/aac-rs/tools/lang
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 3a4c8f25eb fix(aac-core, aac-web): the keyboard review — letter names by ear, standard layouts, keys that keep their size
The alphabet by ear
- Says each letter by its name (keyboard/letter_names.json), never the bare
  key a voice reads as a word, and the app's own words in the language. The
  names are data with a review: drafted, checked by an independent
  back-reading and a register check, disputes decided and checked again
  (rounds 2-3), then a voice check with espeak-ng
  (tools/keyboard/check_letter_names.py). 43 of 45 languages agreed; Amharic
  (ኸ) and Tagalog (z, v, e) are not, and there it says it is not ready yet.
  The readers were AI models, not native speakers, and the table says so.
- Its own speech path (tts::say_cue): the device voice of the language, no
  text_for_speech, and never over or cancelling the person's words; after
  Speak the next cue waits until the message has been said. It does not
  start without a voice that speaks the language, and says why.
- Offers a letter's marks, a kana's forms and an Ethiopic consonant's orders
  after it; reads a lone suggestion as the word; Stop is in the last group;
  a key reaches it from every keyboard. Each choice records whether a tap
  relayed it; "only my own switch or look" is a setting; a message spelled
  with relayed choices is learned only when the person keeps it (Item::Learn)
  with their own yes. A panel open takes the switch first.

Keyboards
- National layouts from published standards, both layers, read from
  xkeyboard-config (tools/keyboard/build_layouts.py): InScript (IS 13194) for
  the nine Indic languages, Kedmanee (TIS 820-2538) for Thai, CRULP phonetic
  for Urdu; Shift's layer is a page at the same positions.
- Defaults follow the access method (kbd::suggested): most used letters first
  for a switch, colour groups (or alphabetical, large keys) for gaze; a key
  size setting. A Board key leaves text mode. Amharic syllable pages have
  Back. Malayalam signs shown bare (WebKit drew two circles).
- Pinyin: each candidate covers its own letters, ranked by the likeliest
  split (不 + 舒服, not 部署 + 副); ▸▸ pages through them; capitals read as
  the letters; no conversion during a device IME's composition; a failed
  download is said once and retried with back-off; the note says exactly what
  it does.

Access and fit
- With the on-screen keys, the box never takes a switch's Space or Enter, and
  a chosen suggestion no longer moves the focus into it.
- A look must leave a key before it can choose again.
- Keys never shrink below 24 x 32 px: on a phone on its side the box goes
  beside the keys, and the keyboard scrolls with the scan's highlight kept in
  view; the colour frame's text keeps its end in view; the notes fold to a
  line; the colour marks sit on badges with 4.5:1 ink; toggles show in dark
  and high-contrast; dir=auto on the box and what by-ear shows.
- Phrases page: Add to bar and Recent. Unreadable keyboard settings are not
  overwritten at start. First letters keeps where it reads from when text
  mode comes back.

Credits: Settings -> Keyboard lists every word list's source and licence; the
pinyin licence file carries pypinyin's, pinyin-data's, phrase-pinyin-data's
and the Unicode notices in full (the generator pins pypinyin 0.55.0); the
compose table names the Unicode data it comes from. SPEC §12 and
spec/keyboard.md updated.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 02:18:26 -04:00
..
pair_filter feat(access-core, aac-core): Bayesian selection that never moves a cell, and prediction in 43 languages 2026-09-29 11:28:26 -04:00
build_packs.py feat(access-core, aac-core): Bayesian selection that never moves a cell, and prediction in 43 languages 2026-09-29 11:28:26 -04:00
build_pinyin.py fix(aac-core, aac-web): the keyboard review — letter names by ear, standard layouts, keys that keep their size 2026-10-05 02:18:26 -04:00
sources.lock.json feat(access-core, aac-core): Bayesian selection that never moves a cell, and prediction in 43 languages 2026-09-29 11:28:26 -04:00