アクセシビリティ (PDF/UA)
シナリオ
スクリーンリーダーで読める PDF を作る(タグ付き生成 → 採点)、あるいは受け取った PDF が 読める構造か測る、という 2 つの場面です。PDF/UA-1(ISO 14289-1)は仕様コーパスに原文があるため、 違反は条文を引いて言い切れます(T1 — PDF/A との大きな違い)。
以下は 2026-09-04 の実測です(pdf-verify-mcp v0.26.0 / veraPDF 1.30.0。タグ付き請求書デモ = 通過側 / インターネット官報 = 不合格側)。
登場 MCP / Skill
| 役者 | 役割 |
|---|---|
| pdf-writer | tagged: true での生成・tag_form_fields・ensure_tagged(宣言のみ) |
| pdf-verify | validate_conformance(pdfua-1) — veraPDF 委譲・条文 ID 付き違反 |
| pdf-reader | inspect_tags(構造木)・extract_structured_text(論理順の本文) |
| pdf-publish Skill | 生成から採点までの手順(tagged 指定時は品質ゲート pdfua-1 が既定) |
シーケンス図
プロンプト例
- 「このレポートをアクセシブルな PDF にして。検証まで」
- 「この PDF、スクリーンリーダーで読める?何が足りない?」
- 「このフォーム PDF を PDF/UA 準拠にして」(→
tag_form_fields)
実測例 — 両面
作る側(publish-demo-invoice.pdf): inspect_tags はタグ付き、H1 が 1、TH 5 / TD 15 / TR 4。veraPDF 1.30.0 が PDF/UA-1 COMPLIANT(106/106)と判定しました。同じファイルの PDF/A-3b も 146/146 です。
測る側(官報 2026-08-10 号): NOT COMPLIANT — 106 検査中 10 規則が失敗(96 通過)。暗号化文書なので、veraPDF は復号した書き換えに対して採点しています。主要な違反は次のとおりです。
| 条文(ISO 14289-1) | 違反 |
|---|---|
| 7.1-3 | タグ付けも Artifact 化もされていない実コンテンツ 236 件 |
| 7.1-11 | StructTreeRoot がない |
| 6.2-1 | MarkInfo/Marked がない |
| 7.21.7-1 | ToUnicode を欠くフォント 9 件 |
| 7.2-34 | ページ本文の自然言語が決まっていない(186 件) |
呼び出し — validate_conformance(pdfua-1)
- 実測: pdf-verify-mcp v0.26.0、veraPDF 1.30.0
通過側:
{
"file_path": "/absolute/path/to/docs/specimens/publish-demo-invoice.pdf",
"flavour": "pdfua-1",
"response_format": "json"
}{
"engine": "verapdf",
"flavour": "PDF/UA-1",
"compliant": true,
"checkedRules": 106,
"passedRules": 106,
"failedRules": 0
}不合格側は同じ引数で file_path を官報にし、compliant: false、failedRules: 10 です。
実測例 — ensure_tagged の warning(2026-09-16、別ホスト)
pdf-writer-mcp v0.21.1 から、ensure_tagged も ensure_pdfa と同じく、ラベルを書いたことと採点に通ったことを分ける warning を返します (ホストは Grok Build 1.0.30。pdf-verify-mcp v0.26.1 / veraPDF 1.30.0)。
タグ付きで生成した日本語レポートに ensure_tagged を掛けると、wasTagged: true、createdStructure: false(構造木は既にあるので触らない)、追加は Lang / DisplayDocTitle / XMP pdfuaid だけで、warnings[0] は次の文でした。
This file now CLAIMS PDF/UA-1 (pdfuaid:part=1), but conformance was NOT checked here. Only document-level
tagging requirements were supplied; reading order, alternative text, and similar PDF/UA rules are left as they are.同じファイルの validate_conformance(pdfua-1)は veraPDF 106/106 で、notes に「alt テキストと読み順の意味は機械では判定できない」が付きます。 タグ無しの対照ファイルは 99/106 で、7.1-3、7.2-34、7.1-10、7.1-11、7.21.4.1-1、6.2-1、7.1-8 が落ちました。 pdf-spec の get_requirements(pdfua1、§7.1、shall)は 10 件を返し、R-7.1-3(意味的に適切なタグと論理順)が違反の条文です。
残っている観察: create_markdown_pdf(tagged)は title と本文見出しが同じ文字列のとき H1 が 2 つできます。veraPDF は通りますが、extract_structured_text で見出しが二重に見えます。
報告書の全文: eval/hosts/grok-build/reports/UC04.md
結果の読み方
- PDF/UA-1 は T1 — 違反は「ISO 14289-1 7.1-3 が要求する」と条文を引いて断定できます (PDF/A の「veraPDF がこう判定した」より一段強い言い方が許されます)
- native エンジンの違反には severity が付き、error のみが非準拠を証明します(warning は人手レビュー)
tagged: trueなら日本語が無くても埋め込みフォントと title が必須です(標準 14 フォントは 7.21.4.1 で必ず違反)- 機械検証が判定できるのは構造までです。alt テキストの意味的な適切さ・読み順の自然さは人手レビューが残ります
ensure_taggedはラベルを書くだけです — 掛けたら必ずpdfua-1で測ってください