Модуль 11 · Урок 41

Semantics, keyboard і focus

Accessible UI передає не лише pixels: assistive technology потребує programmatic role, accessible name, state, value, relationships та predictable focus. Manual task flow перевіряє реальну operability, а не лише scanner score.

Role / nameKeyboardFocusScreen reader

Programmatic contract control

Visual button має бути control із correct role, meaningful name, current state/value і keyboard/touch behavior. Native semantic elements мають built-in behavior; custom widgets потребують повної pattern implementation. Placeholder або icon alone не завжди є достатньою label.

PropertyQA oracle
RoleТип control відповідає interaction: button, link, checkbox, heading тощо.
NameКоротко й однозначно описує purpose у context; visible label узгоджений.
State/valueChecked, expanded, selected, disabled, current та value оновлюються.
RelationshipLabel, description, error, group, dialog і ownership programmatically exposed.

Keyboard path

Виконайте main task тільки клавіатурою: Tab/Shift+Tab, Enter/Space, arrows/Escape за widget pattern. Перевірте logical focus order, visible indicator, no trap, skip mechanism, not-obscured focus, operability та відсутність context change лише від focus.

`tabindex` не ремонтує semantics

Positive tabindex часто створює штучний порядок, що розходиться з DOM/reading order. `div role=button` без keyboard/state/focus behavior лишається неповним control.

Dialogs і dynamic changes

При open dialog focus переходить у meaningful location, background не стає випадково operable, Escape/close працюють за contract, після close focus повертається до trigger/логічного successor. Validation error має бути perceivable, associated with field, actionable; focus не крадуть без потреби.

EntryTrigger оголошений; focus move predictable.
InsideRole/name, logical order, controls і no trap.
StatusErrors/success/dynamic updates exposed без disruptive focus jump.
ExitClose працює, focus повертається, task context збережений.

Screen-reader task, не «потицяти свайпом»

На supported AT/browser/OS виконайте головні tasks: heading/landmark navigation, control announcement, forms/errors, modal, status update. Запишіть exact AT/OS/browser/build і gestures/keys. TalkBack/VoiceOver результати не переносяться автоматично між platforms.

Практика

Заповніть `semantic-control-audit.csv`, `keyboard-focus-log.csv` і `screen-reader-checklist.csv` для search, form/error та confirmation flow BookFlow.

Офіційні джерела

Практична перевірка · урок 41 з 44

Закріпіть матеріал уроку

Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.

1. Що описує accessible role?
2. Який accessible name якісний?
3. Що треба оголошувати для checkbox?