Порядок фокуса и модальные окна: ловушка таба и возврат на триггер
WCAG 2.4.3 и практика: куда уходит фокус при открытии диалога, как закрыть клавиатурой и не потерять пользователя в оверлее.
Фокус должен переходить внутрь модального окна при открытии и возвращаться на элемент, который его вызвал, при закрытии — иначе пользователи клавиатуры «выпадают» в фон страницы.
Пока диалог открыт, таб не должен уводить фокус под оверлей: используйте inert на корне или портал с aria-modal.
- Understanding Focus Order — WCAG 2.2 — Критерий 2.4.3 и заметки.
- WAI-ARIA Authoring Practices: Dialog Pattern — Рекомендуемая клавиатурная модель.
Проверка перед релизом
Пройдите сценарий только с Tab/Shift+Tab и Esc; затем с NVDA/VoiceOver — объявляется ли роль dialog и заголовок.
Не полагайтесь на `outline: none` без заметной замены — это бьёт по 2.4.7 Focus Visible.