标签用于标识页面中全局性、重复性、主导航用途的链接集合,如顶部菜单、侧边主菜单、页脚跳转栏;不应用于“上一篇/下一篇”或“热门标签”等非导航内容,且需配合语义化内部结构与ARIA属性提升可访问性。

HTML 的 <nav></nav> 标签不是“必须加”的装饰,而是给浏览器、屏幕阅读器和搜索引擎明确传递“这是主要导航区块”的语义信号。用错或滥用反而会干扰辅助技术。
什么时候该用 <nav></nav>?
它只适用于页面中全局性、重复性、主导航用途的链接集合,比如顶部菜单、侧边主菜单、页脚快速跳转栏。
- ✅ 正确:网站 logo 旁的「首页|产品|文档|博客|联系我们」
- ❌ 错误:文章内「上一篇|下一篇」(应使用
<section></section>或普通<div>) <li>❌ 错误:搜索框旁的「热门标签」列表(属于内容补充,非导航)</li> <li>⚠️ 注意:一个页面可以有多个 <code><nav></nav>,但每个都得是独立的导航目的(如顶部主菜单 + 页脚分类导航) - ✅ 推荐:
<nav><ul><li><a href="/">首页</a></li></ul></nav> - ✅ 合理:
<nav><a href="/">首页</a> <a href="/about">关于</a></nav>(简单导航可省略列表) - ❌ 避免:
<nav><button>展开菜单</button></nav>(按钮不是导航目标,应放在外层容器) - ⚠️ 注意:
<nav></nav>不自动提供键盘焦点管理或 ARIA 属性,需要手动加role="navigation"(仅旧 IE/部分读屏需)或aria-label(如aria-label="主菜单")来增强可访问性 - ? 浏览器开发者工具中,
<nav></nav>会被归类为「Landmark」,方便快捷键跳转(如 NVDA+Insert+N) - ⚡ 某些 SSR 框架(如 Next.js)在生成静态 HTML 时,若漏掉
<nav></nav>,会导致无障碍审计工具(如 axe)报landmark-no-duplicate-main类似警告 - ? 不要为了“语义正确”而嵌套过度:比如
<header><nav><nav>…</nav></nav></header>是典型冗余,一个主导航一层<nav></nav>就够
<nav></nav> 里该放什么元素?
它本身不规定内部结构,但语义上应以链接为核心;常见组合是 <ul></ul>+<li>+<a></a>,但不是强制要求。
把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
不用 <nav></nav> 会怎样?
页面照样显示,但会丢失一层关键语义——对依赖辅助技术的用户来说,可能无法快速定位导航区域;对 SEO 而言,虽无直接惩罚,但结构化数据识别率下降,影响富摘要生成。
立即学习“前端免费学习笔记(深入)”;
真正难的不是加不加 <nav></nav>,而是判断哪些链接集合构成了用户认知中的「导航」——这得看真实交互路径,而不是看代码是否整齐。


















