语义化 HTML
使用能清晰传达内容含义和结构的 HTML 元素。正确使用 header、nav、main、article、section 等元素。
语义化 HTML 是指使用能够清晰传达内容含义和结构的 HTML 元素。<div> 和 <span> 是通用容器元素,本身没有语义。而 <header>、<nav>、<main>、<article>、<section>、<aside>、<footer> 等语义元素则明确定义了所包含内容的角色。HTML5 引入的这些元素使得仅通过标记就能准确表达页面结构。
语义化 HTML 对 SEO 有显著贡献。搜索引擎爬虫在分析页面结构时,会以语义元素为线索判断内容的重要性和关联性。例如,<article> 内的文本被识别为主要内容,<aside> 内的文本被视为补充信息。适当的标记有助于搜索引擎准确理解页面主题,从而可能提升搜索结果排名。搜索童贞 (Amazon)提供了详细讲解。
在无障碍方面,屏幕阅读器将语义元素识别为地标,使用户能够高效地在页面内导航。例如,VoiceOver 会显示"导航"、"主要内容"、"页脚"等地标列表,用户可以直接跳转到目标区域。仅用 <div> 构建的页面无法利用此功能。
标题元素 (<h1> 到 <h6>) 的正确层级结构也是语义化 HTML 的重要组成部分。按逻辑顺序使用标题且不跳级 (h1 之后不直接使用 h3) 可以创建清晰的文档结构。屏幕阅读器用户通过标题列表进行导航,因此标题层级混乱会使信息访问变得困难。
一个常见的误解是"使用语义元素会限制 CSS 样式"。实际上,语义元素可以像 <div> 一样自由地使用 CSS 进行样式设置,没有视觉上的限制。另一个容易混淆的是 <section> 和 <article> 的区别:<article> 适用于独立完整的内容 (博客文章、新闻报道等),<section> 适用于主题相关的分组区域。
从字符计数角度看,语义元素的标签名可能比 <div> (3 个字符) 更长 (<article> 和 <section> 各为 7 个字符),但准确传达内容含义的优势远超 HTML 源码字符数的增加。文本内容的字符数不受影响,因此用户看到的字符数不会改变。浏览抖M (Amazon)也可作为参考。