摘要应作为 article 的逻辑子部分置于标题后、正文前,用 header 包裹标题与摘要,摘要用 p 或 div 标签,通过 aria-describedby 关联标题与摘要,保持可见且自足精炼,避免隐藏或机械截断。

article 标签本身不包含摘要语义,它只表示一个独立、可复用的内容单元。摘要需由开发者主动添加,并通过恰当的 HTML 结构与属性明确表达其角色。
摘要应作为 article 的逻辑子部分,而非额外容器
把摘要写在 article 内部,紧邻标题之后、正文之前,是最自然的结构。它不是 article 的“兄弟”,而是其内容流的一部分。
- 用 header 包裹标题和摘要,体现二者同属文章头部信息
- 摘要使用 p 或 div 即可,无需额外语义标签(如 summary,它专用于 details)
- 避免将摘要提至 article 外层——这会破坏内容归属关系,影响无障碍阅读和爬虫理解
用 aria-describedby 关联摘要与标题,增强可访问性
屏幕阅读器用户常靠标题快速跳转,若摘要能被“标题所描述”,体验更连贯。
- 为 h2(或 h1/h3)添加 id="post-title"
- 为摘要容器添加 id="post-excerpt"
- 在标题上加 aria-describedby="post-excerpt",明确声明“此标题由该摘要描述”
避免用 hidden 或 display: none 隐藏摘要
摘要对 SEO 和辅助技术有价值,隐藏即放弃其语义作用。
- 若需视觉收起(如折叠列表),用 details/summary 或 JS 控制 height + overflow,保持 DOM 可读
- 纯 CSS 隐藏(visibility: hidden / opacity: 0)仍可能被读屏软件读取,但不可靠,不推荐
- 真正不需要摘要时,就不要渲染它,而不是藏起来
列表页中的 article 应自带完整摘要,不依赖外部提示
博客列表页的每个 article 是独立上下文,不能指望用户记住前文或点击后才理解内容主题。
- 摘要文字需自足:交代核心事件、观点或结果,不含“本文将介绍…”这类预告式套话
- 长度控制在 1–3 行(约 80–150 字),兼顾信息量与扫读效率
- 避免仅截取正文开头——可能切在半句话中,丢失主谓宾;应重写或提炼,而非机械截断











