ข้ามไปยังเนื้อหา

ความสอดคล้องกับ PDF/UA-2: โครงสร้างแบบติดแท็กที่ NextPDF สร้างสำหรับ ISO 14289-2

คำชี้แจงขอบเขต NextPDF สร้างโครงสร้างแบบติดแท็กที่รองรับ การจัดทำเอกสารที่เข้าถึงได้ แต่ไม่ได้ยืนยันความสอดคล้องกับ PDF/UA-2 — ตัวตรวจสอบ เป็นผู้ตัดสินเรื่องดังกล่าว

PDF/UA-2 คือ ISO 14289-2:2024 ซึ่งเป็นโปรไฟล์ด้านการเข้าถึงที่วางอยู่บน Portable Document Format (PDF) 2.0 แบบติดแท็ก NextPDF Core สร้างต้นไม้โครงสร้าง เนื้อหาที่ทำเครื่องหมาย แคตาล็อกและภาษาในโครงสร้าง รวมถึงตัวระบุ pdfuaid ผ่าน Document::enableTaggedPdf() ไลบรารีสร้างโครงสร้างที่เข้าถึงได้ ส่วนตัวตรวจสอบ 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: เนื้อหาจริงทั้งหมดที่ไม่ใช่อาร์ติแฟกต์ถูกรวมไว้ในโครงสร้างเชิงตรรกะ และอาร์ติแฟกต์ถูกทำเครื่องหมายเป็นอาร์ติแฟกต์ สิ่งนี้สร้างต่อจากโครงสร้าง PDF แบบติดแท็กตาม ISO 32000-2 §14.7 (StructTreeRoot องค์ประกอบโครงสร้าง และ MCID)
  • มีการประกาศภาษาธรรมชาติ — §8.4.4: เอกสารและการเปลี่ยนภาษามี Lang กำกับ เมื่อใช้ ConformancePolicy::strictUa2() แท็ก BCP-47 ที่ผิดรูปจะถูกปฏิเสธที่ขอบเขต API แบบ fail-fast แทนที่จะถูกตัดทิ้งอย่างเงียบๆ ระหว่างเขียนไฟล์
  • รูปภาพมีคำบรรยายทางเลือก — §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คืนค่า True สำหรับ PdfUa2 — ใช้บังคับ /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 ที่ผิดรูปที่ขอบเขต API แทนที่จะปล่อยให้ล้มเหลวเฉพาะตอนตรวจสอบด้วย veraPDF ภายหลัง
  • การเปิดใช้งานซ้ำแบบ idempotent การเรียกสองครั้งจะอัปเดตภาษาโดยไม่สร้างต้นไม้โครงสร้างที่มีข้อมูลอยู่แล้วใหม่
  • เอกสารติดแท็กที่ว่างเปล่า เอกสารติดแท็กที่ว่างเปล่าจะไม่ประกาศ PDF/UA-2 (EmptyTaggedPdfDoesNotAdvertisePdfUa2Test): ตัวระบุจะไม่ถูกสร้างสำหรับเอกสารที่ไม่มีเนื้อหาจริง ดังนั้นไฟล์จึงไม่กล่าวอ้างเกินจริง

การสร้างต้นไม้โครงสร้างแปรตามจำนวนองค์ประกอบ งบประมาณคือเวลาตามนาฬิกา ≤ 1500 ms และค่าสูงสุด ≤ 64 MB สำหรับรายงานทั่วไป

การติดแท็กเพื่อการเข้าถึงเป็นคุณสมบัติเชิงโครงสร้าง ไม่ใช่มาตรการควบคุมด้านความปลอดภัย โดยการออกแบบ การติดแท็กนี้เปิดเผยโครงสร้างเชิงตรรกะของเอกสารต่อเทคโนโลยีช่วยเหลือ ต้นไม้แท็กไม่ได้ให้คุณสมบัติด้านความลับ

ข้อผูกพันตาม PDF/UA-2ข้อกำหนด ISO 14289-2สิ่งที่ NextPDF สร้าง
เนื้อหาจริงถูกติดแท็กในโครงสร้างเชิงตรรกะ§8.2.2TaggedContentEmitter + StructureTree
มีการประกาศภาษาของเอกสาร / โครงสร้าง§8.4.4แคตาล็อก /Lang ตรวจสอบความถูกต้องผ่าน Bcp47Validator
คำบรรยายทางเลือกของ Figure§8.5.1alt/Alt บนองค์ประกอบ Figure
การเชื่อมโยง header/data ของตาราง§8.2.5.26โครงสร้าง TR/TH/TD จากตาราง HTML

PDF/UA-2 วางอยู่บนโมเดล PDF แบบติดแท็กของ ISO 32000-2 องค์ประกอบโครงสร้างที่ NextPDF สร้างขึ้นจะอ้างอิงกับโครงสร้างเชิงตรรกะตาม ISO 32000-2 §14.7 (StructTreeRoot องค์ประกอบโครงสร้าง และ MCID) — chunk — และเนมสเปซโครงสร้างมาตรฐานที่นิยามไว้สำหรับ PDF 2.0 แผนผังบทบาทเชื่อมโยงองค์ประกอบ HTML (h1, p, table) เข้ากับชนิดโครงสร้างมาตรฐาน เพื่อให้ตัวตรวจสอบ UA-2 จดจำได้

โครงสร้างแบบติดแท็กเป็นพื้นฐานทางเทคนิคสำหรับเกณฑ์ความสำเร็จของ Web Content Accessibility Guidelines (WCAG) 2.2 — 1.1.1 (ทางเลือกที่ไม่ใช่ข้อความ ผ่าน §8.5.1 Figure /Alt), 1.3.1 (ข้อมูลและความสัมพันธ์ ผ่านต้นไม้โครงสร้าง) และ 1.3.2 (ลำดับที่มีความหมาย ผ่านลำดับการอ่าน) การสร้างโครงสร้างเป็นสิ่งจำเป็นแต่ยังไม่เพียงพอต่อความสอดคล้องตาม WCAG การตรวจสอบการเข้าถึงเป็นผู้ตัดสินเรื่องนี้ ไม่ใช่ไลบรารี

การสร้าง PDF/UA-2 ไม่มีการดำเนินการเข้ารหัสลับใดๆ โหมด Federal Information Processing Standards (FIPS) ไม่มีผลต่อเส้นทางการสร้างโครงสร้างแบบติดแท็ก

ข้อกล่าวอ้างข้อกำหนดข้อรหัสอ้างอิง (reference_id)
สามารถระบุเวอร์ชัน PDF/UA ได้ด้วยเนมสเปซสคีมา pdfuaid (Table 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
โครงสร้างที่เข้าถึงได้สร้างขึ้นบนโครงสร้างเชิงตรรกะของ PDF แบบติดแท็กตาม ISO 32000-2ISO 32000-2§14.7.2

การอ้างอิงใช้ตัวชี้แบบ clause-id และ reference_id ที่ชี้เข้าสู่คลังตรวจสอบ ไม่มีการนำข้อความของมาตรฐานมาทำซ้ำ