我经常遇到具有以下结构的网页:
<header role="banner">
<nav role="navigation">
</nav>
</header>例如,带有role="navigation"的元素放置在role="banner"中,但在我看来,当<nav>和<header>位于相同的DOM级别时,正确的结构:
<header role="banner">
</header>
<nav role="navigation">
</nav>请帮助我理解哪个例子更正确。
发布于 2018-08-07 12:04:37
发布于 2018-08-08 06:15:02
这两个例子都很好。
WAI创作实践提供了一些地标设计的一般原则。这些说明表明:
需要考虑的是不同的屏幕阅读器如何处理嵌套区域。JAWS和NVDA提供了一个地标概述工具,允许发现嵌套的地标区域。另一个工具是一个键盘命令,可以跳到下一个地标;但是一些屏幕阅读器(例如ChromeVox)只以这种方式公开顶级地标。
在我看来,页面的主导航最好被视为顶级地标(通常就在<header>之后,就像您的第一个示例一样)。如果您的页面有辅助导航区域,则这些区域适合嵌套。例如,网站某一部分的子菜单可能是<aside>内部的一个<aside>。
如果您的页面有多个导航地标,那么使用aria-label或aria-labelledby为它们提供标签是很重要的。
https://stackoverflow.com/questions/51724929
复制相似问题