Интересно, в чем разница между следующими двумя фрагментами кода:
<label>Input here : </label>
<input type='text' name='theinput' id='theinput'/>
а также
<label for='theinput'>Input here : </label>
<input type='text' name='theinput' id='theinput'/>
Я уверен, что он что-то делает, когда вы используете специальную библиотеку JavaScript, но кроме этого, проверяет ли он HTML или требуется по какой-то другой причине?
select
только с меткой, фокусируется на выборе, а не на расширении параметров.for
Атрибут связывает метку с элементом управления, как определено в описанииlabel
в HTML 4.01 спецификации. Это подразумевает, среди прочего, что когдаlabel
элемент получает фокус (например, по нажатию), он передает фокус на связанный с ним элемент управления. Ассоциация между меткой и элементом управления также может использоваться речевыми пользовательскими агентами, которые могут дать пользователю возможность спросить, что такое ассоциированная метка, когда имеешь дело с элементом управления. (Ассоциация может быть не такой очевидной, как при визуальной визуализации.)В первом примере в вопросе (без
for
) использованиеlabel
разметки не имеет логического или функционального значения - оно бесполезно, если вы ничего не делаете с ним в CSS или JavaScript.Спецификации HTML не обязывают связывать метки с элементами управления, как это делают Рекомендации по доступности веб-контента (WCAG) 2.0. Это описано в техническом документе H44: Использование меток элементов для преобразования текста этикеток с элементами управления формой , что также объясняет , что неявные ассоциации (по вложенности , например ,
input
внутриlabel
) не так широко , как явное объединение с помощьюfor
иid
атрибуты,источник
Короче говоря, это относится к
id
входным данным, вот и все:источник
Атрибут for
<label>
тега должен быть равен атрибуту id связанного элемента, чтобы связать их вместе.источник
Атрибут for показывает, что эта метка обозначает связанное поле ввода, либо флажок или переключатель, либо любое другое поле ввода данных, связанное с ним. например
источник
Он обозначает любой входной параметр для
for
атрибута.источник