一个简单的数据表,顶部有一行列标题,访问起来相对简单。真正的痛苦始于复杂的表格——列和行中都有标题、合并单元格或汇总行。本文介绍了如何标记表格标题,以便屏幕阅读器“理解”每个单元格适用哪些标题,而不会丢失上下文。

简而言之 — 本指南涵盖的内容

  1. 为什么 TH 与 TD 不同
  2. 当范围足够,以及当您需要更多时
  3. 摘要行和多个标题
  4. 这在 Word 和 PDF 中的实际效果如何

为什么 TH 与 TD 不同

在 HTML 表格或带标签的 PDF 中,每个单元格都具有两种角色类型之一:TH(表格标题)或 TD(表格数据 - 常规数据单元格)。差异不一定是视觉上的——标题单元格和数据单元格可以看起来相同的样式——而是语义上的:TH告诉屏幕阅读器“这是一个标题,解释了下面或旁边的数据的含义。”如果没有正确的标记,屏幕阅读器会逐行浏览表格,就好像每个单元格都是相等的一样,并且很容易完全忘记哪些数据属于哪个类别。

何时范围足够,何时需要更多

对于大多数表,您可以添加范围每个 TH 单元格的属性以指示它是否是列标题(scope="col")或行标题(scope="row")。当屏幕阅读器到达数据单元格时,它会自动读出相关的列标题和行标题,因此用户会听到“1,200 - 销售额,第一季度”,而不仅仅是一个孤立的“1,200”。

对于特别复杂的表,具有超过两级标题(例如,将多个子列分组的超级标题),仅范围并不总是足够的。在这些情况下,请使用属性 id 和 headers 对:为每个标题单元格提供唯一的 id,并在每个数据单元格列表中的 headers 属性中提供与其相关的所有标题 id。这种方法更灵活,但也更复杂且容易出错——保留给真正需要它的情况。

说明图 用范围标记表头 带有标记的列和行标题的数据表示例 标题单元格 (TH) 与常规数据单元格 (TD) 四分之一 产品 销售 第一季度 第二季度 第三季度 文件 网站 文件 1,200 950 1,480 范围=“col” 范围=“行” 列标题获取范围=“col”,行标题获取范围=“行” - 因此屏幕阅读器会为每个单元格宣布这两个标题
在此表中:列标题(“季度”、“产品”、“销售额”)标记为scope="col",以及行标题(“Q1”、“Q2”、“Q3”)scope="row"—因此每个数据单元格都链接到与其相关的两个标题。

摘要行和多个标题

表格底部的汇总行(“总计”、“平均值”)本身就是一种标题 - 通常适合将总计单元格本身标记为带有scope=“row”的 TH,以便屏幕阅读器将其与常规数据行区分开来。同样,带有超级标题的表对多个列进行分组(例如,跨越“Q1”、“Q2”的“2026 年销售额”)需要正确使用colspan属性与范围一起,因此在大声朗读时也会保留分层分组。

💡实用技巧

如果一个表格感觉太复杂而无法正确标记(超过两级标题、多次合并),有时最简单且最容易访问的解决方案是将其分成几个更简单的表格,或者在其旁边添加纯文本摘要。

在 Word 和 PDF 中的实际效果如何

在 Word 中,使用标准“插入 ▸ 表格”工具并在表格设计中选中“标题行”可创建正确的基础,在大多数情况下会自动将其导出为 PDF 为 TH。在 Acrobat 中,从 Word 导出并运行辅助功能检查后,需要打开标签树并确认标题单元格确实被标记为 TH 而不是常规 TD — 这是一个很容易被忽略的常见导出错误。

文档中是否有从未测试过的数据表?

我们的工具可识别您网站上每个 PDF 文件中标题缺失或不正确的表格。

免费扫描您的网站 ←