2016-05-13 3 views
2

Мой код-фрагмент ниже: -Почему я не могу использовать атрибут role = "navigation" в теге html nav?

<nav role="navigation" data-offset-top="100" data-spy="affix" class="navbar navbar-inverse navbar-fixed-top"> 

Когда я проверить этот код, он даст мне предупреждение, но тот же код доступен на начальной загрузки документации.
Вот скриншот - bootstrap navbar code

+2

Где говорится, что вы не можете? Понятно, что предупреждение не говорит об этом - вот почему это всего лишь предупреждение. – BoltClock

ответ

4

<nav role="navigation"> является излишним, так что это не рекомендуется. В течение переходных периодов для некоторых элементов рекомендуется использовать атрибут [role] в дополнение к новому тегу, но только пока браузеры не поддерживают неявную семантику для нового тега.

Это чаще встречается с <main role="main">, который был более поздним дополнением к HTML.


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

Например, проверка:

<!doctype html> 
<title>example</title> 
<nav role="navigation"></nav> 

Выдает следующее предупреждение:

Предупреждение: Элемент нав не нужен атрибут роли.

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

+0

Спасибо за помощь. Я очень ценю это. –

0

Поскольку role = "navigation" является необязательным, и только для пользовательских агентов, поддерживающих ARIA.

В этом примере страница содержит верхний раздел навигации, который не использует роль навигации ARIA, и навигацию в нижней части страницы, которая делает. Роль навигации рекомендуется по состоянию на сентябрь 2014 года, но в какой-то момент времени может не понадобиться.

Пример: https://awkawk.github.io/using_nav.html

+0

, пожалуйста, подведите итог к примеру в своем ответе –

+0

@ noam-hacker Хорошо, сделано – RobertoB

+0

Спасибо за помощь –