nav 标签在页面面包屑导航里的语义结构实现

作者:袖梨 2026-07-02
错误。nav标签可用于面包屑导航,但必须配合aria-label="Breadcrumb"、ol结构及aria-current="page"等语义化属性,以准确表达其作为上下文导航的意图,而非主导航。

nav 标签不适用于面包屑导航的语义标记。

面包屑不是主导航

nav 元素在 HTML5 中专用于标记页面的**主导航区块**,即用户在全站范围内跳转的主要入口集合(如顶部菜单、侧边栏导航、页脚链接组)。面包屑是辅助性导航,反映当前页面在网站层级结构中的位置路径,属于“上下文导航”,语义上与 nav 不匹配。

正确语义应使用 aria-label + nav 的替代方案

虽然不能用 nav 包裹面包屑,但可借助更精确的语义组合:

  • ol(有序列表)包裹面包屑项,体现层级顺序和逻辑先后
  • 为 ol 添加 aria-label="Breadcrumb",明确告知辅助技术这是面包屑
  • 每个 li 中的链接用 a 标签,当前页用 span(禁用链接)并加 aria-current="page"

实际代码示例

符合无障碍与语义规范的写法如下:

<ol aria-label="Breadcrumb" role="navigation">
  <li><a href="/">Home</a></li>
  <li><a href="/products">Products</a></li>
  <li><span aria-current="page">Wireless Headphones</span></li>
</ol>

为什么不能强行套用 nav

滥用 nav 会干扰屏幕阅读器用户的导航效率——他们常通过快捷键(如 NVDA 的 N 键)快速跳转到 nav 区域,若把面包屑也放进 nav,会导致信息过载、定位失准。HTML 语义的核心是“准确表达意图”,而非“看起来像导航”。

相关文章

精彩推荐