Руководство по новым типам input в HTML5
В HTML5 было введено несколько новых типов <input>
, например электронная почта (email), дата (date), время (time), цвет (color), диапазон (range) и т. д., чтобы сделать формы более интерактивными. Однако, если браузер не сможет распознать эти новые типы <input>
, он будет обрабатывать их как обычные текстовые поля.
В этом разделе мы кратко рассмотрим каждый из новых типов <input>
:
- color
- date
- datetime-local
- month
- number
- range
- search
- tel
- time
- url
- week
Еще был введен тип datetime
, но на данный момент он уже устарел.
Input type Color
Тип color
позволяет пользователю выбрать цвет из палитры и возвращает значение цвета в шестнадцатеричном формате (#rrggbb
). Если вы не укажете значение, по умолчанию вернется
— это черный цвет.
Посмотрим следующий пример, чтобы понять, как это работает:
<form> <label for="mycolor">Select Color:</label> <input type="color" value="#00ff00"> </form>
Ввод цвета (т.е. type="color"
) поддерживается во всех современных веб-браузерах, таких как Firefox, Chrome, Opera, Safari (12.1+), Edge (14+). Не поддерживается Microsoft Internet Explorer и более старой версией браузеров Apple Safari.
Input type Date
Тип date
позволяет пользователю выбрать дату в раскрывающемся календаре.
Значение даты включает год, месяц и день, но не время.
<form> <label for="mydate">Select Date:</label> <input type="date" value="2019-04-15"> </form>
Ввод даты (т.е. type="date"
) поддерживается браузерами Chrome, Firefox, Opera и Edge. Не поддерживается браузерами Internet Explorer и Safari.
Input type Datetime-local
Тип datetime-local
позволяет пользователю выбирать как локальную дату и время, включая год, месяц и день, так и время в часах и минутах.
Посмотрим следующий пример, чтобы понять, как это работает:
<form> <label for="mydatetime">Choose Date and Time:</label> <input type="datetime-local"> </form>
Тип ввода type="datetime-local"
не поддерживается браузерами Firefox, Safari и Internet Explorer. В настоящее время поддерживается браузерами Chrome, Edge и Opera.
Тип email
позволяет пользователю вводить адрес электронной почты. Он очень похож на стандартный тип ввода текста, но если он используется в сочетании с атрибутом required
, браузер будет искать шаблон электронной почты, чтобы обеспечить правильное форматирование адреса.
Посмотрим на примере:
<form> <label for="myemail">Enter Email Address:</label> <input type="email" required> </form>
Вы можете стилизовать поле input
электронной почты для различных состояний валидации, когда значение с использованием псевдоклассами: :valid
, :invalid
или :required
.
Проверка правильности ввода электронной почты (то есть type="email"
) поддерживается всеми основными браузерами, такими как Firefox, Chrome, Safari, Opera, Internet Explorer 10 и выше.
Input type Month
Тип month
позволяет пользователю выбрать месяц и год из выпадающего календаря.
Значением является строка в формате «YYYY-MM», где YYYY — четырехзначный формат года, а MM — номер месяца. Давайте посмотрим пример, чтобы увидеть, как это работает:
<form> <label for="mymonth">Select Month:</label> <input type="month"> </form>
Тип ввода type="month"
не поддерживается браузерами Firefox, Safari и Internet Explorer. В настоящее время поддерживается в браузерах Chrome, Edge и Opera.
Input type Number
Тип number
может использоваться для ввода числового значения. Вы также можете разрешить пользователю вводить только допустимые значения, используя дополнительные атрибуты min
, max
и step
.
Следующий пример позволит вам ввести числовое значение от 1 до 10.
<form> <label for="mynumber">Enter a Number:</label> <input type="number" min="1" max="10" step="0.5"> </form>
Ввод чисел (т.е. type="number"
) поддерживается всеми основными веб-браузерами, такими как Firefox, Chrome, Safari, Opera, Internet Explorer 10 и выше. Internet Explorer, распознает число, но не предоставляет кнопок увеличения и уменьшения.
Input type Range
Тип range
может использоваться для ввода числового значения в указанном диапазоне. Он работает очень похоже на number
, но предлагает более простое управление для ввода чисел.
Посмотрим на примере:
<form> <label for="mynumber">Select a Number:</label> <input type="range" min="1" max="10" step="0.5"> </form>
Ввод диапазона (то есть type="range"
) поддерживается всеми основными веб-браузерами, такими как Firefox, Chrome, Safari, Opera, Internet Explorer 10 и выше.
Input type Search
Тип search
можно использовать для создания полей поиска.
Поле поиска обычно ведет себя как обычное текстовое поле, но в некоторых браузерах, таких как Chrome и Safari, как только вы начинаете вводить текст в поле, в правой части поля появляется небольшой крестик, который позволяет быстро очистить поле поиска. Давайте посмотрим на примере:
<form> <label for="mysearch">Search Website:</label> <input type="search"> </form>
Ввод поиска (то есть type="search"
) поддерживается всеми основными веб-браузерами, такими как Firefox, Chrome, Safari, Opera, Internet Explorer 10 и выше.
Input type Tel
Тип tel
можно использовать для ввода номера телефона.
Браузеры изначально не поддерживают проверку ввода tel
. Однако вы можете использовать атрибут placeholder
, чтобы помочь пользователям ввести телефонный номер в правильном формате или указать регулярное выражение для проверки ввода с помощью шаблона. Давайте посмотрим на пример:
<form> <label for="myphone">Telephone Number:</label> <input type="tel" placeholder="xx-xxxx-xxxx" required> </form>
Проверка ввода телефона (т.е. type="tel"
) в настоящее время не поддерживается ни одним браузером, поскольку формат телефонных номеров сильно различается в разных странах, но он все еще полезен. Мобильные браузеры отображают цифровую клавиатуру для ввода телефонных номеров.
Input type Time
Тип time
можно использовать для ввода времени (часы и минуты).
Браузер может использовать 12- или 24-часовой формат для ввода времени, основываясь на настройках времени локальной системы пользователя.
<form> <label for="mytime">Select Time:</label> <input type="time"> </form>
Тип ввода type="time"
не поддерживается браузерами Internet Explorer и Safari. В настоящее время поддерживается браузерами Chrome, Firefox, Edge и Opera.
Input type URL
Тип url
может использоваться для ввода URL или веб-адресов.
Вы можете использовать атрибут multiple
для ввода более одного URL. Кроме того, если указан атрибут required
, браузер автоматически выполнит проверку, чтобы убедиться, что в поле вводится только текст, соответствующий стандартному формату для URL. Давайте посмотрим, как это работает:
<form> <label for="myurl">Enter Website URL:</label> <input type="url" required> </form>
Проверка ввода URL (т.е. type="url"
) поддерживается всеми основными браузерами, такими как Firefox, Chrome, Safari, Opera, Internet Explorer 10 и выше.
Input type Week
Тип week
позволяет пользователю выбрать неделю и год из раскрывающегося календаря.
Посмотрим следующий пример, чтобы понять, как это работает:
<form> <label for="myweek">Select Week:</label> <input type="week"> </form>
Тип type="week"
не поддерживается браузерами Firefox, Safari и Internet Explorer. В настоящее время поддерживается браузерами Chrome, Edge и Opera.
Кросс-браузерная совместимость типов ввода даты и времени в Firefox 35
Последнее обновление: 2023-02-27
Примечание:
В Mozilla Firefox 35, Типы ввода даты и времени — Не поддерживается . Допустим, если вы планируете использовать эту функцию, то пользователи Mozilla Firefox смогут ее отлично увидеть на Mozilla Firefox 35 . Если на вашем веб-сайте в Mozilla Firefox 35 возникают проблемы с совместимостью браузера, вероятно, это связано с другими веб-технологиями.
Обзор
Виджеты полей даты и времени добавляют различные типы ввода к виджетам полей, позволяя пользователям легко вводить дату, время или и то, и другое. Виджет календаря позволяет пользователю выбрать дату и отобразить ее вместе с выбором месяца и года во всплывающем окне.
Используйте возможности движка на основе Chromium для создания адаптивных веб-сайтов и веб-приложений.
Попробуйте бесплатно
Не поддерживается
Оценка совместимости браузера
Mozilla
Firefox
35
Не поддерживается
Отладка веб-страниц на ходу с расширением LT Debug Chrome.
Добавить в Chrome
Протестируйте свой веб-сайт в более чем 3000 браузерах
Проведите онлайн-тестирование браузера на совместимость для своего веб-сайта с помощью облака LambdaTest. Тестируйте в более чем 3000 реальных браузерах и операционных системах, включая настольные компьютеры, мобильные устройства и планшеты.
Протестировать сейчас в Mozilla Firefox 35
Зачем проводить тестирование в Firefox 35
Чтобы разработать правильную стратегию тестирования, важно понимать, сколько пользователей на самом деле используют Firefox 35
Чтобы помочь вам построить правильную матрицу тестирования браузера, вот общая доля рынка как браузера Firefox, так и Firefox версии 35.
Firefox 97
2
2023-03-14
Firefox 96
1.38
2023-03-14
Firefox 91
0.11
2023-03-14
Firefox 52
0.06
2023-03-14
Firefox 78
0.06
2023-03-14
Firefox 95
0.06
2023-03-14
Other
1.58
—
Data Source: Statcounter.com
ALL DESKTOP BROWSERS (Jan 2021 — Jan 2022)
Browsers
Chrome
62.81
Safari
19.29
Firefox
4.2
Edge
4.07
Samsung Internet
2,77
Opera
2,26
Другие
4,6
Источник данных: СТАТИКАНСТР. ваши веб-приложения в Firefox 35, вам сначала нужно проверить, какие технологии поддерживаются в Firefox 35.
Вот список всех веб-технологий, классифицированных по уровню поддержки для Firefox 35.
- Поддержанный (не требуется префиксы)
- (некоторый префикс)
- По крайней мере частично поддерживается
- NO.
—
Частично
11-5.5
Не поддерживается
Тестирование в IE
Поддержка браузера для версий Edge
110-03
Полная версия
02 12-12
Частично
—
Не поддерживается
Тест на краю
Поддержка браузера для версий Firefox
—
Полностью
112-57
Частично
56-2
Не поддерживают не поддерживают
Не поддерживают не поддерживают Не поддерживают Не поддерживают Не поддерживают Не поддерживают не поддерживают не поддерживают не поддерживают не поддерживаютТест в Firefox
Поддержка браузером версий Chrome
113-25
Полностью
24-20
Частично
19-4 0 Тест2
3 Не поддерживается в Chrome30003
Поддержка браузера для версий Safari
—
Полностью
16. 4-14.1
Частично
14-3.2
Не поддерживается
.
—
Частично
—
Не поддерживается
Тест в Opera
Браузерная поддержка Safari на версиях iOS
—
- 3 9.0002 Полностью
30003
Частично
4-3.2
Не поддерживается
Тест на Safari на iOS
Поддержка браузера для Android Browser Versions
109-4.4
—
4-2,19
—
.
Тестирование в браузере Android
Поддержка браузером мобильных версий Opera
73-10
Полностью
—
Частично
—
03 Не поддерживается30002 Тест на Opera MobileБруузерная поддержка для Chrome для версий Android
110-97
Полностью
—
Частично
—
Не поддерживается
Тест на Chrome для Android
Browser. Версии
101-95
Полностью
110-104
Частично
—
Не поддерживается0003
19-4
Полностью
—
частично
—
Не поддерживается
Испытание на Samsung Internet
О Mozilla Firefox
Корпорация Mozilla Corporation & It Super Apporation, Mozilla Corporation, разработала Mozillafox, Oramilla -Firefox. просто Firefox, бесплатный веб-браузер с открытым исходным кодом. Firefox отображает веб-страницы с помощью механизма рендеринга Gecko, придерживаясь текущих и будущих веб-стандартов. Это важный игрок на рынке.
Mozilla Firefox был создан в 2002 году под кодовым названием «Phoenix» членами сообщества Mozilla, которые хотели, чтобы в их пакете Mozilla Application Suite было больше одной программы. Бета-версия Firefox завоевала популярность среди тестировщиков и получила высокую оценку за скорость, безопасность и дополнительные возможности по сравнению с доминировавшим в то время Internet Explorer 6 от Microsoft.
В 2004 году Mozilla выпустила Firefox, бросив вызов доминированию Internet Explorer. За девять месяцев Firefox был загружен более 60 миллионов раз. Firefox является преемником Netscape Navigator, поскольку он был создан Netscape в 1998 до ее приобретения AOL.
Firefox поставляется с несколькими полезными функциями. Например, в Firefox предусмотрен просмотр с вкладками с отдельными процессами на каждой вкладке, встроенный блокировщик всплывающих окон, приватный просмотр, обнаружение фишинга и модель безопасности «песочницы». Одной из особенностей Firefox, жизненно важной для некоторых пользователей, является то, что он работает на нескольких платформах.
Загрузить Mozilla Firefox
Посетите официальный сайт Mozilla Firefox, чтобы загрузить версию браузера Firefox.
Ресурсов:
Проверка совместимости браузера вашего веб-сайта со всеми версиями Mozilla Firefox
LambdaTest позволяет LambdaTest позволяет мгновенно запускать ваш веб-сайт в браузере Mozilla Firefox версии 4 и выше.
Начать бесплатное тестирование. Веб-документы Mozzila MDN (https://developer.mozilla.org/en-US/)
- Web.Dev (https://web.dev/)
- Статус платформы Chrome (https://chromestatus.com/features)
- Статус функции WebKit (https://webkit.org/status/)
Поддержка браузером типов ввода даты и времени
- Chrome
- Safari
- Firefox
- Internet Explorer
- Opera
- Edge
Поддержка типов ввода даты и времени в Google Chrome
Поддержка типов ввода даты и времени в Microsoft Edge
Поддержка типов ввода даты и времени в Mozilla Фаерфокс
Поддержка типов ввода даты и времени в Internet Explorer
Поддержка типов ввода даты и времени в Opera
Поддержка типов ввода даты и времени в Safari
Отладка веб-страниц на ходу с расширением LT Debug Chrome.
Добавить в Chrome
Используйте мощь движка на основе Chromium для создания адаптивных веб-сайтов и веб-приложений.
Попробуйте бесплатно
Проверка типов ввода даты и времени в реальном Firefox 35
Протестируйте эту и другие функции на своем веб-сайте на совместимость с 3000 реальными браузерами и устройствами, используя
Начать бесплатное тестирование
Была ли эта статья полезной?
X
Мы используем файлы cookie, чтобы предоставить вам лучший опыт. Файлы cookie помогают предоставить вам более персонализированный опыт и релевантную рекламу, а нам — веб-аналитику. Узнайте больше в нашей политике в отношении файлов cookie, конфиденциальности и условиях обслуживания.
HTML5 представил ряд новых типов ввода для использования в формах. Один из них — input type="date"
— предназначен для упрощения сбора дат и уменьшения ошибок пользователей при этом.
Итак, спустя 10 лет после предложенного введения этого элемента, хорошо ли он поддерживается в браузерах? А для пользователей вспомогательных технологий и тех, кто полагается на взаимодействие с клавиатурой, помогает ли их использование сделать формы более доступными?
В этой статье используется input type="date"
для пробного запуска с выбором браузеров и вспомогательных технологий, чтобы увидеть, насколько удобен элемент управления в начале 2019 года..
Stop Press: если вам понравилось то, что вы прочитали в этой статье, и вы хотите узнать больше, ознакомьтесь с нашими новыми курсами по специальным возможностям для веб-разработчиков, где я смогу углубить вас в доступную веб-разработку.
Как используется
input type="date"
Простейшая реализация элемента — просто объявить тип ввода как дату. Должна быть предоставлена правильно размеченная метка или подсказка для поля, чтобы пользователи программ чтения с экрана понимали, для чего предназначено поле, а пользователи Dragon NaturallySpeaking могли быстро обратиться к элементу управления.
<тип ввода="дата" имя="начало">
При необходимости можно установить значение по умолчанию (или предварительно сохраненное) с помощью атрибута value в формате «гггг-мм-дд».
Кроме того, можно установить минимальную и максимальную допустимые даты, используя атрибуты min
и max
. Идея здесь заключается в том, чтобы браузер проверял ввод пользователя и предупреждал его, если он выходит за допустимый диапазон.
Вот пример, показывающий использование всех этих атрибутов — по умолчанию используется дата, а ввод ограничивается следующими четырьмя неделями.
<тип ввода="дата" имя="начало" значение = "2019-02-06" мин="2019-02-06" макс="2019-03-05">
Наши требования к тесту на доступность
Прежде чем мы углубимся в рассмотрение того, как работает input type="date"
, я хочу установить наши идеальные требования для этого типа ввода. Вы можете заметить, что этот список похож на те, которые определены в моих блогах Доступные шаблоны аккордеона и Использование элементов .
- Может легко управляться пользователями мыши.
- Можно легко управлять касанием — на смартфонах, планшетах или настольных компьютерах/ноутбуках с сенсорными экранами.
- Можно легко управлять с помощью клавиатуры, что важно для зрячих пользователей, использующих только клавиатуру, и пользователей программ чтения с экрана настольных компьютеров/ноутбуков.
- Может легко управляться программой распознавания речи, такой как Dragon NaturallySpeaking.
- Может легко использоваться пользователями с инструментами увеличения экрана.
- Могут быть легко поняты и управляемы пользователями программ чтения с экрана — знают ли они, что от них ожидается?
Тестирование
тип ввода="дата"
Чтобы проверить поддержку input type="date"
, я создал тестовую страницу ввода даты. На этой странице я включил 3 ввода даты. У одного из них установлено значение по умолчанию, у другого установлено максимальное и минимальное значение, а у третьего вообще нет ограничений. Я также включил простое текстовое поле, чтобы можно было провести сравнение с текстовым полем в браузерах, которые не поддерживают input type="date"
.
В тестах я собираюсь проверить, как этот тип поля ввода ведет себя в следующих браузерах и с соответствующими вспомогательными технологиями:
- Firefox 65 для Windows, включая программу чтения с экрана NVDA.
- Chrome 72 для Windows, в том числе с программами чтения с экрана JAWS и Dragon NaturallySpeaking
- Internet Explorer 11 для Windows, в том числе с программой чтения с экрана JAWS и Dragon NaturallySpeaking
- Edge 17 для Windows, в том числе с программой чтения с экрана JAWS и Dragon NaturallySpeaking
- Safari 12 на MacOS 10, включая Voiceover
- Safari на iOS11 — в том числе с Voiceover
- Chrome 72 на Android 8, в том числе с Talkback
- Firefox 65 на Android 8 — в том числе с Talkback
- Браузер UTC на Android 8, в том числе с Talkback
Эти документы были полезны при планировании моего тестирования: вспомогательные данные для ввода даты в разделе «Можно ли использовать» и статья журнала Smashing Magazine о типах ввода HTML5, в которой есть раздел, посвященный вводу даты. Заметки Mozilla Developer Network о вводе даты также содержат некоторую информацию о тестировании поддержки браузером версии 9.0446 тип ввода=»дата» .
Резюме результатов
Вот краткое изложение результатов наших тестов для тех, у кого нет времени читать все подробные результаты тестов.
Достаточно ли поддержки для input type="date"
, чтобы сделать его безопасным для использования в составе доступного веб-сайта или веб-приложения?
Хотя некоторые браузеры довольно хорошо поддерживают тип ввода = «дата», включая наши требования к специальным возможностям, наш ответ, к сожалению, должен быть… «Нет».
Основные причины, по которым я пришел к такому выводу:
- Кажется невозможным успешно взаимодействовать с вводом данных с помощью Dragon NaturallySpeaking.
- Отсутствие объявления сообщений об ошибках проверки браузера в Safari/iOS с VoiceOver и Firefox/Android с Talkback сводит на нет полезную встроенную функциональность элемента управления и означает, что по-прежнему потребуется более «традиционная» проверка ошибок.
- Некоторые сообщения об ошибках проверки браузера следуют неудобному для пользователя шаблону «гггг-мм-дд», а не используют настройки локали пользователя.
- На устройствах Android с Talkback, чтобы прослушать ранее выбранную дату в элементе управления, необходимо открыть представление календаря. Текущее значение должно считываться после метки элемента управления.
- Поля, содержащие недопустимые даты, иногда выделяются цветом, но программы чтения с экрана не всегда объявляют их недействительными.
- Отсутствие поддержки в IE11 и, что более важно, в Safari на Mac. Эти браузеры обрабатывают ввод даты как текстовые поля, что само по себе не является проблемой, но любая дата по умолчанию или ранее введенная дата отображается в недружественном формате, что может сбить с толку посетителей сайта.
Фокус озвучивания перемещается в верхнюю часть страницы после взаимодействия с барабанами календаря в Safari/iOS также раздражает, но, похоже, это особенность Safari при взаимодействии с элементами
— это не недостаток удобства использования характерно для input type="date"
.
Новые элементы HTML5 могут многое предложить для улучшения взаимодействия с пользователем и обеспечения согласованности и доступности «из коробки», чтобы сэкономить время разработчиков. Но, как мы видели в случае с элементами
Что вы думаете?
Мы надеемся, что эти идеи будут вам полезны, и хотели бы узнать о вашем опыте внедрения элементов управления датами. Поделитесь своими комментариями ниже.
Хотите больше?
Если этот блог был полезен, вы можете подписаться на информационный бюллетень Hassell Inclusion, чтобы ежемесячно получать по электронной почте дополнительную информацию.
Подробные результаты испытаний
Firefox 65 в Windows
Firefox неплохо справляется с тип ввода="дата"
. Первоначальное представление выглядит как текстовое поле и показывает дату по умолчанию в правильном формате для региона моего ноутбука — в моем случае дд/мм/гггг. Ввод даты без предопределенного значения также показывает «дд-мм-гггг», как если бы это был заполнитель.
Вкладка в элементе управления показывает, что пользователи клавиатуры фактически имеют дело с тремя отдельными компонентами, и значения можно изменить с помощью клавиш со стрелками вверх и вниз. В качестве альтернативы я могу печатать непосредственно в каждой части.
При вводе даты в Firefox отображается подсветка клавиатуры в части дняЩелчок по элементу управления датой приводит к появлению средства выбора даты в стиле календаря. Для дат, для которых установлены минимальные и/или максимальные значения, они отражаются в календаре, и недопустимые даты нельзя выбрать с помощью мыши. Также есть подсветка текущей выбранной даты.
Щелчок по маленькому значку X внутри поля полностью очищает значение.
При вводе даты в Firefox отображается интерфейс выбора даты после щелчка в элементе управленияС помощью клавиатуры можно выбрать недопустимые даты, но при отправке формы отображается сообщение об ошибке, сгенерированное браузером. Обратите внимание, что дата в сообщении об ошибке отображается в формате гггг-мм-дд, что отражает фактическое значение атрибута, а не более удобочитаемое представление.
При вводе даты в Firefox отображается сообщение об ошибке после отправки формы с неверной датойТаким образом, этот элемент работает в Firefox довольно хорошо. Но я обнаружил ошибку в Bugzilla, связанную с форматированием сообщения.
С NVDA
В Firefox лучшим средством чтения с экрана является NVDA, поскольку JAWS 18 плохо работает с более новыми версиями Firefox.
Когда NVDA работает, когда пользователи сталкиваются с элементом управления датой, считывается метка, и NVDA называет элемент управления «редактированием даты». Затем он озвучивает, с какой из «кнопок вращения» вы взаимодействуете, и объявляет текущее значение. При перемещении между «кнопками прокрутки» метка считывается только в первый раз. Используя клавиши со стрелками вверх/вниз для изменения значения, каждый раз объявляется новое значение.
Отправка формы приведет к тому, что любые недопустимые даты — например, 31 февраля 2019 года — будут вызваны NVDA. Кроме того, если дата выходит за пределы любого заданного минимального или максимального значения, сообщение об ошибке будет прочитано в менее удобном для пользователя формате гггг-мм-дд. Эти автоматически объявляемые сообщения не включают метку поля, поэтому форма с несколькими записями дат может немного запутать пользователей программ чтения с экрана. Однако переход к полю с недопустимой датой приводит к тому, что программа чтения с экрана объявляет о недопустимой записи.
Chrome 72 в Windows
Подобно Firefox, Chrome для Windows довольно хорошо справляется с input type="date"
.
Опять же, при первоначальном просмотре это выглядит как текстовое поле, а там, где отображается значение по умолчанию, оно имеет формат, соответствующий моей локали. Щелкнув по нему или перейдя по нему, вы увидите, что есть три компонента — по одному для дня, месяца и года.
Также есть интерактивный X для очистки ввода и маленькие интерактивные стрелки вверх и вниз для изменения значений. В правом конце находится большая стрелка вниз, при нажатии на которую открывается вид календаря.
Пользователи клавиатуры могут взаимодействовать с каждой частью, используя клавиши со стрелками вверх и вниз для перемещения по значениям, а также можно ввести дату непосредственно в элемент управления.
Ввод даты в ChromeОткрытие представления календаря для ввода даты, где установлены минимальные и/или максимальные значения, показывает, как различаются действительные даты и сегодняшняя дата. Недопустимые даты не могут быть выбраны пользователями мыши в представлении календаря.
Просмотр календаря Chrome только для пользователей мышиЕсли с клавиатуры вводятся неверные даты и форма отправляется, отображается сообщение об ошибке, сгенерированное браузером. Обратите внимание, что, в отличие от Firefox, сообщение об ошибке содержит дату в более удобном для пользователя формате.
При вводе даты Chrome отображается сообщение об ошибкеС JAWS
Использование JAWS с Chrome дает мне всю информацию, необходимую для понимания того, для чего нужны входные данные и что от меня ожидается. Он сообщает мне, когда я нахожусь в день, месяц или год, и считывает этикетку (каждый раз!). Он говорит мне, что я нахожусь в «поле редактирования счетчика», и говорит мне, что я могу ввести значения или использовать клавиши со стрелками вверх или вниз.
Счетчики для дня и месяца зацикливаются, когда достигают максимально возможных значений – 31 для дня, 12 для месяца. Я также могу получить доступ к средству выбора даты, перейдя к кнопке и нажав пробел. Мне приказано использовать клавиши со стрелками для перемещения по датам. И я также могу выбрать месяцы отдельно.
Единственным недостатком этого доступного (хотя и многословного) интерфейса является то, что JAWS не озвучивает генерируемые браузером сообщения об ошибках с допустимой датой. Таким образом, если допустимый диапазон не указан в метке для ввода даты, пользователи JAWS не будут знать, почему форма не будет отправлена.
С драконом Естественно говорящий
С помощью Dragon я не могу выбрать поля даты, либо говоря «щелкните текст», либо «щелкните [ часть метки ]». Я могу поместить фокус в поля даты, нажав табуляцию, а затем сказав «нажмите ввод», чтобы открыть представление календаря, но тогда кажется невозможным взаимодействовать с календарем.
В качестве альтернативы я могу использовать «Сетку мыши», чтобы нажимать на части ввода даты, но после этого я не могу вводить какие-либо числа в отдельные элементы.
Кажется, что Dragon не поддерживает input type="date"
.
Internet Explorer 11 в Windows
Как и следовало ожидать, Internet Explorer 11 не поддерживает input type="date"
каким-либо особым образом. Вместо этого браузер показывает просто текстовое поле, которое пусто, если не указано значение.
К сожалению, там, где указано значение, IE11 показывает немодифицированный формат «гггг-мм-дд», что не всегда удобно для пользователя.
Неудивительно, что ничто не мешает пользователям вводить неверные даты, если они указаны атрибутами, и нет встроенной проверки браузера и сообщения об ошибке при отправке формы.
С ЧЕЛЮСТЯМИ
JAWS относится к вводам как к «Редактировать», как и к текстовым полям. Этикетка читается так, как вы ожидаете.
Неудивительно, что все даты по умолчанию считываются в неудобном для пользователя формате «гггг-мм-дд».
С драконом Естественно говорящий
Хотя они могут выглядеть как текстовые поля, Dragon не видит вводимые данные как текстовые поля. Если я скажу «Click type text», я могу ожидать, что Dragon добавит свои флаги выбора к вводу даты, но, как мы видим здесь, этого не происходит:
Результат попытки выбрать текстовые поля в Dragon NaturallySpeakingТакже кажется невозможным сосредоточить внимание на полях ввода даты, заключая текст метки в кавычки в любой комбинации, что мне было бы легко сделать с другими типами ввода.
В крайнем случае, я мог бы использовать голосовые команды для перехода к вводу даты или использовать сетку мыши для направления указателя мыши. Но, сделав это, кажется, невозможно что-либо продиктовать в поля ввода даты. Это существенный блокировщик.
Край 17 в Windows
В то время как MS Edge в Windows разочаровал, когда мы рассмотрели поддержку , с
input type="date"
поддержка намного лучше.
При первом просмотре элемент управления выглядит как текстовое поле, а значение по умолчанию представлено в соответствии с моей локалью — для меня «дд/мм/гггг».
Ввод даты в браузере EdgeКогда я перехожу к элементу управления, индикация фокуса означает, что это один ввод. Однако я не могу ввести дату непосредственно в поле. Но если я вместо этого нажму Enter или щелкну элемент управления, мне будет показан интерфейс календаря, который напоминает мне средство выбора даты по умолчанию в iOS (см. Раздел iOS ниже).
Когда отображается этот интерфейс, пользователи клавиатуры могут переходить к каждой части и использовать клавиши со стрелками вверх/вниз для изменения значений, наконец, нажав Enter, чтобы завершить свой выбор, или Escape, чтобы закрыть интерфейс, не делая выбора.
Пользователи с сенсорным экраном могут перетаскивать значения вверх или вниз по мере необходимости.
Пользователям мышине все так просто, поскольку им приходится несколько раз нажимать выше или ниже, чтобы приблизиться к нужному значению. Таким образом, этот элемент управления может быть не так хорош для пользователей мыши, выбирающих, например, дату рождения.
Селектор даты в браузере EdgeЕсли установлены минимальные и максимальные значения, интерфейс календаря соответствующим образом укорачивается, поэтому он хорошо предотвращает неверный ввод.
Браузер Edge ограничивает выбор, чтобы разрешить только действительные датыС ЧЕЛЮСТЯМИ
Я не могу получить ничего значимого ни с одной страницы, используя JAWS с Edge.
С драконом Естественно говорящий
Мне никогда не удавалось успешно использовать Dragon NaturallySpeaking с Edge.
Safari 12 на MacOS 10
К сожалению, в Safari на Mac полностью отсутствует поддержка ввода даты. Поля ввода даты представлены так, как если бы они были текстовыми полями, а значение по умолчанию в первом поле не интерпретируется повторно в удобочитаемый формат, как в других браузерах.
Ввод даты в Safari на Mac — точно так же, как текстовые поляДругая проблема заключается в том, что при вводе или отправке неверных дат нет проверки браузера и сопутствующего сообщения об ошибке.
Safari на Mac принимает ввод недопустимых датПри тестировании с MacOS Voiceover поведение такое же, как если бы поля были текстовыми полями.
Это означает, что Mac Safari наиболее близок к IE11 в обработке input type="date"
. Потребуются некоторые функции сценариев для представления значений по умолчанию в более удобном формате и для обеспечения проверки полей.
В Webkit Safari обнаружена нерешенная ошибка из-за отсутствия поддержки input type="date"
.
Сафари на iOS11
При первоначальном просмотре ввод даты отображается как раскрывающийся список. Там, где указаны даты по умолчанию, они отображаются в удобочитаемой форме — например, «6 февраля 2019 года».
Первоначальный просмотр ввода даты в Safari на iOSПрикосновение к элементу управления открывает стандартное средство выбора даты iOS с 3 барабанами, где пользователи могут перемещать каждый из них вверх и вниз отдельно, чтобы выбрать дату. Счетчики календаря закрываются нажатием где-нибудь за пределами представления календаря — действие, которое выбирает дату, отображаемую в данный момент в счетчиках календаря.
Катушки календаря iOS отображаются после нажатия на элемент управления датойНет ограничений на даты, которые можно выбрать, даже в элементах управления, где указана минимальная и/или максимальная дата. Отправка формы с недопустимой датой приводит к тому, что счетчики календаря снова отображаются, а также отображается сообщение об ошибке, сгенерированное браузером: «Значение должно быть меньше или равно 2019-03-05».
Обратите внимание, что в сообщении об ошибке используется неудобный для пользователя формат гггг-мм-дд. И я не уверен, что люди думают о датах с точки зрения «меньше чем» или «больше чем». Возможно, лучше использовать слова «до» или «после».
В тех случаях, когда отправленные даты выходят за допустимый диапазон, отображается сообщение об ошибкеИспользование озвучивания
Когда фокус достигает элемента управления датой, VoiceOver называет его «всплывающей кнопкой» и успешно считывает метку и любую отображаемую в данный момент дату.
Двойное нажатие на элемент управления открывает барабаны календаря, но фокус находится на кнопке «Очистить» вверху. Пользователь может провести пальцем по каждому из трех «элементов выбора» и провести пальцем вверх или вниз, чтобы изменить выбор по одному шагу за раз. Кажется, это нормальное поведение для средства выбора даты iOS.
Чтобы выбрать дату, пользователю VoiceOver нужно коснуться где-нибудь за пределами наложения календаря, а затем дважды коснуться. Это действие выбирает любую дату, отображаемую в барабанах календаря. Но, к сожалению, кажется, что фокус VoiceOver теперь переместился прямо к стрелке «Назад» в самом верху экрана Safari.
Это действительно плохое удобство использования, так как теперь мне нужно найти, где я был на странице — либо прокручивая, либо водя пальцем по экрану, пока я не найду это. Было бы намного лучше, если бы фокус VoiceOver оставался на вводе даты, с которым я только что взаимодействовал.
Как упоминалось выше, если для ввода даты установлены минимальные и/или максимальные значения, а форма отправлена, браузер генерирует сообщение об ошибке. Однако VoiceOver никогда не озвучивает это сообщение, даже если я пытаюсь провести пальцем по нему вручную.
На мой взгляд, это огромная проблема.
Chrome 72 на Android 8
В Chrome на Android поля даты отображаются в виде прямоугольника с градиентным фоном и стрелкой вниз. Там, где установлены значения по умолчанию, они отображаются в формате, соответствующем моей локали – для меня дд/мм/гггг.
Как ввод даты отображается в Chrome на AndroidПри нажатии на элемент управления открывается представление календаря ОС Android по умолчанию, чтобы пользователи могли выбрать дату. Невозможно ввести дату в элемент управления.
Если установлены минимальные или максимальные значения, недопустимые даты для текущего месяца отображаются более светлым цветом и не могут быть выбраны. Кроме того, в опции года будут указаны только действительные годы. Поэтому невозможно выбрать неверную дату.
Представление календаря Android с недопустимыми датами, выделенными серым цветомПосле закрытия представления календаря вокруг элемента управления, с которым в последний раз взаимодействовали, появляется тонкая индикация фокуса.
Использование двусторонней связи
Использование стандартного представления календаря ОС должно гарантировать хорошую доступность, и если вы знакомы с тем, как работает представление календаря Android, использование Talkback для выбора даты не составит труда. Как и прежде, невозможно выбрать недопустимые даты.
Chrome на Android с работающим Talkback. Talkback успешно объявляет лейблОднако одной из особенностей использования Talkback является то, что если я пролистываю ввод даты, где значение уже было установлено, Talkback не объявляет текущее значение, если только я дважды не нажму, чтобы открыть представление календаря, что заставляет Talkback объявить ранее выбранная дата. Это кажется ненужной дополнительной работой, которую должны выполнять пользователи программ чтения с экрана.
Клавиатура Bluetooth
Использование Bluetooth-клавиатуры (без Talkback), подключенной к Android-устройству, также не вызывает проблем. Я могу перейти к полям даты и нажать Enter, чтобы открыть представление календаря. Затем я могу использовать клавишу табуляции и клавиши со стрелками для перемещения фокуса по мере необходимости, чтобы выбрать альтернативные годы, месяцы, а затем дни, когда я нахожусь в нужном месяце. Индикация фокусировки очевидна.
Использование клавиатуры Bluetooth с календарем Android. Серый круг показывает фокус клавиатурыFirefox 65 на Android 8
Начальный вид ввода даты показывает, что они выглядят как текстовые поля. Но, как и в случае с Chrome, прикосновение к ним показывает представление календаря Android, хотя и с немного другой цветовой схемой. Обратите внимание, что текущая дата (8 февраля) выделена другим цветом.
Просмотр календаря Android в FirefoxВыбор даты касанием точно такой же, как и в Chrome.
С двусторонней связью
Работа с Talkback разочаровывает. Во-первых, при переходе к вводу даты Talkback не объявляет метку элемента управления, когда фокус переходит на элемент управления. Фокус перемещается между тремя частями ввода, а также символами «/» между частями дня, месяца и года. Talkback не объявляет текущее значение каждой из частей ввода, когда я пролистываю.
Firefox на Android. Выделение на дневной частиЧтобы прослушать текущую выбранную дату, я должен дважды коснуться одной из частей ввода — действие, которое открывает представление календаря Android. Сначала фокус идет на год, и мне нужно провести пальцем вперед, чтобы услышать день и месяц. Это вынуждает пользователей использовать гораздо больше жестов, чем им нужно, — не лучший опыт.
Если я каким-то образом выбрал неверную дату и отправляю форму, используя Talkback, я никогда не слышу сгенерированное браузером сообщение об ошибке, которое отображается в форме. Формат даты в сообщении об ошибке соответствует неудобному для пользователя формату гггг-мм-дд. Также обратите внимание, что недопустимое поле обведено красным.
Это не лучший опыт.
Отправка даты вне допустимого диапазона в Firefox на Android. Браузер сгенерировал сообщение об ошибке, не прочитанное TalkbackКлавиатура Bluetooth
С клавиатурой Bluetooth, подключенной к устройству Android, Firefox на Android ведет себя точно так же, как Firefox на ноутбуке. Переход к вводу даты показывает, что я взаимодействую с тремя элементами и могу использовать клавиши со стрелками вверх и вниз.
Можно выбрать недопустимые даты с помощью клавиатуры, но попытка отправить форму приводит к отображению сообщения об ошибке, информирующего пользователя о том, что не так с датой. Кроме того, как и в версии Firefox для ноутбуков, это сообщение об ошибке ссылается на дату в неудобном для пользователя формате гггг-мм-дд.
Браузер UC на Android 8
Внешний вид и прикосновение
В браузере UC (4-й по популярности браузер в мире, особенно используемый в Китае) внешний вид и функциональность элементов управления датами такие же, как в Chrome на Android. Представление календаря имеет немного другую цветовую схему, но в остальном все работает так же.
С двусторонней связью
Кажется, что при использовании Talkback с UC Browser вообще невозможно что-то сделать, поэтому этот тест был отменен.
Клавиатура Bluetooth
При подключенной клавиатуре Bluetooth UC Browser ведет себя практически так же, как Chrome.