元素必须是的直接子元素且全页唯一, 标签应作为页面或区块的语义头部,二者共同构成可访问、可索引的内容主干结构,对SEO和无障碍支持至关重要。

许多开发者编写HTML时,习惯将所有内容塞入,再额外套一层来调整布局。虽然浏览器能够正常渲染,但搜索引擎和屏幕阅读器在解析时会陷入困境——它们很难在扁平的结构中区分主干与枝叶。语义标签并非炫技,而是与机器沟通的约定;关闭CSS后纯文本结构依然清晰,才算合格的HTML文档。
善用 与 构建清晰的内容层级
如今多数浏览器和辅助工具均能识别语义标签,但许多人仍将仅当作logo容器,把视为通用容器,这浪费了它们的语义价值。应包裹页面顶部的导航与标题,其中最好包含(页面主标题),避免用模拟。而必须且仅可出现一次,代表文档核心内容区域,不可嵌套在或中,否则会破坏其“唯一主体”的语义。
内建议放置(页面主标题),不可省略或用模拟不能嵌套于或中,以免破坏“唯一主体”的语义- 若页面包含多个独立文章(如博客列表),每个
应有自己的,但全页仍只使用一个
避免滥用 替代HTML5语义标签
编写HTML时,下意识使用包裹样式组件,常导致结构扁平、无障碍支持下降。举例而言,页脚联系信息使用,屏幕阅读器仅能识别为“分区”;而改用标签后,则会明确播报“页脚”。导航区块应优先使用,即便仅有两个链接也值得采用。侧边栏内容(如相关链接、广告)适合用,但需注意并非所有“靠边”的内容都属于——它必须与内容弱相关。需有明确主题和标题(–),纯为样式分隔不要滥用。
与 的适用场景与边界
两者均表示“成块内容”,但语义不同:是可独立分发、复用的内容单元(如一篇新闻、一条微博),则是为组织内容而设的逻辑分组(如“技术细节”“性能对比”)。混淆它们会导致RSS订阅失败或结构化数据提取错误。需注意几个常见误区:博客正文与评论区整体不应使用,正文本身是,评论区应为独立的或;一个内可包含多个(如首页文章列表),但一个内部不应再嵌套;没有标题的区块不要硬套,空白对辅助技术毫无意义。
合理规划 直接子元素,确保语义准确
HTML5规范允许下直接放置、、等元素,但实际开发中常因CSS布局需求额外添加一层,这会打断语义流。现代CSS(Flex/Grid)已无需靠包裹div控制布局。若必须添加容器(如为了max-width居中),可使用显式声明语义,避免读屏器跳过。下的首个标题应为,且应属于或,不要在中重复定义。验证工具(如axe或WAVE)报“landmark is not unique”错误,大概率是或出现多次。
语义标签并非装饰,而是与机器沟通的契约。完成HTML编写后,关闭CSS检查纯文本结构是否依然清晰,这一方法比任何校验工具都更为有效。
