Как пользовательские агенты должны обрабатывать обязательный атрибут HTML5?
Вероятно, это небольшой вопрос, поэтому заранее извиняюсь, но... Определяет ли спецификация HTML5, как пользовательские агенты должны реагировать на обязательный атрибут HTML5 (или это зависит от них)? Другими словами, существуют ли какие-либо конкретные правила, определяющие поведение пользовательских агентов (например, "пользователи должны быть предупреждены о наличии обязательного поля"; "когда пользователь отправляет форму, необходимые элементы управления должны быть проверены и сообщения об ошибках отображаются в событие, что они не обладают ценностью "; и т. д.)
Спецификация HTML5, кажется, дает некоторые расплывчатые рекомендации, но ничего конкретного.
1 ответ
В спецификации говорится, что когда required
Элемент имеет значение, которое является пустой строкой:
элемент страдает от отсутствия
Если мы затем посмотрим на раздел "ограничения" (который объясняет, что означает "отсутствующий"), он скажет нам:
Элемент может иметь пользовательское сообщение об ошибке достоверности. Первоначально элемент должен иметь свое собственное сообщение об ошибке достоверности, установленное на пустую строку. Когда его значение не является пустой строкой, элемент страдает от пользовательской ошибки. Это может быть установлено с помощью
setCustomValidity()
метод. Пользовательский агент должен использовать пользовательское сообщение об ошибке достоверности при предупреждении пользователя о проблеме с элементом управления.
Имеет смысл оставить точную реализацию того, как отображать это сообщение, браузерам, чтобы они могли приспособить его к своим текущим стилям и пользовательскому опыту.
Вот примеры (скриншоты) того, как браузеры обрабатывают это по-другому здесь, наряду с информацией о совместимости браузера: