コンテンツにスキップ

PDF/UA-2(ISO 14289-2)仕様マッピング

このページでは、NextPDF Core の機能を ISO 14289-2(PDF/UA-2)の規定に対応付けます。このライブラリがオーサーによる充足を支援する規定と、明示的に対象外とする規定を示します。これは適合性の主張ではありません。適合ファイルであるかどうかは、オーサーが用意するコンテンツ、ソースのマークアップ、および外部の PDF/UA チェッカーによる検証に依存します。

Terminal window
composer require nextpdf/core

PDF/UA-2(ISO 14289-2)は、アクセシブルな PDF の要件を定義します。これらの要件は、ISO 32000-2 §14.7 の論理構造機能と、ISO 32000-2 §14.9 のアクセシビリティサポートエントリーを基盤としています。適合ファイルは、ISO 14289-2 §5 の識別スキーマによって自らを識別します。適合ファイルは、ルートに単一の Document 要素を持つ構造ツリーを保持します(ISO 14289-2 §8.2.5.2)。適合ファイルは標準構造型を使用するため、支援技術はすべてのタグを既知のロールとして resolve(解決)できます。

NextPDF は、このモデル向けのオーサリングプリミティブを提供します。具体的には、構造ツリーの構築、標準ロールマッピング、セマンティック HTML からのマークコンテンツのタグ付け、および BCP-47 言語属性です。NextPDF は、ソースコンテンツに存在しないセマンティクスを推測しません。NextPDF は、適合性チェッカーを実行しません。これらのプリミティブは、構造ツリーを利用する支援技術という ISO 14289-2 §3.1 のモデルを対象に設計されています。特定のドキュメントがすべての規定を満たすかどうかは、オーサーの入力と外部のバリデーターによって決まります。

規定の領域NextPDF のエントリーポイント
タグ付き PDF の有効化、mark-info、カタログ言語Document::enableTaggedPdf(string $lang, ?ConformancePolicy)
ドキュメントレベルの自然言語Document::setLanguage(string $lang)
構造ツリーと単一の Document ルートStructureTree::createRoot()StructureTree::addElement()
標準構造型のボキャブラリーRoleMap::standard()
要素ごとの言語、代替テキスト、置換テキストStructureElement のコンストラクター属性
BCP-47 の厳格な検証Bcp47ValidatorConformancePolicy::strictUa2()
ヒューリスティックな修復(オプトイン)AccessibilityAutoFixerRegistry
<?php
declare(strict_types=1);
use NextPDF\Core\Document;
$doc = Document::createStandalone();
$doc->enableTaggedPdf(lang: 'en');
$doc->setTitle('PDF/UA-2 structure demonstration');
$doc->addPage();
$doc->writeHtml('<h1>Title</h1><p>Body.</p><ul><li>Item</li></ul>');
$doc->save(__DIR__ . '/output/ua2.pdf');
// Then validate with an external checker. NextPDF does not assert
// conformance on your behalf:
// verapdf --flavour ua2 output/ua2.pdf

厳格な BCP-47 検証、アドバイザリーロギング、エラー処理に対応した、依存性注入を使うライターについては、Accessibility モジュールの本番環境向けの例を参照してください。同じ構成は、PDF/UA-2 のオーサリングワークフローにも適用されます。追加されるのは、生成後の外部検証ステップだけです。このステップは適合性の主張に必須であり、呼び出し側の責任です。

  • タグ付き PDF を有効化しても、構造の子孫をアタッチしていないドキュメントは、設計上、PDF/UA-2 識別ブロックをアドバタイズしません(ISO 14289-2 §5)。空の構造ツリーは、バリデーターによって拒否されます。
  • 同一ドキュメントで enablePdfA()enableTaggedPdf() を組み合わせると、単一値の適合性ディスクリミネーターは last-wins に縮約されますが、構造上の副作用は加算的に保持されます。CONFORMANCE_MODE_CLOBBERED 警告により、これを確認できます。
  • ISO 14289-2 §7.2.2 は、適合ドキュメントがより広範なアクセシビリティ規制への適合性を追加で主張することを許可しています。NextPDF は PDF/UA-2 識別スキーマのみを出力し、その他の規制主張メタデータは出力しません。
規定の領域(ISO 14289-2 / ISO 32000-2)NextPDF のサポート備考
PDF/UA-2 識別スキーマ(ISO 14289-2 §5)対応構造ツリーに子孫がある場合にのみ出力されます。
構造ツリールート直下の単一の Document 要素(ISO 14289-2 §8.2.5.2、ISO 32000-2 §14.7.2)対応createRoot() は、単一のルート Document を強制します。
標準構造型とロールマップ(ISO 32000-2 §14.7、Well-Tagged PDF §8.2.5.1)対応RoleMap::standard() と PDF 2.0 名前空間です。
マークコンテンツシーケンスと親ツリー(ISO 32000-2 §14.7.2)対応ページごとの識別子と、ページをまたぐ継続です。
カタログおよび要素ごとの自然言語(ISO 32000-2 §14.9、ISO 14289-2 §8.4.4)対応BCP-47。厳格モードでは不正な形式のタグを拒否します。
代替テキストおよび置換テキストのキャリア(ISO 32000-2 §14.9)キャリアに対応。コンテンツはオーサーが提供このライブラリは代替テキストを生成しません。
論理的な読み上げ順序(ISO 32000-2 §14.7)ソース順序に対応。並べ替えなし読み上げ順序の修正は、オーサーの責任です。
表ヘッダーの関連付けとスコープHTML マークアップを超える範囲は対象外推測しません。ソースのマークアップに依存します。
見出しレベルの正しさとアウトライン対象外オーサーは正しい見出し階層を提供する必要があります。
エンドツーエンドの PDF/UA-2 検証対象外バンドルされたチェッカーはありません。外部で検証してください。
適合性の証明または認証対象外このライブラリは提供しません。

構造ツリー機能は、要素セットに対して単一の線形シリアライゼーションパスを追加します。コストの大部分はタグ出力ではなく、HTML パイプラインにあります。performance_budget の上限は、一般的な複数ページのセマンティックドキュメントに適用されます。

言語値とアクセシビリティ属性値は、PDF オブジェクト構文へ渡される前に PdfStringEscaper を通じてエスケープされ、厳格モードの BCP-47 検証は API 境界における言語タグの入力サーフェスを狭めます。オーサーが提供する代替テキストやタイトルは、信頼できない出力値として扱ってください。

NextPDF は、ISO 14289-2 および ISO 32000-2 §14.7 で定義された PDF/UA-2 構造ツリーモデルと一貫した構造を出力します。特定のドキュメントが PDF/UA-2 に適合することを表明するものではありません。PDF/UA チェッカー(例: veraPDF)で検証してください。このライブラリは、ユーザーに代わって適合性を表明しません。同梱の veraPDF UA-2 ゴールデンテストは、veraPDF バイナリが存在しない場合にスキップゲートされるため、ここでは適合性の合格を主張しません。参照している条項は言い換えており、逐語的には一切引用しません。チャンクのハッシュは docs/public/modules/core/_normative-evidence-a11y.md に記録されます。

PDF/UA-2 の適合性の主張には、オーサーが提供するセマンティクス(代替テキスト、正しい見出し階層、表ヘッダーの関連付け、意図された読み上げ順序、装飾コンテンツの分類)に加えて、外部チェッカーによる検証が必要です。これらはいずれも、このライブラリによって生成も検証もされません。ランタイムは Degraded / ComplianceRisk のアドバイザリーを出力し、呼び出し側に対して、本番環境で承認する前に外部で検証するよう指示します。適合性は API 呼び出しによって決まるものではなく、最終的なドキュメントとオーサリングプロセスの属性です。