Przejdź do głównej zawartości

Mapowanie specyfikacji PDF/UA-2 (ISO 14289-2)

Ta strona mapuje funkcje NextPDF Core na wymagania PDF/UA-2 (Portable Document Format/Universal Accessibility 2; ISO 14289-2). Określa, w spełnieniu których wymagań biblioteka pomaga, a które pozostają wyraźnie poza jej zakresem. Nie stanowi deklaracji zgodności. Zgodny plik zależy od treści, znacznikowania źródłowego oraz walidacji za pomocą zewnętrznego walidatora PDF/UA.

Okno terminala
composer require nextpdf/core

PDF/UA-2 (ISO 14289-2) definiuje wymagania dotyczące dostępnych plików PDF. Wymagania te opierają się na mechanizmach struktury logicznej z ISO 32000-2 §14.7 oraz na wpisach obsługi dostępności z ISO 32000-2 §14.9. Zgodny plik identyfikuje się za pomocą schematu identyfikacji z ISO 14289-2 §5. Zawiera drzewo struktury z korzeniem, pod którym znajduje się pojedynczy element Document (ISO 14289-2 §8.2.5.2). Używa standardowych typów struktury, dzięki którym technologie wspomagające mogą przypisać każdy znacznik do znanej roli.

NextPDF udostępnia prymitywy do tworzenia dokumentów w tym modelu: budowę drzewa struktury, standardowe mapowanie ról, znacznikowanie treści oznaczonej na podstawie semantycznego HTML oraz atrybuty językowe BCP 47. NextPDF nie wnioskuje semantyki, której brakuje w treści źródłowej. NextPDF nie uruchamia walidatora zgodności. Prymitywy są przeznaczone dla modelu z ISO 14289-2 §3.1, w którym technologie wspomagające korzystają z drzewa struktury. Spełnienie wszystkich wymagań przez konkretny dokument zależy od danych wejściowych oraz zewnętrznego walidatora.

Obszar wymagańPunkt wejścia NextPDF
Aktywacja tagged PDF, mark-info i języka kataloguDocument::enableTaggedPdf(string $lang, ?ConformancePolicy)
Język naturalny na poziomie dokumentuDocument::setLanguage(string $lang)
Drzewo struktury i pojedynczy korzeń DocumentStructureTree::createRoot(), StructureTree::addElement()
Słownik standardowych typów strukturyRoleMap::standard()
Język na poziomie elementu, tekst alternatywny i tekst zastępczyAtrybuty konstruktora StructureElement
Ścisła walidacja BCP 47Bcp47Validator, ConformancePolicy::strictUa2()
Heurystyczna naprawa (włączana opcjonalnie)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

Zobacz produkcyjny przykład modułu Accessibility, aby poznać writer z wstrzykiwaniem zależności, ścisłą walidacją BCP 47, logowaniem doradczym i obsługą błędów. Ta sama konfiguracja ma zastosowanie w procesie tworzenia dokumentów PDF/UA-2. Dodaj krok zewnętrznej walidacji po wygenerowaniu. Ten krok jest obowiązkowy dla deklaracji zgodności i należy do obowiązków autora.

  • Dokument z włączonym tagged PDF, który nie dołącza żadnych potomków struktury, celowo nie ogłasza bloku identyfikacji PDF/UA-2 (ISO 14289-2 §5). Walidatory odrzucają puste drzewo struktury.
  • Połączenie enablePdfA() i enableTaggedPdf() sprawia, że jednowartościowy dyskryminator zgodności działa według reguły „ostatni wygrywa”, przy zachowaniu addytywności strukturalnych efektów ubocznych. Ostrzeżenie CONFORMANCE_MODE_CLOBBERED czyni to obserwowalnym.
  • ISO 14289-2 §7.2.2 pozwala, aby zgodny dokument dodatkowo deklarował zgodność z szerszymi przepisami dotyczącymi dostępności. NextPDF emituje wyłącznie schemat identyfikacji PDF/UA-2 i nie emituje innych metadanych deklaracji regulacyjnych.
Obszar wymagań (ISO 14289-2 / ISO 32000-2)Obsługa w NextPDFUwagi
Schemat identyfikacji PDF/UA-2 (ISO 14289-2 §5)ObsługiwaneEmitowany tylko wtedy, gdy drzewo struktury ma potomków.
Pojedynczy element Document pod korzeniem drzewa struktury (ISO 14289-2 §8.2.5.2; ISO 32000-2 §14.7.2)ObsługiwanecreateRoot() wymusza pojedynczy korzeniowy element Document.
Standardowe typy struktury i mapa ról (ISO 32000-2 §14.7; Well-Tagged PDF §8.2.5.1)ObsługiwaneRoleMap::standard() plus przestrzeń nazw PDF 2.0.
Sekwencje treści oznaczonej i drzewo nadrzędne (ISO 32000-2 §14.7.2)ObsługiwaneIdentyfikatory na poziomie strony, kontynuacja między stronami.
Język naturalny w katalogu i na poziomie elementu (ISO 32000-2 §14.9; ISO 14289-2 §8.4.4)ObsługiwaneBCP 47; tryb ścisły odrzuca nieprawidłowo sformułowane znaczniki.
Nośniki tekstu alternatywnego i zastępczego (ISO 32000-2 §14.9)Obsługuje nośnik; treść dostarcza autorBiblioteka nie generuje tekstu alternatywnego.
Logiczna kolejność czytania (ISO 32000-2 §14.7)Zachowuje kolejność źródłową; nie zmienia kolejnościPoprawiona kolejność czytania należy do obowiązków autora.
Powiązanie nagłówków tabeli i zakresuObsługa nie wykracza poza znacznikowanie HTMLPowiązania nie są wnioskowane; zależą od znacznikowania źródłowego.
Poprawność poziomów nagłówków i konspektPoza zakresemAutor musi dostarczyć poprawną hierarchię nagłówków.
Kompleksowa weryfikacja PDF/UA-2Poza zakresemBrak dołączonego walidatora; waliduj zewnętrznie.
Poświadczenie lub certyfikacja zgodnościPoza zakresemNie jest dostarczane przez bibliotekę.

Mechanizmy drzewa struktury dodają pojedynczy liniowy przebieg serializacji przez zbiór elementów. Dominującym kosztem pozostaje potok HTML, a nie emisja znaczników. Limit performance_budget dotyczy typowego wielostronicowego dokumentu semantycznego.

Wartości języka i atrybutów dostępności są kodowane z użyciem sekwencji ucieczki przez PdfStringEscaper, zanim trafią do składni obiektów PDF. Walidacja BCP 47 w trybie ścisłym ogranicza powierzchnię wejściową znaczników językowych na granicy API. Traktuj dostarczony przez autora tekst alternatywny i tytuły jako niezaufane dane wyjściowe.

NextPDF emituje strukturę zgodną z modelem drzewa struktury PDF/UA-2 zdefiniowanym w ISO 14289-2 oraz ISO 32000-2 §14.7. Nie potwierdza jednak, że dany dokument jest zgodny z PDF/UA-2. Waliduj za pomocą walidatora PDF/UA, takiego jak veraPDF; biblioteka nie potwierdza zgodności w imieniu autora. Dołączony test golden veraPDF UA-2 jest pomijany, gdy brakuje pliku binarnego veraPDF, więc nie deklaruje się tu żadnego pozytywnego wyniku zgodności. Cytowane klauzule są parafrazowane, a nie cytowane dosłownie; skróty fragmentów są zapisane w docs/public/modules/core/_normative-evidence-a11y.md.

Deklaracja zgodności z PDF/UA-2 wymaga semantyki dostarczonej przez autora (tekst alternatywny, poprawna hierarchia nagłówków, powiązanie nagłówków tabeli, zamierzona kolejność czytania, klasyfikacja treści dekoracyjnej) oraz walidacji za pomocą zewnętrznego walidatora. Biblioteka nie tworzy ani nie weryfikuje żadnego z tych elementów. Środowisko uruchomieniowe emituje ostrzeżenie Degraded / ComplianceRisk, które kieruje do walidacji zewnętrznej przed zatwierdzeniem produkcyjnym. Zgodność jest właściwością finalnego dokumentu i procesu tworzenia, a nie samego wywołania API.