Подтвердить что ты не робот

Лучше ли обернуть тег метки вокруг элемента формы или использовать атрибут "для" в HTML?

Я знаю, что вы можете использовать оба варианта, но лучше ли использовать один над другим? Если да, то почему?

Пример атрибута "для":

<input type="text" id="male"><label for="male">Male</label>

Пример обертки:

<label>Age:<input type="text"></label>
4b9b3361

Ответ 1

Семантически, обе возможности одинаковы. Но в зависимости от того, какой макет вы хотите, есть преимущества и недостатки для двух возможностей. Например, если вы хотите, чтобы метка находилась в совершенно другом месте, было бы бессмысленно помещать ввод в метку. Но если вы хотите иметь возможность наведения с помощью css, это задает e. г. фоном как для метки, так и для области вокруг входа, было бы лучше помещать ввод в метку.

Ответ 2

согласно http://www.w3.org/TR/2008/WD-WCAG20-TECHS-20080430/H44.html

некоторые вспомогательные технологии неправильно обрабатывают неявные метки

Поэтому, когда вы завершаете, вы также можете указать атрибут "для" для элемента метки.

Ответ 3

Обертка позволяет отбросить атрибут for, который, в свою очередь, позволяет опустить атрибут id в элементе ввода. Отлично подходит для шаблонов или любых форм, которые необходимо использовать в нескольких экземплярах на странице.

Ответ 4

Это не имеет значения. Оба выполняют те же самые вещи с точки зрения определения взаимосвязи между меткой и полем.

Ответ 5

Вставка ввода в метку также влияет на поведение обертывания. <label><checkbox/>Value with spaces</label> по умолчанию будет обтекаться как единое целое. В то время как <checkbox id="check"/><label for="check">Value with spaces</label> будет обертывать текст разрывами в пробелах и переносит ярлык на новую строку, но оставить флажок выше.

Ответ 6

Если он рассчитывает на что-либо, фреймворки, такие как ASP.NET, помещают элемент label рядом с элементами input/select/textarea и используют атрибут label for.