Лучше ли обернуть тег метки вокруг элемента формы или использовать атрибут "для" в HTML?
Я знаю, что вы можете использовать оба варианта, но лучше ли использовать один над другим? Если да, то почему?
Пример атрибута "для":
<input type="text" id="male"><label for="male">Male</label>
Пример обертки:
<label>Age:<input type="text"></label>
Ответы
Ответ 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
.