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

DateTimeField

DateTimeField — составной компонент для совместного ввода даты и времени, который согласует ввод с клавиатуры, необязательный выбор в календаре и правила метки времени в одном поле.

Подписи

DateTimeField нужна подпись, которая объясняет ожидания и к дате, и ко времени. Если важен часовой пояс, укажите его в тексте подсказки, а не рассчитывайте, что пользователь догадается сам.

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

ОбъявлениеПереведите фокус на демо и нажмите клавишу из таблицы.
КлавишаДействие
↑↓С кареткой в часах: меняет их на единицу. В минутах или секундах: меняет их на timeStep. Сегмент переходит по кругу, не затрагивая остальные; в части с датой стрелки не меняют значение. timeStep={0} выключает изменение стрелками.
EnterSpaceНа кнопке-триггере: открывает или закрывает всплывающий календарь. Фокус остаётся на кнопке.
TabС открытого триггера: переносит фокус во всплывающий календарь, на первую кнопку шапки.
EnterНа дне во всплывающем календаре: записывает день в поле, сохраняя время. Остальные клавиши календаря работают как в Calendar.
EscapeЗакрывает всплывающий календарь и возвращает фокус на кнопку-триггер.
Каждая строка проверена в настоящем браузере: Playwright нажимает клавишу в Chromium и смотрит, где оказались фокус и активный элемент.
  • Вводить можно, не открывая календарь. Внутри календаря навигация только перемещает фокус; значение меняется, только когда выбран день.
  • Ввод проверяется в календарной системе поля: одиночная цифра, с которой не может начинаться двузначный сегмент, дополняется нулём, заполненные сегменты ограничиваются (день — длиной месяца), а полное значение ограничивается min / max.

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

  • Обычно фокус начинается в поле ввода.
  • После открытия календаря должно оставаться понятно, как вернуться к вводу даты и времени.
  • Использование во вложенных оверлеях нужно проверять на восстановление фокуса и закрытие.

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

  • Поле должно сообщать ожидаемый формат даты и времени в подписи, подсказке или тексте ошибки.
  • Кнопке-триггеру с иконкой всё равно нужно доступное имя, например «Open calendar».
  • Смысл метки времени — например, часовой пояс рабочего пространства или время запланированного запуска — должен оставаться явным вне пикера.

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

  • DateTimeField ведёт себя как поле формы через нижележащий input.
  • Сообщения об ошибках должны рассматривать значение как одну метку времени, а не как два отдельных фрагмента.

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

  • Отсутствие указаний о часовом поясе там, где продукт от него зависит.
  • Плейсхолдер как единственное объяснение требуемого формата даты и времени.
  • Композиция оверлеев, мешающая поведению клавиатуры или фокуса.