Подписи
DateRangeField нужна подпись, которая объясняет и бизнес-смысл, и то, включает ли диапазон границы или ограничен иначе. Одного плейсхолдера недостаточно.
Поведение клавиатуры
ОбъявлениеПереведите фокус на демо и нажмите клавишу из таблицы.
| Клавиша | Действие |
|---|---|
| EnterSpace | На кнопке-триггере: открывает или закрывает всплывающий календарь. Фокус остаётся на кнопке. |
| Tab | С открытого триггера: переносит фокус во всплывающий календарь, на первую кнопку шапки. |
| Enter | На дне во всплывающем календаре: первое нажатие начинает новый диапазон, второе завершает его, и диапазон записывается в поле. Остальные клавиши календаря работают как в Calendar. |
| Shift + ←Shift + →Shift + ↑Shift + ↓ | На первом или последнем дне диапазона: двигает этот край диапазона вместе с фокусом. |
| Escape | Закрывает всплывающий календарь и возвращает фокус на кнопку-триггер. |
- Вводить можно, не открывая календарь. Внутри календаря навигация только перемещает фокус; значение меняется, только когда выбран день.
- Ввод проверяется в календарной системе поля: одиночная цифра, с которой не может начаться двузначный сегмент, дополняется нулём, полные сегменты ограничиваются (день — длиной месяца), а полное значение ограничивается
min/max. - Введённый в обратном порядке диапазон переставляется так, чтобы более ранняя дата шла первой.
Поведение фокуса
- Обычно фокус начинается в поле ввода.
- Открытие и закрытие календаря не должны уводить фокус от поля диапазона.
- Использование во вложенных оверлеях нужно проверять на восстановление фокуса и закрытие.
Семантика для скринридеров
- Поле должно сообщать, что оно принимает дату начала и дату окончания, а не одну непрозрачную строку.
- Вспомогательный текст должен объяснять формат диапазона и любые правила бронирования или отчётности.
- Иконке-кнопке триггера всё равно нужна доступная подпись, например «Открыть календарь диапазона дат».
Семантика формы
DateRangeFieldведёт себя как поле формы через нижележащий input.- Сообщения об ошибках должны явно покрывать неполные и перевёрнутые диапазоны.
Риски доступности
- Неоднозначная подпись, которая не объясняет смысл диапазона.
- Текст ошибки помечает поле как невалидное, но не объясняет, какой стороны не хватает.
- Композиция оверлея скрывает выбор дат из-за обрезки или проблем с фокусом.