콘텐츠로 이동

PDF/UA-2 적합성: NextPDF 가 ISO 14289-2 를 위해 생성하는 태그 구조

경계 진술. NextPDF 는 다음을 지원하는 태그 구조를 생성합니다. 바로 접근 가능한 저작입니다. NextPDF 는 PDF/UA-2 적합성을 주장하지 않으며, 적합성은 검사기가 판정합니다.

PDF/UA-2 는 ISO 14289-2:2024 이며, 태그가 지정된 PDF 2.0 위에 계층화된 접근성 프로파일입니다. NextPDF Core 는 Document::enableTaggedPdf()를 통해 구조 트리, 표시된 콘텐츠, catalog/structure 언어, 그리고 pdfuaid 마커를 생성합니다. 라이브러리는 접근 가능한 구조를 생성하지만, 적합성을 결정하는 것은 PDF/UA 검사기(예: verapdf --flavour ua2)입니다. ISO 14289-2 §8.1 은 적합성을 문서가 충족해야 하는 일련의 파일 형식 요구 사항으로 규정합니다. 이는 생산자가 선언하는 것이 아니라 검사기가 평가합니다.

Terminal window
composer require nextpdf/core:^3

PDF/UA-2 태그 지정은 Core 기능입니다(security.tagged_pdf). 태그 구조 자체에는 Premium 패키지가 필요하지 않습니다.

Document::enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null)ConformanceMode::PdfUa2를 설정하고 TaggedContentEmitter를 연결합니다. 이 모드는 “이 문서가 사양에 따라 태그가 지정되었는가”에 대한 단일 진실 공급원이며, 작성기는 이를 바탕으로 ISO 14289-2 가 부과하는 구조적 의무를 충족합니다.

  • 실제 콘텐츠는 태그가 지정됩니다 — §8.2.2: 모든 실제(비아티팩트) 콘텐츠는 논리 구조에 포함되며, 아티팩트는 그에 맞게 표시됩니다. 이는 ISO 32000-2 §14.7 태그 PDF 구조(StructTreeRoot, 구조 요소, MCID)를 기반으로 구축됩니다.
  • 자연어가 선언됩니다 — §8.4.4: 문서와 언어 전환은 Lang을 포함합니다. ConformancePolicy::strictUa2()를 사용하면, 잘못된 형식의 BCP-47 태그는 쓰기 시점에 자동으로 폐기되지 않고 API 경계에서 거부됩니다(빠른 실패).
  • 그림은 대체 설명을 포함합니다 — §8.5.1: 모든 Figure 구조 요소에는 대체 설명이 있습니다.
  • 표는 헤더와 데이터를 연결합니다 — §8.2.5.26: 표의 header/data 셀 연결은 구조적으로 표현됩니다.

NextPDF 는 이러한 구조를 생성합니다. §8.1 적합성 평가는 수행하지 않습니다. 이는 검사기의 역할이며, 표준은 이 판단을 검사기에 맡깁니다.

메서드효과
enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null): static이 메서드는 ConformanceMode::PdfUa2를 설정하고, TaggedContentEmitter를 연결하며, 정책에 따라 $lang을 검증합니다. InvalidConfigException은 정책이 Lang 검증을 요구하고 $lang이 유효하지 않은 경우 발생합니다.
beginTag()/endTag()비 HTML 콘텐츠를 위한 수동 구조입니다. 컨테이너 유형은 그룹화 요소가 되며, 리프 유형은 MCID 를 받습니다.
ConformanceMode::requiresPdfUa2PageTabs(): bool값은 PdfUa2의 경우 true 이며, /Tabs /S 페이지 적용을 구동합니다.
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
use NextPDF\Conformance\ConformancePolicy;
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/accessible.pdf';
$doc = Document::createStandalone();
$doc->enableTaggedPdf('en', ConformancePolicy::strictUa2()); // fail-fast Lang
$doc->setTitle('Accessible report 2026');
$doc->writeHtml('<h1>Quarterly report</h1><p>Body text.</p>'
. '<img src="chart.png" alt="Revenue rose 12% quarter on quarter">');
$doc->save($out);
echo "Wrote {$out} — validate: verapdf --flavour ua2 {$out}\n";

프로덕션 게이트는 verapdf --flavour ua2 out.pdf를 실행하고, 보고된 위반 사항이 있으면 빌드를 실패시킵니다. 통합 테스트 tests/Integration/Accessibility/VeraPdfUa2GoldenTest.php는 HTML→태그 PDF 골든 픽스처가 veraPDF UA-2 를 통과하는지 검증합니다(veraPDF 가 없으면 건너뜁니다). 검사기의 판정이 게이트이며, 이미터 출력은 그 입력값입니다.

  • 먼저 활성화하십시오. enableTaggedPdf()writeHtml() 이후에 호출해도 이미 작성된 콘텐츠에는 소급하여 태그가 지정되지 않습니다.
  • 엄격한 언어. ConformancePolicy::strictUa2()를 전달하면, 잘못된 형식의 BCP-47 태그가 사후 veraPDF 검증에서만 실패하게 두지 않고 API 경계에서 거부할 수 있습니다.
  • 멱등적 재활성화. 두 번 호출하면 채워진 구조 트리를 다시 빌드하지 않고 언어만 업데이트합니다.
  • 빈 태그 문서. 빈 태그 문서는 PDF/UA-2 를 광고하지 않습니다(EmptyTaggedPdfDoesNotAdvertisePdfUa2Test). 실제 콘텐츠가 없는 문서에는 마커가 생성되지 않으므로, 파일이 과도한 주장을 하지 않습니다.

구조 트리 생성 비용은 요소 수에 비례합니다. 일반적인 보고서의 경우 벽시계 시간 ≤ 1500 ms, 최대 메모리 ≤ 64 MB 로 예산이 책정됩니다.

접근성 태그 지정은 구조적 기능이며, 보안 통제가 아닙니다. 이는 의도적으로 문서의 논리 구조를 보조 기술에 노출하며, 태그 트리에는 기밀성 측면이 없습니다.

PDF/UA-2 의무ISO 14289-2 조항NextPDF 생성
논리 구조에 태그가 지정된 실제 콘텐츠§8.2.2TaggedContentEmitter + StructureTree
선언된 문서/구조 언어§8.4.4catalog /Lang, 검증기 Bcp47Validator
Figure 대체 설명§8.5.1alt/Alt (Figure 요소)
표 header/data 연결§8.2.5.26HTML 표에서 생성된 TR/TH/TD 구조

태그 → ISO 32000-2 §14.9 상호 참조

섹션 제목: “태그 → ISO 32000-2 §14.9 상호 참조”

PDF/UA-2 는 ISO 32000-2 태그 PDF 모델 위에 계층화됩니다. NextPDF 가 생성하는 구조 요소는 ISO 32000-2 §14.7 논리 구조(StructTreeRoot, 구조 요소, MCID) — chunk — 및 PDF 2.0 용으로 정의된 표준 구조 네임스페이스를 기준으로 해석됩니다. 역할 맵은 HTML 요소(h1, p, table)를 표준 구조 유형에 연결하여 UA-2 검사기가 이를 인식하도록 합니다.

태그 구조는 WCAG 2.2 성공 기준의 기술적 기반입니다 — 1.1.1(비텍스트 대체, §8.5.1 Figure /Alt를 통해), 1.3.1(정보 및 관계, 구조 트리를 통해), 1.3.2(의미 있는 순서, 읽기 순서를 통해). 구조 생성은 WCAG 적합성에 필요하지만 그것만으로 충분하지는 않습니다. 그 판정은 라이브러리가 아니라 접근성 감사가 내립니다.

PDF/UA-2 생성은 어떠한 암호화도 수행하지 않습니다. FIPS 모드는 태그 구조 경로에 영향을 미치지 않습니다.

주장사양조항참조 ID
PDF/UA 버전은 pdfuaid 스키마 네임스페이스로 식별됩니다(표 1).ISO 14289-2§5
PDF/UA-2 적합성은 문서가 충족해야 하는 파일 형식 요구 사항을 부과합니다(적합성은 검사기가 평가하며, 생산자가 선언하지 않습니다).ISO 14289-2§8.1
실제 콘텐츠는 논리 구조에 태그가 지정되어야 합니다.ISO 14289-2§8.2.2
문서의 자연어는 선언되어야 합니다.ISO 14289-2§8.4.4
Figure 요소에는 대체 설명이 필요합니다.ISO 14289-2§8.5.1
표 구조는 헤더 셀과 데이터 셀을 연결해야 합니다.ISO 14289-2§8.2.5.26
접근 가능한 구조는 ISO 32000-2 태그 PDF 논리 구조를 기반으로 구축됩니다.ISO 32000-2§14.7.2

인용은 검증 코퍼스를 가리키는 clause-id + reference_id 포인터입니다. 표준 텍스트는 복제하지 않습니다.