Кратко
СкопированоАтрибут for связывает текст в <label> или тег <output> с контролами формы.
Пример
СкопированоПопробуйте нажать на текст в примере ниже.
<label for="number">Ваше любимое число:</label><input id="number">
<label for="number">Ваше любимое число:</label>
<input id="number">
Поле <input> становится активным, хотя мы его не трогали. Так получается, потому что текст связан с этим полем. Благодаря for они словно одно целое 😊
Как пишется
СкопированоСвязь устанавливается парой атрибутов for-id, где for одного элемента ссылается на id другого (или других).
А ещё не каждый элемент подойдёт для связи, годятся только из категории «связываемых»:
<button>;<input>;<meter>;<progress>;<select>;<textarea>;- И даже сам
<output>.
Это значит, что элементам из списка выше можно задать уникальный id, на который сможет сослаться атрибут for в <label> или <output>.
<input id="name"><input id="age"><output for="name age"></output>
<input id="name">
<input id="age">
<output for="name age"></output>
Значения атрибута for не должны повторяться на одной и той же странице. Дело в том, что благодаря ему поля связываются не только визуально, но и программно. Так пользователи скринридеров и других вспомогательных технологий знают, что от них хочет поле.
Подсказки
Скопировано💡 Связь между <label> и <input> возможно установить без атрибута for — достаточно обернуть один другим:
<label>Ваше любимое число: <input id="number"></label>
<label>Ваше любимое число: <input id="number"></label>