Подписи
- Окружающая поверхность календаря должна сообщать, какой месяц и год сейчас просматривает пользователь.
Поведение клавиатуры
ОбъявлениеПереведите фокус на демо и нажмите клавишу из таблицы.
| Клавиша | Действие |
|---|---|
| ←→ | Переносит фокус на предыдущий или следующий день с переходом на соседнюю неделю, пропуская отключённые дни. В RTL стрелки зеркальны: ← ведёт к следующему дню. |
| ↑↓ | Переносит фокус на тот же день недели предыдущей или следующей недели, останавливаясь на краю месяца. |
| HomeEnd | Переносит фокус на первый или последний день недели. |
| Ctrl + HomeCtrl + End | Переносит фокус на первый или последний день месяца. |
| Page UpPage Down | Переносит фокус на тот же день недели в первой или последней неделе месяца. Сам месяц не меняется: листание месяцев — задача Calendar. |
| EnterSpace | Выбирает день в фокусе. |
- Навигация с клавиатуры наследуется от
DataGridPickerи семантики элементов сетки.
Поведение фокуса
- Без
defaultActiveточкой табуляции становится сегодняшний день, если он в видимом месяце, иначе — первый выбранный день в нём, иначе — его первый день; если позже вы меняетеmonth, передайтеactive/onChangeActive, чтобы точка табуляции оставалась в поле зрения - Поведение фокуса и активной ячейки должно оставаться видимым для выбранных, исключённых и отключённых дат.
Семантика для скринридеров
- Роли сетки и семантика состояний приходят от нижележащих примитивов выбора и сетки.
- Подписи дней недели и периода должны быть синхронизированы с отрендеренным месяцем.
Семантика формы
DayPicker— подсистема выбора, а не нативное поле формы.
Риски доступности
- собственный рендер дня скрывает состояние фокуса или выбора
- прокручиваемое перелистывание месяцев с неясным объявлением периода