必须使用<h1>至<h6>语义化标题标签构建层级结构,遵循唯一<h1>、逐级嵌套、不跳级、非空内容原则;可结合<section>实现多维独立标题上下文;废弃<hgroup>;ARIA仅作可访问性补充。

如果您在编写HTML5文档时需要为内容设置结构化的标题层级,则必须使用语义化的标题标签来明确表达内容的重要性和层次关系。以下是HTML5中定义各级标题的具体方法:
一、使用<h1>至<h6>标签定义六级标题
<h1>至<h6>是HTML5中专门用于定义标题的语义化标签,其中<h1>表示最高级别标题,<h6>表示最低级别标题。浏览器默认对这些标签应用递减的字体大小和加粗样式,但其核心作用在于传达文档结构而非仅控制外观。
1、在文档主体中插入<h1>标签作为主标题,且整个页面应有且仅有一个<h1>标签。
2、在<h1>下方按逻辑层级依次使用<h2>表示一级子标题,<h3>表示二级子标题,依此类推。
立即学习“前端免费学习笔记(深入)”;
3、避免跳级使用标题标签,例如不得在<h2>后直接使用<h4>,必须保持层级连续性。
4、确保每个标题标签都包含有意义的文本内容,不可为空或仅含空白字符。
二、结合<section>与嵌套标题实现多维结构
HTML5允许在<section>、<article>、<nav>等分区元素内部重新开始标题层级,使同一文档中可存在多个独立的标题上下文。该方法支持更精细的内容组织,同时维持语义完整性。
1、为每个独立内容区块包裹<section>标签,并在其中放置一个<h2>作为该区块主标题。
2、在该<section>内部,继续使用<h3>、<h4>等标签构建子层级,无需考虑外部区块的标题级别。
3、多个<section>并列时,各自内部的<h2>均视为同级标题,由父容器提供上下文区分。
4、检查生成的文档大纲,确认各标题在逻辑上无歧义、无重复主干层级。
三、使用<hgroup>合并多行标题(已废弃,仅作兼容说明)
<hgroup>曾用于将<h1>与辅助性副标题(如<h2>)组合为单一标题单元,以避免大纲中出现冗余层级。但该标签已在HTML5.2草案中被正式废弃,现代标准不再推荐使用。
1、若需兼容极旧版本解析器,可将<h1>与<h2>置于<hgroup>内,但须知主流浏览器已忽略其语义影响。
2、替代方案为直接使用<h1>配合CSS样式控制副标题外观,或采用<header>包裹<h1>与普通<p>元素。
3、所有新项目中应完全避免使用<hgroup>,改用语义清晰、持续受支持的标签组合。
四、通过ARIA属性增强标题可访问性
当标题内容需向屏幕阅读器明确传递层级或角色信息时,可借助ARIA(Accessible Rich Internet Applications)属性进行补充标注。该方法不改变视觉呈现,但显著提升残障用户的内容理解能力。
1、为非标准标题容器(如使用<div>模拟标题)添加role="heading"属性。
2、配合aria-level属性指定对应级别,例如aria-level="2"等效于<h2>。
3、确保aria-level值为1–6之间的整数,且在同一上下文中不与原生<h1>–<h6>标签冲突。
4、优先使用原生标题标签;ARIA仅用于无法修改DOM结构或需动态控制标题级别的特殊场景。











