如何使用 XSL:FO 和 Apache FOP 正确标记 table 边界

How to correctly tag table border with XSL:FO and Apache FOP

我正在使用 XSL:FO 和 Apache FOP 创建可访问的文档。要确认可访问性,应使用 PDF Accesibility Checker 3 (PAC3)。不幸的是,检查器抱怨每一个 table 单元格边界,因为它是一个 未标记的路径对象 。所以显示我可以正确添加这些标签吗?

你不能。您必须向 FOP 提交错误报告。

边界应标记为 'Artifact',但您没有单独的 FO,因此使用 role="artifact" 的 FOP 技术(参见 https://xmlgraphics.apache.org/fop/2.3/accessibility.html#customTags)是'你无法使用。它必须在 FOP 内固定。

FWIW,AH Formatter 曾经有过同样的问题。此外,PAC3 并非没有自身的错误,尽管您的问题可能不是 PAC3 的假阴性。例如,您会发现它在摘要中重复计算了一些错误,并且它总是抱怨脚注(但脚注标记在 PDF 2.0 中发生了变化)。它也无法处理 'Ruby' 标签。但是我跑题了。

为未来的人重新提出这个问题:

当前 FOP 中的 pdf-ua-mode 选项开启了出色的标记,没有伪影和元数据(包括难以捉摸的 pdfuaid)

fop.xconf:

<pdf-ua-mode>PDF/UA-1</pdf-ua-mode>

或 jsp:

userAgent.getRendererOptions().put("pdf-ua-mode", "PDF/UA-1");