Если в календарь записи можно попасть клавиатурой, выйти из него тоже должно быть возможно клавиатурой. WCAG 2.1.2 No Keyboard Trap требует сообщить способ выхода, если для него нужен иной метод, чем обычные стрелки, Tab или другие стандартные способы. Красивая рамка на каждой дате не решает отсутствие выхода.
Антон боится выбрать дату лишь ради выхода
В вымышленной ситуации Антон открывает форму тренера с клавиатуры. Попадает в календарь, где Tab циклически обходит даты. До следующего поля формы он не доходит, а закрыть календарь мышью не может. Антон опасается, что единственный выход потребует выбрать время, которое ему не подходит.
Тренер воспроизводит именно этот путь на пробной форме: вход в календарь, переходы внутри и попытку выйти без выбора. Разработчику передают не просьбу «улучшить клавиатуру», а конкретное место: цикл остаётся внутри дат, доступной отмены Антон не находит. Закрыть весь сайт не означает вернуть управление формой.
Цикл внутри окна иногда нужен
W3C допускает ограничение фокуса внутри модального окна, если пользователь знает, как его покинуть. В примере источника окно закрывают кнопкой отмены, подтверждения или Esc. Поэтому сам возврат Tab с последнего элемента к первому ещё не доказывает ловушку. Нужно проверить клавиатурный способ завершить или отменить работу окна.
Для учебного календаря Антона выбирают доступную клавиатурой кнопку отмены. Антон открывает окно, просматривает даты, отменяет выбор и возвращается к остальной форме. Это позволяет не принимать неподходящее время только ради выхода. Если виджет использует необычное сочетание клавиш, понятная инструкция должна сообщать его, а не оставлять пользователю угадывать.
Почему нельзя обещать, что везде поможет Esc
В пояснении W3C Esc назван распространённым стандартным способом в средах с физической клавиатурой, но стандартные способы зависят от платформы. Проверка конкретного календаря должна показать действующий выход, а не ограничиться универсальной рекомендацией нажать Escape. Инструкция с неработающей клавишей не освобождает фокус.
После исправления проходят весь эпизод без настоящей заявки: попасть внутрь, открыть нужную дату, отказаться от выбора и продолжить поля формы. Если обновление календаря меняет этот путь, его проверяют заново. Работа мышью в той же форме не заменяет эту пробу Антона.
Фокус виден, но выход всё равно отсутствует
Задача видимого фокуса формы другая: показать, где будет следующее клавиатурное действие. Календарь Антона может выполнять её и одновременно удерживать человека внутри. Увеличение контраста рамки не добавит кнопку отмены и не сообщит сочетание выхода.
Этот разбор касается покидания компонента, не полного аудита записи и не изменения реального расписания. Его итог для клиента прост: просмотреть календарь и отказаться от выбора можно, не доставая мышь и не соглашаясь на ненужную дату.