Создание флажков и радиокниг

Большое количество сайтов (смею сказать, большинство?) Не делает метки доступными для своих флажков и радиовходов. Похоже, что это огромная прибыль от использования при минимальных затратах. Существуют ли проблемы совместимости/функциональности/удобства использования с использованием <label>, которые препятствовали бы разработчикам использовать этот тег?

Изменить: Даже StackOverflow кажется виновным в этом, например, при задании вопроса, ярлык Notify daily any new answer не доступен для кликов.

Ответ 1

Нет причин, кроме лени. <label> s необходимы для доступности, а также очень удобны для тех из нас, кто имеет плохую цель с помощью щелчков мыши:)

Ответ 2

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

Ответ 3

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

Если вы создавали поля формы программным образом, вам нужно было бы создать уникальный идентификатор для каждого из них на каждой странице, на которой они появились. Возможно, это может быть проблемой.

Но вообще-то, да, я думаю, что просто программисты не имеют этого в своих головах.

В ASP.NET WebForms (или что бы он ни называл) вам нужен атрибут AssociatedControlID в элементе <asp:Label>.

Ответ 4

И вот демонстрация для тех, кто смотрит, как это сделать.

Существует способ подключения текста рядом с элементом формы с самим элементом, так что можно нажать один из них, чтобы активировать элемент управления:

что бы вы хотели с вашим напитком?

<label for="ice1"><input type="checkbox" name="withice" id="ice1">ice</label> 
<label for="ice2"><input type="checkbox" name="withlid" id="ice2">plastic lid</label>
<label for="ice3"><input type="checkbox" name="withstraw" id="ice3">straw</label>

Ответ 5

<label> - это чистый тег HTML, не требуется JavaScript. Я полагаю, что все (основные) браузер поддерживают этот тег, поскольку его очень легко реализовать.

Многие разработчики не используют его, потому что:

  • требуется больше усилий (добавление всех тегов везде)
  • они не знают об этом существовании
  • они не считают, что это удобно?!

Но нет причин не использовать тег. Если вы очень ограничены полосой пропускания, может быть?