Ответ 1
Я думаю, что это, вероятно, больше фактор, который люди не знают о <label> тег. Я этого не делал до этого сообщения.
Я всегда стараюсь сделать следующее:
<label><input type="checkbox" /> Some text</label>
или
<label for="idOfField"><input type="checkbox" id="idOfField" /> Some text</label>
Мой вопрос связан с тегом метки, в частности, на флажке.
Большинство веб-сайтов (скажем, 40%) не используют тег <label>
.
Есть ли причина для этого? Есть ли проблема в браузере или какая-то другая проблема?
Примечание.. Люди, которые не знают о теге <label>
, имеют ряд преимуществ:
Примечание 2: Некоторые люди упомянули, что пример № 2 более правильный, чем № 1 (см. выше), но в соответствии с документацией здесь, либо правильный
Я думаю, что это, вероятно, больше фактор, который люди не знают о <label> тег. Я этого не делал до этого сообщения.
Я согласен, что ярлык часто является неизвестным тегом. Я использую его в форме
<label for="chk1">Some text</label><input id="chk1" type="checkbox"/>
Атрибут for позволяет пользователю нажимать на метку также, чтобы установить флажок с соответствующим идентификатором (а не именем), а не аннулировать. Я могу лучше управлять макетом с помощью CSS.
Я попробую ваше решение, хотя
Нет недостатка в использовании <label>
, о котором я знаю. Я использовал его много в последние несколько лет.
На самом деле есть 3 способа установить ярлык, первые два соответствуют тем, которые вы задали в своем вопросе:
<label for="xa">XA: <input type="text" id="xa" /></label><br />
<label for="xb">XB:</label> <input type="text" id="xb" /><br />
<label>XC: <input type="text" id="xc" /></label>
Все три из вышеперечисленных работ работают в FF3 и IE7. Я помню, что по какой-то причине я мысленно обозначил последние два как "чтобы их можно было избежать, только частично работать". Поэтому я бы поставил хорошие деньги, что только первый работает в IE6.
Чтобы уточнить: "лучший" способ сделать это - мой пример №1, ваш пример № 2.
Некоторые старые браузеры не интерпретируют атрибут для и вместо этого требуют, чтобы элемент формы был вложен в тег label.
Разработчик, работающий на сайте, не знал, что существует тег <label>
.
Большинство веб-сайтов были сделаны людьми, которые делают только то, что нужно, чтобы заставить сайт работать, как они думают. Поток процесса:
Поскольку большинство из этих людей никогда не пытаются сфокусировать любые входы без использования мыши, проблема никогда не становится очевидной.
Преимущества очевидны, но я не думаю, что большинство из них знают об этом, потому что ярлык, кажется, не передает ничего конкретного. Очевидно, вы можете увидеть преимущество использования сильного тега, потому что он делает текст полужирным, но ярлык тега? Вы не заметите ничего другого.
Потому что это недоработанный тег, который должен привлечь больше внимания. Пока вы на нем (улучшая доступность), не забывайте свойство tabindex.