Note dialog — accessibility
Everything in dialog.a11y.md and formless-dialog.a11y.md holds (Escape order, focus trap, inert background, scroll lock, chip row). This page covers what the note and its voice input add.
Keyboard
- Escape closes the window after flushing the autosave; there is no unsaved state to confirm.
- Chips are buttons:
Tabreaches Diktovat and Přidat audio after the link chips;Enter/Spaceactivates them. While recording, the widened chip exposes pause/resume and Hotovo — přepsat as separate buttons. - Přidat audio with Plaud opens a menu: arrow keys move over Nahrát soubor / Z Plaudu,
Enterpicks, Escape closes the menu only. - Recording items: the native
<audio controls>is keyboard operable; the transcriptsummarytoggles withEnter/Space; Odebrat audio is an icon button with a confirmation dialog.
ARIA
- The recordings block has
aria-labelNahrávky poznámky; each remove button hasaria-labelOdebrat audio (icon only). - The dictation chip is labelled Diktovat; while recording it holds separate icon buttons with
aria-labelPozastavit / Pokračovat and Hotovo — přepsat. The red dot and the level meter are decorative (aria-hidden); the leaving layer of the morph isaria-hiddenandinert. - The Add audio menu is a
Popoverwithrole="menuitem"items andaria-labelPřidat audio; the file input is hidden and triggered from the chip. - The save state in the header is a
role="status"region: a screen reader hears the change in words (Ukládá se, Uloženo, Chyba, Konflikt).
Focus
- Opening a new note focuses the body editor; opening an existing note leaves it in reading mode, and a click or the
+menu moves focus into the editor. - Dictated text and the merged summary are appended without moving focus or the caret.
- The Plaud picker is its own dialog; closing it returns focus to the chip row.
Contrast
- Recording meta and stages use
--fg-secondary/.acrm-mutedon--surface-100; the live dictation dot is--criticaland is always accompanied by the running clock, so the state is not colour-only. - The hairline above the recordings is
--border; it separates, it does not carry meaning.
Known limits
- Processing stages update by polling (every 2 s while something is processing); the change is not announced by a live region.
- The transcript is plain text without speaker turns (meeting recordings have the dialogue view; note recordings are single-speaker dictaphone takes).
- Microphone permission denial is reported by a toast; there is no in-dialog retry prompt.
Source: docs/dialog/note-dialog.a11y.md · GitLab