Mise en correspondance avec la spécification PDF/UA-2 (ISO 14289-2)
Cette page met en correspondance les fonctionnalités de NextPDF Core avec les dispositions de la norme ISO 14289-2 (PDF/UA-2). Elle précise les dispositions que la bibliothèque aide l’auteur à satisfaire et celles qui sont explicitement hors périmètre. Ce n’est pas une déclaration de conformité. La conformité d’un fichier dépend du contenu fourni par l’auteur, du balisage source et d’une validation au moyen d’un vérificateur PDF/UA externe.
Installation
Section intitulée « Installation »composer require nextpdf/coreVue d’ensemble conceptuelle
Section intitulée « Vue d’ensemble conceptuelle »La norme PDF/UA-2 (ISO 14289-2) définit les exigences applicables aux PDF accessibles. Ces exigences s’appuient sur les fonctions de structure logique de ISO 32000-2 §14.7 et sur les entrées de prise en charge de l’accessibilité de ISO 32000-2 §14.9. Un fichier conforme s’identifie au moyen du schéma d’identification de ISO 14289-2 §5. Un fichier conforme contient une arborescence de structure dont la racine possède un unique élément Document (ISO 14289-2 §8.2.5.2). Un fichier conforme utilise des types de structure standard, de sorte que la technologie d’assistance puisse résoudre chaque balise vers un rôle connu.
NextPDF fournit les primitives de création nécessaires à ce modèle : construction de l’arborescence de structure, mappage des rôles standard, balisage du contenu marqué à partir du HTML sémantique et attributs de langue BCP-47. NextPDF ne déduit pas la sémantique absente du contenu source. NextPDF n’exécute aucun vérificateur de conformité. Le modèle de la norme ISO 14289-2 §3.1, dans lequel la technologie d’assistance consomme l’arborescence de structure, est la cible de ces primitives. Le respect de chaque disposition par un document donné est déterminé par les données fournies par l’auteur et par un validateur externe.
Surface de l’API
Section intitulée « Surface de l’API »| Domaine de disposition | Point d’entrée NextPDF |
|---|---|
| Activation du PDF balisé, mark-info et langue du catalogue | Document::enableTaggedPdf(string $lang, ?ConformancePolicy) |
| Langue naturelle au niveau du document | Document::setLanguage(string $lang) |
Arborescence de structure et racine Document unique | StructureTree::createRoot(), StructureTree::addElement() |
| Vocabulaire des types de structure standard | RoleMap::standard() |
| Langue, texte de remplacement et texte de substitution par élément | StructureElement : attributs du constructeur |
| Validation stricte BCP-47 | Bcp47Validator, ConformancePolicy::strictUa2() |
| Correction heuristique (optionnelle) | AccessibilityAutoFixerRegistry |
Exemple de code — Démarrage rapide
Section intitulée « Exemple de code — Démarrage rapide »<?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.pdfExemple de code — Production
Section intitulée « Exemple de code — Production »Consulte l’exemple de production du module Accessibilité pour le writer utilisant l’injection de dépendances, avec validation stricte BCP-47, journalisation consultative et gestion des erreurs. Le même câblage s’applique à un flux de création PDF/UA-2. Le seul ajout est l’étape de validation externe post-génération. Cette étape est requise pour une déclaration de conformité et relève de la responsabilité de l’appelant.
Cas limites et pièges
Section intitulée « Cas limites et pièges »- Un document qui active le PDF balisé mais n’attache aucun descendant de structure n’annonce volontairement pas le bloc d’identification PDF/UA-2 (ISO 14289-2 §5). Une arborescence de structure vide est rejetée par les validateurs.
- Combiner
enablePdfA()etenableTaggedPdf()fait que le discriminant de conformité à valeur unique prend la dernière valeur écrite, tout en conservant des effets de bord structurels additifs. Un avertissementCONFORMANCE_MODE_CLOBBEREDrend cela observable. - ISO 14289-2 §7.2.2 autorise un document conforme à revendiquer également la conformité à des réglementations d’accessibilité plus larges. NextPDF émet uniquement le schéma d’identification PDF/UA-2 et n’émet pas d’autres métadonnées de revendication réglementaire.
Correspondance des dispositions et non-couverture explicite
Section intitulée « Correspondance des dispositions et non-couverture explicite »| Domaine de disposition (ISO 14289-2 / ISO 32000-2) | Prise en charge NextPDF | Notes |
|---|---|---|
| Schéma d’identification PDF/UA-2 (ISO 14289-2 §5) | Pris en charge | Émis uniquement lorsque l’arborescence de structure a des descendants. |
Élément Document unique sous la racine de l’arborescence de structure (ISO 14289-2 §8.2.5.2 ; ISO 32000-2 §14.7.2) | Pris en charge | createRoot() impose un unique Document racine. |
| Types de structure standard et mappage des rôles (ISO 32000-2 §14.7 ; Well-Tagged PDF §8.2.5.1) | Pris en charge | RoleMap::standard() ainsi que l’espace de noms PDF 2.0. |
| Séquences de contenu marqué et arbre parent (ISO 32000-2 §14.7.2) | Pris en charge | Identifiants par page et continuation inter-pages. |
| Langue naturelle du catalogue et par élément (ISO 32000-2 §14.9 ; ISO 14289-2 §8.4.4) | Pris en charge | BCP-47 ; le mode strict rejette les balises mal formées. |
| Porteurs de texte de remplacement et de substitution (ISO 32000-2 §14.9) | Prend en charge le porteur ; le contenu est fourni par l’auteur | La bibliothèque ne génère pas de texte de remplacement. |
| Ordre de lecture logique (ISO 32000-2 §14.7) | Prend en charge l’ordre source ; ne réordonne pas | Un ordre de lecture corrigé relève de la responsabilité de l’auteur. |
| Association et portée des en-têtes de tableau | Hors périmètre au-delà du balisage HTML | Non inféré ; dépend du balisage source. |
| Justesse des niveaux de titre et plan du document | Hors périmètre | L’auteur doit fournir une hiérarchie de titres correcte. |
| Vérification PDF/UA-2 de bout en bout | Hors périmètre | Aucun vérificateur intégré ; validation externe requise. |
| Attestation ou certification de conformité | Hors périmètre | Non fournies par la bibliothèque. |
Performance
Section intitulée « Performance »Les fonctions d’arborescence de structure ajoutent une seule passe de sérialisation linéaire sur l’ensemble des éléments ; le coût vient surtout du pipeline HTML plutôt que de l’émission des balises. Le plafond performance_budget s’applique à un document sémantique multi-pages typique.
Notes de sécurité
Section intitulée « Notes de sécurité »Les valeurs de langue et d’attributs d’accessibilité sont échappées via PdfStringEscaper avant leur insertion dans la syntaxe des objets PDF. La validation BCP-47 en mode strict restreint la surface d’entrée des balises de langue à la frontière de l’API. Traite le texte de remplacement et les titres fournis par l’auteur comme des sorties non fiables.
Conformité
Section intitulée « Conformité »NextPDF émet une structure cohérente avec le modèle d’arborescence de structure PDF/UA-2 défini dans ISO 14289-2 et ISO 32000-2 §14.7. Il n’affirme pas qu’un document donné est conforme à PDF/UA-2. Valide avec un vérificateur PDF/UA (par exemple, veraPDF) ; la bibliothèque n’affirme pas la conformité à ta place. Le test de référence veraPDF UA-2 intégré est désactivé par un garde-fou lorsque le binaire veraPDF est absent ; aucun résultat positif de conformité n’est donc revendiqué ici. Les clauses citées sont paraphrasées, jamais reproduites textuellement ; les empreintes des fragments sont consignées dans docs/public/modules/core/_normative-evidence-a11y.md.
Limitations connues
Section intitulée « Limitations connues »Une déclaration de conformité PDF/UA-2 requiert une sémantique fournie par l’auteur (texte de remplacement, hiérarchie de titres correcte, association des en-têtes de tableau, ordre de lecture voulu, classification du contenu décoratif) ainsi qu’une validation avec un vérificateur externe. Aucun de ces éléments n’est produit ni vérifié par la bibliothèque. Le runtime émet un avis Degraded / ComplianceRisk qui invite l’appelant à valider en externe avant la validation finale en production. La conformité est une propriété du document final et du processus de création, pas du seul appel à l’API.