Mappatura della specifica PDF/UA-2 (ISO 14289-2)
In breve
Sezione intitolata “In breve”Questa pagina mette in relazione le funzionalità di NextPDF Core con le disposizioni di ISO 14289-2 (PDF/UA-2). Indica quali disposizioni la libreria aiuta l’autore a soddisfare e quali sono esplicitamente fuori ambito. Non costituisce una dichiarazione di conformità. La conformità di un file dipende dal contenuto dell’autore, dal markup di origine e dalla convalida tramite un validatore PDF/UA esterno.
Installazione
Sezione intitolata “Installazione”composer require nextpdf/corePanoramica concettuale
Sezione intitolata “Panoramica concettuale”PDF/UA-2 (ISO 14289-2) definisce i requisiti per i PDF accessibili. Questi requisiti si basano sulle funzionalità di struttura logica di ISO 32000-2 §14.7 e sulle voci di supporto all’accessibilità di ISO 32000-2 §14.9. Un file conforme viene identificato tramite lo schema di identificazione di ISO 14289-2 §5. Un file conforme contiene un albero di struttura la cui radice ha un singolo elemento Document (ISO 14289-2 §8.2.5.2). Un file conforme utilizza tipi di struttura standard, in modo che la tecnologia assistiva possa ricondurre ogni tag a un ruolo noto.
NextPDF fornisce le primitive per la creazione di questo modello: costruzione dell’albero di struttura, mappatura standard dei ruoli, tagging del contenuto marcato a partire da HTML semantico e attributi di lingua BCP-47. NextPDF non deduce la semantica assente dal contenuto di origine. NextPDF non esegue un validatore di conformità. Le primitive sono progettate per il modello di ISO 14289-2 §3.1, in cui la tecnologia assistiva consuma l’albero di struttura. Il fatto che un documento specifico soddisfi ogni disposizione dipende dall’input dell’autore e da un validatore esterno.
Superficie API
Sezione intitolata “Superficie API”| Area della disposizione | Punto di ingresso di NextPDF |
|---|---|
| Abilitazione del PDF con tag, mark-info, lingua del catalogo | Document::enableTaggedPdf(string $lang, ?ConformancePolicy) |
| Lingua naturale a livello di documento | Document::setLanguage(string $lang) |
Albero di struttura e singola radice Document | StructureTree::createRoot(), StructureTree::addElement() |
| Vocabolario dei tipi di struttura standard | RoleMap::standard() |
| Lingua per elemento, testo alternativo e testo sostitutivo | StructureElement: attributi del costruttore |
| Convalida rigorosa BCP-47 | Bcp47Validator, ConformancePolicy::strictUa2() |
| Correzione euristica (opt-in) | AccessibilityAutoFixerRegistry |
Esempio di codice — Avvio rapido
Sezione intitolata “Esempio di codice — Avvio rapido”<?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.pdfEsempio di codice — Produzione
Sezione intitolata “Esempio di codice — Produzione”Vedere l’esempio di produzione del modulo Accessibility per il writer basato su dependency injection, con convalida rigorosa BCP-47, logging informativo e gestione degli errori. La stessa configurazione si applica a un flusso di lavoro di creazione PDF/UA-2. L’unica aggiunta è la fase di convalida esterna successiva alla generazione. Questa fase è obbligatoria per una dichiarazione di conformità ed è responsabilità del chiamante.
Casi limite e insidie
Sezione intitolata “Casi limite e insidie”- Un documento in cui il PDF con tag è abilitato ma che non collega alcun discendente di struttura non espone intenzionalmente il blocco di identificazione PDF/UA-2 (ISO 14289-2 §5). Un albero di struttura vuoto viene rifiutato dai validatori.
- La combinazione di
enablePdfA()edenableTaggedPdf()porta il discriminatore di conformità a valore singolo a seguire la logica last-wins, mentre gli effetti collaterali strutturali restano additivi. Un avvisoCONFORMANCE_MODE_CLOBBEREDrende osservabile questo comportamento. - ISO 14289-2 §7.2.2 consente a un documento conforme di dichiarare anche la conformità a normative di accessibilità più ampie. NextPDF emette esclusivamente lo schema di identificazione PDF/UA-2 e non emette altri metadati di dichiarazione normativa.
Mappatura delle disposizioni e non copertura esplicita
Sezione intitolata “Mappatura delle disposizioni e non copertura esplicita”| Area della disposizione (ISO 14289-2 / ISO 32000-2) | Supporto di NextPDF | Note |
|---|---|---|
| Schema di identificazione PDF/UA-2 (ISO 14289-2 §5) | Supporta | Emesso solo quando l’albero di struttura ha discendenti. |
Singolo elemento Document sotto la radice dell’albero di struttura (ISO 14289-2 §8.2.5.2; ISO 32000-2 §14.7.2) | Supporta | createRoot() impone un singolo Document radice. |
| Tipi di struttura standard e mappa dei ruoli (ISO 32000-2 §14.7; Well-Tagged PDF §8.2.5.1) | Supporta | RoleMap::standard() più lo spazio dei nomi PDF 2.0. |
| Sequenze di contenuto marcato e albero padre (ISO 32000-2 §14.7.2) | Supporta | Identificatori per pagina, continuazione tra pagine. |
| Lingua naturale del catalogo e per elemento (ISO 32000-2 §14.9; ISO 14289-2 §8.4.4) | Supporta | BCP-47; la modalità rigorosa rifiuta i tag malformati. |
| Contenitori del testo alternativo e sostitutivo (ISO 32000-2 §14.9) | Supporta il contenitore; il contenuto è fornito dall’autore | La libreria non genera testo alternativo. |
| Ordine di lettura logico (ISO 32000-2 §14.7) | Supporta l’ordine di origine; non riordina | Un ordine di lettura corretto è responsabilità dell’autore. |
| Associazione e ambito delle intestazioni di tabella | Fuori ambito oltre il markup HTML | Non viene dedotto; dipende dal markup di origine. |
| Correttezza dei livelli di intestazione e struttura | Fuori ambito | L’autore deve fornire una gerarchia di intestazioni corretta. |
| Verifica PDF/UA-2 end-to-end | Fuori ambito | Nessun controllore incluso; convalidare esternamente. |
| Attestazione o certificazione di conformità | Fuori ambito | Non viene fornita dalla libreria. |
Prestazioni
Sezione intitolata “Prestazioni”Le funzionalità dell’albero di struttura aggiungono un singolo passaggio di serializzazione lineare su tutti gli elementi; il costo dipende soprattutto dalla pipeline HTML, più che dall’emissione dei tag. Il limite performance_budget si applica a un tipico documento semantico multipagina.
Note sulla sicurezza
Sezione intitolata “Note sulla sicurezza”I valori degli attributi di lingua e accessibilità vengono sottoposti a escape tramite PdfStringEscaper prima di essere inseriti nella sintassi degli oggetti PDF e la convalida BCP-47 in modalità rigorosa limita la superficie di input dei tag di lingua al confine dell’API. Trattare il testo alternativo e i titoli forniti dall’autore come output non attendibile.
Conformità
Sezione intitolata “Conformità”NextPDF emette una struttura coerente con il modello dell’albero di struttura PDF/UA-2 definito in ISO 14289-2 e ISO 32000-2 §14.7. Non dichiara che un determinato documento sia conforme a PDF/UA-2. Convalidare con un validatore PDF/UA (ad esempio, veraPDF); la libreria non dichiara la conformità per conto del chiamante. Il test golden veraPDF UA-2 incluso viene saltato quando il binario veraPDF è assente, perciò qui non viene dichiarato alcun esito positivo di conformità. Le clausole citate sono parafrasate, mai riportate testualmente; gli hash dei chunk sono registrati in docs/public/modules/core/_normative-evidence-a11y.md.
Limitazioni note
Sezione intitolata “Limitazioni note”Una dichiarazione di conformità PDF/UA-2 richiede una semantica fornita dall’autore (testo alternativo, gerarchia di intestazioni corretta, associazione delle intestazioni di tabella, ordine di lettura previsto, classificazione del contenuto decorativo) oltre alla convalida con un validatore esterno. Nessuno di questi elementi viene prodotto o verificato dalla libreria. Il runtime emette un avviso Degraded / ComplianceRisk che invita il chiamante a convalidare esternamente per l’approvazione alla produzione. La conformità è una proprietà del documento finale e del processo di creazione, non della chiamata all’API.