foundation
Клавиатурная навигация и фокус
Держите controls достижимыми, focus видимым, DOM-порядок осмысленным, а кастомные действия — с клавиатуры.
Доступ с клавиатуры — базовое требование. Интерактивные элементы достижимы в логическом DOM-порядке, показывают видимый focus, активируются ожидаемыми клавишами и без ловушек. Нативные `a`, `button`, `input`, `select`, `textarea`, `summary` и `dialog` сокращают кастомный focus-код.
Модальные dialog переносят focus внутрь, удерживают Tab до закрытия и возвращают focus на триггер. Skip links обходят повторяющуюся навигацию.
На интервью: focus в модалке, skip links, tab order, roving `tabindex`, почему `tabindex` > 0 — smell.
Типовые ошибки: outline убран без замены; только click; DOM-порядок ≠ визуальный.
Компромисс: визуальный tab order против поддерживаемой DOM-последовательности — чините структуру, а не положительный `tabindex`.
Чеклист:
- Tab, Shift+Tab, Enter, Space.
- Видимый focus.
- Избегайте `tabindex` > 0.
- Focus dialog при open/close.