标准 · WCAG 2.2

SC 2.4.10 级别 AAA WCAG 2.0

章节标题

使用标题组织内容。页面中存在明确章节时,每个章节都需要真实的标题元素(`<h1>`–`<h6>`),而非仅在视觉上模拟标题效果的样式化段落。

要求内容

当页面被划分为多个章节时,每个章节都必须具有以编程方式实现的标题。本成功准则并不要求每个页面都拆分为多个章节——目的单一的短页面(如登录页面)无需子标题也完全符合要求。但凡存在章节划分,则必须使用真实的 <h1><h6> 标记,以便辅助技术能够构建标题大纲。

本成功准则属于 AAA 级别,但其底层实践——使用真实标题——也在 A 级的 1.3.1(信息与关系)中有所隐含,因此大多数无障碍网站通常会附带满足此准则。

如何满足

  • 使用 <h1> 作为页面标题(每页一个),并通过 <h2><h3> 逐级向下构建嵌套章节,不得跳级。
  • 用真实的标题标签替换 <div class="heading"> 和样式化的 <p>”标题”。
  • 确保长篇内容(文章、文档页面、带选项卡的设置面板)的每个独立章节都以标题开头。
  • 对于用作相似章节集合的卡片组件,在适当层级为每张卡片添加标题。
  • 使用 axe DevTools、headingsMap 浏览器扩展或 W3C 验证器对标题大纲进行验证。

常见失败情形

  • 粗体段落伪装成标题——视觉上令人信服,但屏幕阅读器的标题列表中无法识别。
  • 标题层级跳跃(<h1> 直接跳至 <h4>),原因是 CMS 团队按字号而非层级关系选取标题级别。
  • 单个页面出现多个 <h1> 元素(在 HTML5 大纲中允许,但会破坏大多数辅助技术中的导航)。
  • 无论嵌套深度如何,每个章节都标记为 <h2>,导致大纲结构扁平化。
  • 将 Hero 文本标记为 <h1>,而实际页面标题却位于其下方并标记为 <h2>

重要性

对于屏幕阅读器用户而言,标题大纲就是目录。JAWS 和 NVDA 通过对话框展示它(JAWS 中按 Insert+F6);VoiceOver 则通过转子展示它。没有标题或仅将标题用于视觉强调的页面,会迫使这些用户逐行滚动浏览。即便仅承诺满足 AA 级别,将章节标题视为基本写作规范,也会在 SEO、内容复用和编辑效率方面带来回报。