必须全页唯一且为直接子元素,禁止嵌套在、等标签内;否则会导致屏幕阅读器跳过、seo降权及无障碍兼容性问题。

移动端
不是必须,但结构上建议分离。很多开发者误以为
关键判断依据是内容语义:如果导航服务于整页(如顶部菜单、底部 tab),用顶层
-
<nav></nav> 的作用是标记“主要导航链接集合”,不是“所有带链接的容器”
- 同一页面可有多个 ,但需通过
aria-label 或 title 区分用途,例如 <nav aria-label="主导航"></nav> 和 <nav aria-label="文章内目录"></nav>
- 老旧 Android WebView(4.4 及以下)不识别 语义,但不影响渲染;若需辅助技术兼容,建议配合
role="navigation"
响应式场景下 和
常见错误是把整个响应式布局容器(如 flex 容器或 grid wrapper)都包进 ,导致语义膨胀。正确做法是让 仅包裹真正“页面核心内容”,其他装饰性、辅助性区块走