HTML, доступность: возможно ли пометить два элемента управления одной меткой? - PullRequest
3 голосов
/ 28 января 2011

В сети я нашел пример, где тег label и его атрибут for использовались для указания браузера, которому принадлежит метка.Например:

<form>  
  <label for="male">Male</label>
  <input type="radio" name="sex" id="male" />
  <br />
  <label for="female">Female</label>
  <input type="radio" name="sex" id="female" />
</form>

Мой вопрос заключается в том, есть ли у меня два элемента управления, в которых одна и та же метка должна быть назначена комбинации обоих (не каждому, если возможно), например:

a label text + a numeric input field + a text (unit) input field  

Должен ли я

  1. назначить метку только числовому полю ввода (поскольку это невозможно) или
  2. можно ли ввести числовой и текстовый вводполе в один тег span и прикрепить метку к этому диапазону?
  3. или оба элемента управления вводом могут быть помещены в один тег label?

Какое решение будет работать для обеспечения доступности во всех браузерах?

1 Ответ

7 голосов
/ 28 января 2011

Атрибут for меток действительно может использоваться с любым элементом (при условии совпадения ID), но только для одного элемента. Кроме того, это действительно имеет смысл только для формы элементов.

Из спецификации :

for = idref [CS]

Этот атрибут явно связывает определяемую метку с другим элементом управления. При наличии значение этого атрибута должно совпадать со значением атрибута id какого-либо другого элемента управления в том же документе. Если отсутствует, определяемая метка связана с содержимым элемента.

И

Чтобы неявно связать метку с другим элементом управления, элемент управления должен находиться внутри содержимого элемента LABEL. В этом случае LABEL может содержать только один элемент управления .

(акцент мой)

...