Перейти к содержимому
v2.5.0
English
Русский
Документация

DayPicker

DayPicker — низкоуровневая подсистема сетки дней, на которой строится стек календаря.

Подписи

  • Окружающая поверхность календаря должна сообщать, какой месяц и год сейчас просматривает пользователь.

Поведение клавиатуры

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

Поведение фокуса

  • Без defaultActive точкой табуляции становится сегодняшний день, если он в видимом месяце, иначе — первый выбранный день в нём, иначе — его первый день; если позже вы меняете month, передайте active / onChangeActive, чтобы точка табуляции оставалась в поле зрения
  • Поведение фокуса и активной ячейки должно оставаться видимым для выбранных, исключённых и отключённых дат.

Семантика для скринридеров

  • Роли сетки и семантика состояний приходят от нижележащих примитивов выбора и сетки.
  • Подписи дней недели и периода должны быть синхронизированы с отрендеренным месяцем.

Семантика формы

  • DayPicker — подсистема выбора, а не нативное поле формы.

Риски доступности

  • собственный рендер дня скрывает состояние фокуса или выбора
  • прокручиваемое перелистывание месяцев с неясным объявлением периода