summary 属性在现代 HTML 中已废弃,主流浏览器忽略其语义,应改用 <caption> 和 scope 属性提升可访问性。

summary 属性不能可靠描述表格用途,现代 HTML 中它已失效,别用。
浏览器控制台会警告:The 'summary' attribute on the 'table' element is obsolete.
Chrome、Firefox、Edge 等主流浏览器自 HTML5 起就完全忽略 summary,既不渲染,也不向屏幕阅读器传递信息。写 <table summary="用户订单列表"> 只会让代码显得过时,还可能干扰辅助技术对表格结构的解析。
真正起作用的是 <caption> 和 scope 属性
可访问性依赖明确的语义关联,不是隐藏文本:
-
<caption>必须作为<table>的第一个子元素,直接声明表格用途,例如<caption>2024 年 Q2 用户退款申请汇总</caption>; -
scope="col"用于列标题<th>,告诉屏幕阅读器“这一列所有数据都属于这个字段”; -
scope="row"用于行标题(如首列),适用于带分类标识的表格; - 复杂表头(跨行/跨列)则需配合
headers属性和id显式绑定。
为什么有人还在用 summary?常见误解与后果
有人误以为它能提升 SEO 或给开发者留备注,实际:
- 搜索引擎不索引
summary值,对排名无影响; - 它不是注释字段,无法被 CSS 或 JS 安全读取(
table.summary在 DOM 中仍可读取,但已无语义意义); - 若表格没加
<caption>,仅靠summary,屏幕阅读器大概率报“未命名表格”,用户根本不知道这是什么表。
迁移建议:三步替换掉 summary
现有代码中搜 summary= 并替换:
立即学习“前端免费学习笔记(深入)”;
- 把原
summary文本内容移到<caption>内; - 确保
<caption>紧跟<table>开始标签; - 为每个
<th>补上scope(简单表用scope="col"或scope="row"即可)。
<caption> 是起点,scope 是路径,而 summary 是一条早已被拆除的旧路。



















