不能。HTML table 的 summary 属性已被HTML5废弃,现代浏览器直接剥离、屏幕阅读器不播报,且触发警告;应改用 caption 结合 scope/headers 实现可访问性。

不能。HTML table 的 summary 属性在现代浏览器和屏幕阅读器中已完全失效,写它不仅没用,还会触发控制台警告、干扰辅助技术解析,甚至导致部分旧版读屏跳过整个表格。
为什么 summary 属性现在根本不起作用
HTML5 规范已正式废弃 summary,所有主流浏览器(Chrome、Firefox、Edge、Safari)在解析时直接剥离该属性——DOM 中查不到 table.summary,JS 读不到,CSS 样式不了,屏幕阅读器(NVDA、JAWS、VoiceOver)也不播报。你写 <table summary="用户订单列表">,实际效果等于没写,还可能被 axe 或 WAVE 工具标为“obsolete attribute”,CI 构建失败。
真正起作用的替代方案只有 caption + scope/headers
可访问性依赖结构语义,不是隐藏字段。必须组合使用:
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
-
<caption>必须作为<table>的第一个子元素,内容要具体(如<caption>2024 年 Q2 华东区退款申请汇总(含处理状态)</caption>),不能塞进<thead>或用 CSS 移动位置 - 简单表格:每个
<th>补scope="col"(列头)或scope="row"(行头) - 复杂表头(跨行/跨列):用
id给<th>命名,再在对应<td>上写headers="id1 id2"
常见迁移错误和后果
很多人以为删掉 summary 就完事了,但后续几步错一步,可访问性就断链:
立即学习“前端免费学习笔记(深入)”;
- 把
<caption>放在<thead>里 → 屏幕阅读器直接忽略,报“未命名表格” - 用
display: none隐藏<caption>→ 视觉不可见,读屏也读不到 - 动态渲染表格后没同步更新
<caption>文本 → 读屏仍播报旧上下文,比如“Q1 数据”而实际是“Q2” - 指望
aria-describedby替代<caption>→ 它只是补充说明,不能代替标题本身
最易被忽略的一点:可访问性不是靠加一个属性实现的,而是 <caption>、scope 或 headers、必要时的 aria-describedby 必须协同工作——缺一环,屏幕阅读器就可能只读出“123”,却不知道“这是北京 6 月环比增长率”。


















