2015-09-24 3 views
0

Мы все знаем, что в HTML идентификатор элемента (и должен быть) уникален.Почему спецификация «для атрибута» <label> подсказывает, что идентификатор не уникален?

Из standard:

Значение должно быть уникальным среди всех идентификаторов в домашней поддереве элемента и должен содержать по крайней мере один символ.

Тем не менее, в том же стандарте, for attribute in the <label> элемента гласит:

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

Это означает, что может быть больше одного элемента с идентификатором, равным значению атрибута for.

Итак, что это? Уникальный - или нет?

ответ

3

Он охватывает случай, когда кто-то может не сделать уникальный идентификатор, так как на самом деле нет ничего трудного, чтобы никто не нарушил стандарт и не указал поведение в таком случае. В основном вторичная линия, обеспечивающая идею о том, что должно быть только 1 id с определенным значением.

+0

Я действительно надеюсь на менее упрямый ответ. То, что можно, по крайней мере, интерпретировать из самого стандарта. Если ничего не придет, я в конце концов приму это, хотя это не тот тип ответа, который я получил после. – Amit

+0

Это не произойдет, так как «веб-стандарты» - это действительно мнение о том, что браузер интерпретирует их. Абсолютно ничего не мешает разработчику использовать идентификатор более одного раза, за исключением случаев, когда интерпретаторы браузера нацелены только на первую, с которой столкнулись. Это именно то, что рекомендует спецификация. Это не похоже на то, что существует международный комитет, который контролирует этот материал и ставит разработчиков браузеров и разработчиков как «нарушающих» рекомендацию. Жаль, что без стандартов вы получаете Microsoft ... – scrappedcola