Mapowanie specyfikacji PDF/UA-2 (ISO 14289-2)
W skrócie
Dział zatytułowany „W skrócie”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.
Instalacja
Dział zatytułowany „Instalacja”composer require nextpdf/corePrzegląd koncepcyjny
Dział zatytułowany „Przegląd koncepcyjny”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.
Powierzchnia API
Dział zatytułowany „Powierzchnia API”| Obszar wymagań | Punkt wejścia NextPDF |
|---|---|
| Aktywacja tagged PDF, mark-info i języka katalogu | Document::enableTaggedPdf(string $lang, ?ConformancePolicy) |
| Język naturalny na poziomie dokumentu | Document::setLanguage(string $lang) |
Drzewo struktury i pojedynczy korzeń Document | StructureTree::createRoot(), StructureTree::addElement() |
| Słownik standardowych typów struktury | RoleMap::standard() |
| Język na poziomie elementu, tekst alternatywny i tekst zastępczy | Atrybuty konstruktora StructureElement |
| Ścisła walidacja BCP 47 | Bcp47Validator, ConformancePolicy::strictUa2() |
| Heurystyczna naprawa (włączana opcjonalnie) | AccessibilityAutoFixerRegistry |
Przykład kodu — szybki start
Dział zatytułowany „Przykład kodu — szybki start”<?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.pdfPrzykład kodu — produkcja
Dział zatytułowany „Przykład kodu — produkcja”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.
Przypadki brzegowe i pułapki
Dział zatytułowany „Przypadki brzegowe i pułapki”- 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()ienableTaggedPdf()sprawia, że jednowartościowy dyskryminator zgodności działa według reguły „ostatni wygrywa”, przy zachowaniu addytywności strukturalnych efektów ubocznych. OstrzeżenieCONFORMANCE_MODE_CLOBBEREDczyni 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.
Mapowanie wymagań i wyraźnie nieobjęte obszary
Dział zatytułowany „Mapowanie wymagań i wyraźnie nieobjęte obszary”| Obszar wymagań (ISO 14289-2 / ISO 32000-2) | Obsługa w NextPDF | Uwagi |
|---|---|---|
| Schemat identyfikacji PDF/UA-2 (ISO 14289-2 §5) | Obsługiwane | Emitowany 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ługiwane | createRoot() 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ługiwane | RoleMap::standard() plus przestrzeń nazw PDF 2.0. |
| Sekwencje treści oznaczonej i drzewo nadrzędne (ISO 32000-2 §14.7.2) | Obsługiwane | Identyfikatory 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ługiwane | BCP 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 autor | Biblioteka nie generuje tekstu alternatywnego. |
| Logiczna kolejność czytania (ISO 32000-2 §14.7) | Zachowuje kolejność źródłową; nie zmienia kolejności | Poprawiona kolejność czytania należy do obowiązków autora. |
| Powiązanie nagłówków tabeli i zakresu | Obsługa nie wykracza poza znacznikowanie HTML | Powiązania nie są wnioskowane; zależą od znacznikowania źródłowego. |
| Poprawność poziomów nagłówków i konspekt | Poza zakresem | Autor musi dostarczyć poprawną hierarchię nagłówków. |
| Kompleksowa weryfikacja PDF/UA-2 | Poza zakresem | Brak dołączonego walidatora; waliduj zewnętrznie. |
| Poświadczenie lub certyfikacja zgodności | Poza zakresem | Nie jest dostarczane przez bibliotekę. |
Wydajność
Dział zatytułowany „Wydajność”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.
Uwagi dotyczące bezpieczeństwa
Dział zatytułowany „Uwagi dotyczące bezpieczeństwa”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.
Zgodność
Dział zatytułowany „Zgodność”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.
Znane ograniczenia
Dział zatytułowany „Znane ograniczenia”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.