Почему я не могу использовать атрибут role="navigation" в HTML-теге nav?

Мой фрагмент кода ниже:-

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

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

2 ответа

Решение

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

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


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

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

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

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

Предупреждение: элемент навигации не нуждается в атрибуте роли.

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

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

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

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

Другие вопросы по тегам