<section>标签语义上必须有标题(h1–h6),否则在文档大纲中不出现、屏幕阅读器跳过、SEO无效;极少数嵌套于已有标题的article内且主题被完全覆盖时可例外,但需确保可访问性。

section 标签本身不要求必须包含 h 标签,但语义化和可访问性强烈建议每个 section 至少有一个标题(h1–h6)来明确其主题和层级关系。
section 的语义本质
section 表示文档中一个独立的、有主题的内容区块,比如“产品介绍”“用户评价”“联系方式”。它不是单纯的样式容器,而是承载结构意义的语义标签。浏览器、屏幕阅读器和搜索引擎都依赖这种结构理解页面逻辑。
如果一个 section 没有标题,辅助技术可能无法准确传达该区块的目的;SEO 也可能弱化该部分内容的权重,因为它缺乏明确的主题锚点。
什么情况下可以没有 h 标签?
极少数场景下,section 可以暂缺标题,但需满足两个前提:
- 该 section 是纯粹的功能性容器(例如仅用于 CSS 布局或 JS 操作),内容完全由其他语义元素(如 article、nav、aside)包裹且已有各自标题;
- 通过 aria-labelledby 或 aria-label 显式提供了可访问的名称,确保屏幕阅读器能识别其作用。
注意:用 div 替代 section 来规避标题要求,会损失语义价值——这不是合理替代,而是退化。
如何正确搭配 h 标签?
标题层级应反映内容逻辑,而非固定从 h1 开始套用:
- 主内容区的 section 通常用 h2–h4,取决于它在整体大纲中的位置(例如在 main 内,h1 属于页面主标题,则 section 用 h2);
- 避免跳级(如 h2 后直接 h4),也避免在同一 section 内多个 h1;
- 可用 hgroup 包裹主副标题(如带副标题的章节),但注意 hgroup 在 HTML5.2 中已被废弃,推荐用普通 heading + span 或 CSS 实现视觉副标题。
实际检查建议
验证 section 是否合理使用标题,可借助以下方式:
- 运行浏览器开发者工具的“无障碍检查器”,查看每个 section 是否有可访问名称;
- 用键盘 Tab 导航,确认焦点进入 section 时,屏幕阅读器是否播报有意义的标题;
- 使用 outline 插件(如 HTML5 Outliner)生成大纲,观察是否存在无标题的孤立 section 节点。
不复杂但容易忽略——一个标题,往往就是结构清晰与混乱之间的分界线。

















