В атрибутах checked
и selected
допускаются только два значения, которые являются копией имени атрибута и (начиная с HTML 5 и далее) пустой строкой. Задание любого другого значения является ошибкой.
Если вы не хотите устанавливать атрибут, то весь атрибут должен быть опущен.
Обратите внимание, что в HTML 4 вы можете опустить все, кроме значения. HTML 5 изменил это, чтобы пропустить все, кроме имени (что не имеет никакого практического значения).
Таким образом, полный (кроме вариаций в cAsE) действительный набор атрибутов:
<input ... checked="checked"> <!-- All versions of HTML / XHTML -->
<input ... checked > <!-- Only HTML 4.01 and earlier -->
<input ... checked > <!-- Only HTML 5 and later -->
<input ... checked="" > <!-- Only HTML 5 and later -->
Документы, представленные как text / html (HTML или XHTML), будут передаваться через анализатор супов тегов, а наличие проверенного атрибута (с любым значением) будет рассматриваться как «Этот элемент должен быть проверен». Таким образом, при недействительности checked="true"
, checked="yes"
и checked="false"
все активируют проверенное состояние.
У меня не было склонности выяснять, какие механизмы исправления ошибок существуют для режима синтаксического анализа XML, если атрибуту будет присвоено другое значение, но я бы ожидал , что наследие HTML и / или простое восстановление после ошибки будет относиться к нему так же: если атрибут есть, то элемент проверяется.
(И все вышесказанное в равной степени относится к selected
, как и к checked
.)