为什么我不能在html nav标签中使用role =“navigation”属性?

时间:2016-05-13 17:20:26

标签: html html5 twitter-bootstrap w3c-validation

我的代码段如下: -

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

当我验证此代码时,它会给我一个警告,但是在bootstrap文档中可以使用相同的代码 这是一个截图 - bootstrap navbar code

2 个答案:

答案 0 :(得分:6)

<nav role="navigation">是多余的,因此不鼓励。在某些元素的过渡期间,除了新标记之外,鼓励使用[role]属性,但只有在浏览器支持新标记的隐式语义之前。

这更常见于<main role="main">,这是HTML的后续添加。

最后,w3c validator没有说你不能使用冗余标记,它只是警告你这是多余的和不必要的。

例如,验证:

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

产生以下警告:

  

警告:元素导航不需要角色属性。

如果是无效标记,则会收到错误。

答案 1 :(得分:1)

因为role =“navigation”是可选的,它仅适用于支持ARIA的用户代理。

在此示例中,页面包含不使用ARIA导航角色的顶部导航部分,以及页面底部的导航部分。从2014年9月开始推荐导航的角色,但在某些未来的时间点可能不需要。

示例:https://awkawk.github.io/using_nav.html