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

การแมปข้อกำหนด PDF/UA-2 (ISO 14289-2)

หน้านี้แสดงการแมปคุณสมบัติของ NextPDF Core เข้ากับข้อกำหนดของ PDF/UA-2 (Portable Document Format/Universal Accessibility 2; ISO 14289-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 ไฟล์มีโครงสร้างต้นไม้ (structure tree) โดยรากมีอิลิเมนต์ Document เพียงรายการเดียว (ISO 14289-2 §8.2.5.2) ไฟล์ใช้ประเภทโครงสร้างมาตรฐานเพื่อให้เทคโนโลยีสิ่งอำนวยความสะดวกสามารถแปลทุกแท็กไปยังบทบาทที่รู้จักได้

NextPDF จัดเตรียมพรีมิทิฟสำหรับการสร้างเอกสารตามโมเดลนี้ ได้แก่ การสร้างโครงสร้างต้นไม้ การแมปบทบาทมาตรฐาน การแท็ก marked-content จาก HTML เชิงความหมาย และแอตทริบิวต์ภาษา BCP-47 NextPDF ไม่อนุมานความหมายที่ไม่มีอยู่ในเนื้อหาต้นทาง NextPDF ไม่เรียกใช้ตัวตรวจสอบความสอดคล้อง พรีมิทิฟเหล่านี้ออกแบบให้สอดคล้องกับโมเดลของ ISO 14289-2 §3.1 ซึ่งเทคโนโลยีสิ่งอำนวยความสะดวกใช้โครงสร้างต้นไม้ ข้อมูลนำเข้าของคุณและตัวตรวจสอบจากภายนอกเป็นตัวกำหนดว่าเอกสารหนึ่งๆ ปฏิบัติตามทุกข้อกำหนดหรือไม่

ขอบเขตข้อกำหนดจุดเข้าใช้งานของ NextPDF
การเปิดใช้งาน Tagged-PDF, mark-info, ภาษาของ catalogDocument::enableTaggedPdf(string $lang, ?ConformancePolicy)
ภาษาธรรมชาติในระดับเอกสารDocument::setLanguage(string $lang)
โครงสร้างต้นไม้และราก Document รายการเดียวStructureTree::createRoot(), StructureTree::addElement()
คำศัพท์ของประเภทโครงสร้างมาตรฐานRoleMap::standard()
ภาษาในระดับอิลิเมนต์ ข้อความทางเลือก และข้อความแทนที่StructureElement แอตทริบิวต์ของ constructor
การตรวจสอบ BCP-47 แบบเข้มงวดBcp47Validator, ConformancePolicy::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

ดู ตัวอย่างสำหรับใช้งานจริงของโมดูล Accessibility สำหรับ writer แบบฉีดดีเพนเดนซี ซึ่งมีการตรวจสอบ BCP-47 แบบเข้มงวด การบันทึกข้อความแนะนำ และการจัดการข้อผิดพลาด รูปแบบการเชื่อมต่อนี้ใช้ได้กับเวิร์กโฟลว์การสร้างเอกสาร PDF/UA-2 ให้เพิ่มขั้นตอนการตรวจสอบจากภายนอกหลังการสร้างเอกสาร ขั้นตอนนี้จำเป็นสำหรับการประกาศความสอดคล้องและเป็นความรับผิดชอบของคุณ

  • เอกสารที่เปิดใช้งาน tagged PDF แต่ไม่ได้แนบโหนดลูกของโครงสร้างจะไม่ปล่อยบล็อกการระบุ PDF/UA-2 ตามที่ออกแบบไว้ (ISO 14289-2 §5) ตัวตรวจสอบจะปฏิเสธโครงสร้างต้นไม้ที่ว่างเปล่า
  • การใช้ enablePdfA() และ enableTaggedPdf() ร่วมกันจะทำให้ตัวบ่งชี้ความสอดคล้องที่มีค่าเดียวถูกยุบเป็นพฤติกรรมแบบค่าหลังสุดชนะ ในขณะที่ผลข้างเคียงเชิงโครงสร้างยังคงสะสมอยู่ คำเตือน 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 เพียงรายการเดียว
ประเภทโครงสร้างมาตรฐานและ role map (ISO 32000-2 §14.7; Well-Tagged PDF §8.2.5.1)รองรับRoleMap::standard() รวมกับเนมสเปซ PDF 2.0
ลำดับ marked-content และ parent tree (ISO 32000-2 §14.7.2)รองรับตัวระบุระดับหน้าและการต่อเนื่องข้ามหน้า
ภาษาธรรมชาติในระดับ catalog และในระดับอิลิเมนต์ (ISO 32000-2 §14.9; ISO 14289-2 §8.4.4)รองรับBCP-47; โหมดเข้มงวดจะปฏิเสธแท็กที่มีรูปแบบไม่ถูกต้อง
ตัวพา (carrier) สำหรับข้อความทางเลือกและข้อความแทนที่ (ISO 32000-2 §14.9)รองรับตัวพา เนื้อหาเป็นสิ่งที่ผู้สร้างเอกสารจัดเตรียมไลบรารีไม่สร้างข้อความทางเลือก
ลำดับการอ่านเชิงตรรกะ (ISO 32000-2 §14.7)รองรับลำดับตามต้นทาง ไม่จัดเรียงลำดับใหม่การแก้ไขลำดับการอ่านให้ถูกต้องเป็นความรับผิดชอบของผู้สร้างเอกสาร
การเชื่อมโยงหัวตาราง (header) และ scopeอยู่นอกขอบเขตเกินกว่ามาร์กอัป HTMLไม่มีการอนุมาน ขึ้นอยู่กับมาร์กอัปต้นทาง
ความถูกต้องของระดับหัวข้อและโครงร่างอยู่นอกขอบเขตผู้สร้างเอกสารต้องจัดเตรียมลำดับชั้นของหัวข้อให้ถูกต้อง
การตรวจสอบ PDF/UA-2 แบบครบวงจรอยู่นอกขอบเขตไม่มีตัวตรวจสอบในตัว ต้องตรวจสอบจากภายนอก
การรับรองหรือการออกใบรับรองความสอดคล้องอยู่นอกขอบเขตไลบรารีไม่ได้จัดเตรียมให้

กลไกโครงสร้างต้นไม้เพิ่มรอบการซีเรียลไลซ์เชิงเส้นหนึ่งรอบให้กับชุดอิลิเมนต์ ไปป์ไลน์ HTML เป็นส่วนที่ใช้ทรัพยากรเป็นหลัก ไม่ใช่การปล่อยแท็ก ขีดจำกัด performance_budget ใช้กับเอกสารเชิงความหมายหลายหน้าโดยทั่วไป

ค่าภาษาและแอตทริบิวต์การเข้าถึงจะถูก escape ผ่าน PdfStringEscaper ก่อนเข้าสู่ไวยากรณ์ของอ็อบเจกต์ PDF การตรวจสอบ BCP-47 ในโหมดเข้มงวดช่วยจำกัดพื้นผิวการรับข้อมูลของแท็กภาษาไว้ที่ขอบเขต API ควรปฏิบัติต่อข้อความทางเลือกและชื่อเรื่องที่ผู้สร้างเอกสารจัดเตรียมในฐานะเอาต์พุตที่ไม่น่าเชื่อถือ

NextPDF ปล่อยโครงสร้างที่สอดคล้องกับโมเดลโครงสร้างต้นไม้ PDF/UA-2 ที่นิยามไว้ใน ISO 14289-2 และ ISO 32000-2 §14.7 แต่ไม่รับรองว่าเอกสารหนึ่งๆ สอดคล้องกับ PDF/UA-2 ให้ตรวจสอบด้วยตัวตรวจ PDF/UA เช่น veraPDF ไลบรารีไม่รับรองความสอดคล้องแทนคุณ การทดสอบ golden ของ veraPDF UA-2 ที่รวมมาให้จะถูกข้ามเมื่อไม่มีไบนารี veraPDF ดังนั้นจึงไม่มีการอ้างว่าผ่านความสอดคล้องในที่นี้ ข้อกำหนดที่อ้างอิงเป็นการเรียบเรียงใหม่ทั้งหมด ไม่ได้ยกมาแบบคำต่อคำ แฮชของ chunk จะถูกบันทึกไว้ใน docs/public/modules/core/_normative-evidence-a11y.md

การประกาศความสอดคล้อง PDF/UA-2 ต้องอาศัยความหมายที่ผู้สร้างเอกสารจัดเตรียม (ข้อความทางเลือก ลำดับชั้นของหัวข้อที่ถูกต้อง การเชื่อมโยงหัวตาราง ลำดับการอ่านที่ตั้งใจไว้ การจำแนกเนื้อหาเชิงตกแต่ง) และการตรวจสอบด้วยตัวตรวจสอบจากภายนอก ไลบรารีไม่สร้างหรือตรวจสอบสิ่งเหล่านี้เลย รันไทม์จะปล่อยข้อความแนะนำ Degraded / ComplianceRisk เพื่อชี้นำให้คุณตรวจสอบจากภายนอกก่อนอนุมัติสำหรับการใช้งานจริง ความสอดคล้องเป็นคุณสมบัติของเอกสารสุดท้ายและกระบวนการสร้างเอกสาร ไม่ใช่ของการเรียกใช้ API