是什么让一份 PDF 无障碍——以及为什么这很重要
Spec: ISO 14289-1ISO 14289-1Spec: ISO 14289-2ISO 14289-2Spec: ISO 32000-2ISO 32000-2Spec: WCAG 2.2WCAG 2.2
一份无障碍的 PDF,是指一个看不见页面的人仍然能够读懂的 PDF——按你所设想的顺序,每一幅图都被描述、每一个标题都被作为标题朗读出来。本页解释一份 PDF 如何承载这层含义——带标签的内容、一棵结构树、阅读顺序、替代文本——以及为什么把它做对是值得的。
为什么这很重要
标题为“为什么这很重要”的章节一份 PDF 在默认情况下,是一组位于各坐标处的标记。它说的是把这个字形放在这里、把这张图画在那里。它本身并不会说这是一个标题、这一行属于那一列,或这张图显示的是一份已签署的合同。一个有视力的读者会立刻从版式中补上这些空白。一个屏幕阅读器做不到。它只拥有文件实际陈述的那些内容。
于是一份未加标签的 PDF 可以看起来完美无缺,读起来却像一派胡言:一个两栏的页面被一路横着读过去,一张数据表被压扁成一串互不相关的数字,一张图表干脆是沉默的。信息就在页面上。它只是触达不到。对千百万人而言,这就是一份他们能用的文件与一份他们用不了的文件之间的区别——而且越来越成为一项合规的公共服务与一项法律风险之间的区别。
精简版
标题为“精简版”的章节- 一份带标签的 PDF 在视觉标记之上承载着一层平行的含义:这一串字形是一个标题,那一块是一个列表,这一区域是一张表格。
- 那些标签挂在一棵结构树上——一份文档的逻辑大纲,独立于各物件在页面上所处的位置(Spec: ISO 32000-2, §14.7ISO 32000-2 §14.7)。
- 这棵树确定了阅读顺序,于是内容会按你所设想的次序呈现,而不是按字形碰巧被绘制的顺序。
- 非文本内容携带着一份文本等价物:图像的一段
/Alt描述,或读者本会读错的一串字形的替换文本(Spec: ISO 32000-2, §14.8ISO 32000-2 §14.8)。 - PDF/UA(ISO 14289)是那个规定“以上这一切何时算齐备且正确”的标准。它正是“无障碍的 PDF”作为一项工程主张、而非营销话术时的含义(Spec: ISO 14289-1ISO 14289-1)。
NextPDF 如何处理它
标题为“NextPDF 如何处理它”的章节两层,同一份文件
标题为“两层,同一份文件”的章节把一份无障碍的 PDF 想成同行的两个层。内容层是你所看到的:字形、线条、图像,置于各坐标处。结构层是它的含义:一棵元素之树——文档、标题、段落、列表、表格、图形——为每一块内容命名,并把它放进顺序里。
这两者由标记内容缝合在一起。页面上每一段有意义的内容都被包裹起来并赋予一个标识符;对应的结构元素则指回那个标识符。正是这条链接,让辅助技术能够走遍这棵逻辑树,并在每一个节点上找到它所描述的、页面上那些确切的字节。把链接做对,一个标题就会被作为标题朗读;做错了,结构就成了一个与所显示内容不符的虚构。
阅读顺序取决于结构树,而非布局
标题为“阅读顺序取决于结构树,而非布局”的章节这就是那个让人意外的观念。屏幕阅读器所采用的顺序,是结构树的顺序,而那与内容落在页面上何处无关(Spec: ISO 32000-2, §14.7ISO 32000-2 §14.7)。你可以最后才画侧边栏、最先画脚注;只要这棵树把它们以所设想的次序串起来,文档就会读得正确。反过来,一个版式精美、树却乱了序的页面,会读得“精美地错”。版式是给眼睛的。树是给其他所有人的。
为所有非文本内容提供文本替代
标题为“为所有非文本内容提供文本替代”的章节一张照片、一个徽标、一张图表、一条装饰性的横线——这些都不是文字,所以默认情况下它们都不会朗读出任何东西。带标签的 PDF 用替代描述来填补这道空缺:图像的 /Alt 文本描述它所传达的内容,而 /ActualText 为本会被读错的一串字形——例如一个连字或一个风格化的首字下沉——提供一个干净的替换(Spec: ISO 32000-2, §14.8ISO 32000-2 §14.8)。纯装饰性的标记被标记为人为产物(artifact),于是它们会被跳过、而不是被当作噪声朗读出来。规则很简单:如果它承载含义,它就拿到一份文本等价物;如果它不承载,它就被标记到一旁。
屏幕阅读器实际如何读取该文件
标题为“屏幕阅读器实际如何读取该文件”的章节当辅助技术打开一份带标签的 PDF 时,它并不读页面。它读这棵树,并用标记内容的链接把每个元素的文本按顺序呈现出来。
- OpenThe reader finds the structure tree root in the document catalog, the entry point to the logical document.
- Walk the treeIt traverses the logical hierarchy — document, headings, paragraphs, lists, tables — in structure order.
- Map the roleEach structure type maps to a familiar role, so a heading is announced as a heading and a list as a list.
- Read the contentFor each element it reads the linked page text, or the alternate description when the content is an image.
- Skip the noiseAnything tagged as a decorative artifact is passed over, never spoken.
因为这个次序就是树的次序,一份正确加了标签的两栏报告会先读完一栏、再读另一栏,一张表格会带着它的表头逐格朗读,而一张图形会朗读它的描述、而不是陷入沉默。阅读器永远不必去猜作者的意图,因为意图已被记录在文件里。
确立它的标准:PDF/UA
标题为“确立它的标准:PDF/UA”的章节这一切在 PDF/UA 之下成为一项可检核的主张。PDF/UA-1,以 ISO 14289-1 发布,在带标签的 PDF 模型之上陈述了一份无障碍 PDF 的文件级要求(Spec: ISO 14289-1, §7ISO 14289-1 §7)。PDF/UA-2,即 ISO 14289-2,把那些要求承载到 PDF 2.0 基线之上,并细化了真实内容如何映射到结构模型(Spec: ISO 14289-2, §8ISO 14289-2 §8)。PDF/UA 管辖的是文件的结构;更广义的 Web Content Accessibility Guidelines 描述的是一份文档据以被衡量的结果,而一项符合性主张会指明它实际达到的等级(Spec: WCAG 2.2, §5WCAG 2.2 §5)。两者协同:PDF/UA 说明机制齐备且正确,WCAG 则界定对一个人来说怎样才算好。
实践示例
标题为“实践示例”的章节标签是看不见的,所以检查它们唯一诚实的方式,就是去看某个工具所报告出来的结构。一个最小的无障碍页面拥有一棵真实的树:一个文档根、一个标题、一个段落,以及一张携带描述、而非沉默的图形。
StructTreeRoot └─ Document ├─ H1 "Quarterly Report" ├─ P "Revenue rose across every region this quarter." └─ Figure /Alt "Bar chart: revenue by region, all four up"一个走遍这棵树的阅读器会朗读一个一级标题、读出那个段落,然后读出图形的描述——就按那个顺序,无论每个元素被画在何处。把这棵树剥掉,同一个页面就变成三段互不相连的字形,外加一个沉默的矩形。像素是一模一样的。体验却不是。
常见误解
标题为“常见误解”的章节常见的看法是:一份 PDF“因为文本可被选中,所以是无障碍的”。文本可选中意味着那些字形是真正的字符、而不是一张扫描出来的图片——这是必要的,但远谈不上充分。没有结构树的可选文本仍然没有标题、没有阅读顺序、没有表格关系,也没有图像描述。无障碍关乎的是结构与含义,而不仅仅是可提取字符的存在。一份文件可以通过复制粘贴,却在屏幕阅读器面前彻底失败。
第二个陷阱,是把“带标签”当成一个是/否的徽章。一份文件可以带了标签却仍然出错:标签给内容贴错了标、一棵其顺序与意图不符的树、带着空白或无用 /Alt 文本的图像。带标签是这段对话的开端,而不是它的终点。
限制与边界
标题为“限制与边界”的章节本页解释的是概念,以及定义它们的那些标准。它不是一份符合性证书,也没有任何工具能凭一己之力授予一份。
| Edition | Availability |
|---|---|
| Core | Core writes tagged PDF: it emits a structure tree, marks decorative content as artifacts, and carries the alternate text you supply. |
| Pro | Adds richer structure mapping for complex layouts — multi-level tables, lists, and figures — so the tree better matches the intended reading order. |
| Enterprise | Adds a structural conformance check and report. It remains a structure check, not a certification — the final determination belongs to a validator and a human reviewer. |
有两道边界值得明确说出来。第一,引擎能产出正确的结构,却无法评判编辑质量:它会忠实地承载一段写着“图像”的 /Alt 描述,而那是作者的责任,不是引擎的。无障碍是一项工具与人之间的协作——工具记录含义,人提供含义。第二,一次自动化检查——包括 veraPDF 这样的验证器——确认的是机制齐备且格式良好。它并不确认一个使用屏幕阅读器的人真的能理解结果。最终的签核是由人来做的。关于那次自动化检查如何融入其中,参见验证 PDF/A 与 PDF/UA。
相关文件
标题为“相关文件”的章节- 标准全貌 — PDF/UA 与 WCAG 在 NextPDF 所追踪的更广义标准联盟中的位置。
- 字体:最难的部分 — 为什么看起来正确的文本仍可能无法搜索,以及那如何触及无障碍。
- 一份 PDF 究竟是什么 — 结构树所栖身其中的那个对象模型。
- 验证 PDF/A 与 PDF/UA — 如何运行一次自动化符合性检查,以及它能告诉你什么、又不能告诉你什么。
词汇表
标题为“词汇表”的章节- 带标签的 PDF(Tagged PDF) — 一份在其视觉内容之上承载着一层平行结构标签的 PDF,使辅助技术能够触达文档的含义,而不只是它的标记。
- 结构树(Structure tree) — 一份文档的逻辑大纲(根、标题、段落、列表、表格、图形),独立于页面版式记录,并用以确定阅读顺序。
- 阅读顺序(Reading order) — 内容呈现给阅读器的次序,取自结构树、而非取自字形被绘制的位置。
- 替代文本(Alternative text) — 非文本内容的一份文本等价物:图像的一段
/Alt描述,或本会被读错的一串字形的/ActualText替换。 - 人为产物(Artifact) — 被标记为装饰性(一条横线、一个背景、一个水印)的内容,使阅读器跳过它、而不是把它朗读出来。
- PDF/UA — PDF/Universal Accessibility(PDF 通用无障碍),即 ISO 14289。那个定义一份带标签的 PDF 何时算真正无障碍的标准。PDF/UA-1 是 ISO 14289-1;PDF/UA-2 是 ISO 14289-2,建立在 PDF 2.0 基线之上。