Zum Inhalt springen

PDF/UA-2-Konformität: die von NextPDF für ISO 14289-2 ausgegebene getaggte Struktur

Grenzaussage. NextPDF gibt die getaggte Struktur aus, die barrierefreies Authoring unterstützt; es beansprucht keine PDF/UA-2-Konformität — darüber entscheidet ein Prüfwerkzeug.

PDF/UA-2 ist ISO 14289-2:2024, das auf getaggtem PDF 2.0 aufbauende Barrierefreiheitsprofil. NextPDF Core gibt den Strukturbaum, den markierten Inhalt, die Sprachangaben auf catalog/structure-Ebene sowie den pdfuaid-Marker über Document::enableTaggedPdf() aus. Die Bibliothek erzeugt die barrierefreie Struktur; über die Konformität entscheidet ein PDF/UA-Prüfwerkzeug (zum Beispiel verapdf --flavour ua2). ISO 14289-2 §8.1 fasst Konformität als eine Reihe von Dateiformatanforderungen auf, die ein Dokument erfüllen muss — bewertet wird sie durch ein Prüfwerkzeug, nicht durch eine Erklärung des Erzeugers.

Terminal-Fenster
composer require nextpdf/core:^3

PDF/UA-2-Tagging ist eine Core-Fähigkeit (security.tagged_pdf). Für die getaggte Struktur selbst ist kein Premium-Paket erforderlich.

Document::enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null) setzt ConformanceMode::PdfUa2 und bindet TaggedContentEmitter ein. Der Modus ist die maßgebliche Quelle dafür, ob dieses Dokument „spec-getaggt“ ist; der Writer erfüllt anschließend die strukturellen Pflichten, die ISO 14289-2 auferlegt:

  • Echter Inhalt ist getaggt — §8.2.2: jeder Bestandteil echten (Nicht-Artefakt-)Inhalts ist in die logische Struktur aufgenommen; Artefakte sind als solche markiert. Dies baut auf der getaggten PDF-Struktur aus ISO 32000-2 §14.7 auf (StructTreeRoot, Strukturelemente, MCIDs).
  • Die natürliche Sprache ist deklariert — §8.4.4: das Dokument und Sprachwechsel tragen jeweils ein Lang. Mit ConformancePolicy::strictUa2() wird ein fehlerhaftes BCP-47-Tag an der API-Grenze abgewiesen (Fail-Fast), statt zur Schreibzeit stillschweigend verworfen zu werden.
  • Abbildungen tragen Alternativen — §8.5.1: jedes Figure-Strukturelement hat eine alternative Beschreibung.
  • Tabellen verknüpfen Kopf und Daten — §8.2.5.26: die Zuordnung von header/data-Zellen in Tabellen ist strukturell ausgedrückt.

NextPDF gibt diese Struktur aus. Es führt nicht die Konformitätsbewertung nach §8.1 durch — diese Aufgabe liegt beim Prüfwerkzeug und ist im Standard dort verortet.

MethodeWirkung
enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null): staticSetzt ConformanceMode::PdfUa2, bindet TaggedContentEmitter ein und validiert $lang gemäß Policy. Wirft InvalidConfigException, wenn die Policy die Lang-Validierung vorschreibt und $lang ungültig ist.
beginTag()/endTag()Manuelle Struktur für Nicht-HTML-Inhalte; Container-Typen werden zu Gruppierungselementen, Blatt-Typen erhalten MCIDs.
ConformanceMode::requiresPdfUa2PageTabs(): boolGibt für PdfUa2 wahr zurück — steuert die Durchsetzung von /Tabs /S auf Seitenebene.
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
use NextPDF\Conformance\ConformancePolicy;
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/accessible.pdf';
$doc = Document::createStandalone();
$doc->enableTaggedPdf('en', ConformancePolicy::strictUa2()); // fail-fast Lang
$doc->setTitle('Accessible report 2026');
$doc->writeHtml('<h1>Quarterly report</h1><p>Body text.</p>'
. '<img src="chart.png" alt="Revenue rose 12% quarter on quarter">');
$doc->save($out);
echo "Wrote {$out} — validate: verapdf --flavour ua2 {$out}\n";

Das Produktions-Gate führt verapdf --flavour ua2 out.pdf aus und lässt den Build bei gemeldeten Verstößen fehlschlagen. Der Integrationstest tests/Integration/Accessibility/VeraPdfUa2GoldenTest.php stellt sicher, dass die Golden-Fixture für HTML→getaggtes-PDF die veraPDF-UA-2-Prüfung besteht (übersprungen, wenn veraPDF fehlt). Das Urteil des Prüfwerkzeugs bildet das Gate; die Ausgabe des Emitters ist dessen Eingabe.

  • Zuerst aktivieren. enableTaggedPdf() nach writeHtml() taggt bereits geschriebenen Inhalt nicht rückwirkend.
  • Strenge Sprachprüfung. Übergeben Sie ConformancePolicy::strictUa2(), um ein fehlerhaftes BCP-47-Tag an der API-Grenze abzuweisen, statt erst bei der nachträglichen veraPDF-Validierung zu scheitern.
  • Idempotentes erneutes Aktivieren. Ein zweiter Aufruf aktualisiert die Sprache, ohne einen befüllten Strukturbaum neu aufzubauen.
  • Leeres getaggtes Dokument. Ein leeres getaggtes Dokument weist PDF/UA-2 nicht aus (EmptyTaggedPdfDoesNotAdvertisePdfUa2Test) — der Marker wird für ein Dokument ohne echten Inhalt nicht ausgegeben, sodass die Datei keine überzogene Aussage trifft.

Die Emission des Strukturbaums ist proportional zur Anzahl der Elemente. Für einen typischen Bericht ist das Budget auf Wall ≤ 1500 ms und Peak ≤ 64 MB ausgelegt.

Barrierefreiheits-Tagging ist strukturell, keine Sicherheitsmaßnahme. Es legt die logische Struktur des Dokuments konstruktionsbedingt für assistive Technologien offen — der Tagbaum hat keine Vertraulichkeitsdimension.

PDF/UA-2-PflichtISO 14289-2-KlauselNextPDF-Emission
Echter Inhalt in der logischen Struktur getaggt§8.2.2TaggedContentEmitter + StructureTree
Dokument-/Struktursprache deklariert§8.4.4catalog /Lang, validiert über Bcp47Validator
Alternative Beschreibung der Abbildung§8.5.1alt/Alt am Figure-Element
Zuordnung von header/data in Tabellen§8.2.5.26TR/TH/TD-Struktur aus HTML-Tabellen

PDF/UA-2 setzt auf dem getaggten PDF-Modell aus ISO 32000-2 auf. Die von NextPDF ausgegebenen Strukturelemente werden der logischen Struktur aus ISO 32000-2 §14.7 zugeordnet (StructTreeRoot, Strukturelemente, MCIDs) — chunk — sowie dem für PDF 2.0 definierten Standard-Struktur-Namespace. Die Rollenzuordnung verknüpft HTML-Elemente (h1, p, table) mit Standard-Strukturtypen, sodass ein UA-2-Prüfwerkzeug sie erkennt.

Die getaggte Struktur ist die technische Grundlage für die WCAG 2.2-Erfolgskriterien — 1.1.1 (Nicht-Text-Alternativen, über §8.5.1 Figure /Alt), 1.3.1 (Informationen und Beziehungen, über den Strukturbaum) und 1.3.2 (bedeutungstragende Reihenfolge, über die Lesereihenfolge). Das Ausgeben der Struktur ist für die WCAG-Konformität notwendig, aber nicht hinreichend; diese Feststellung trifft ein Barrierefreiheits-Audit, nicht die Bibliothek.

Die PDF/UA-2-Emission führt keine Kryptografie aus. Der FIPS-Modus wirkt sich nicht auf den Codepfad für die getaggte Struktur aus.

BehauptungSpezifikationKlauselreference_id
Die PDF/UA-Version wird durch den Schema-Namespace pdfuaid identifiziert (Tabelle 1).ISO 14289-2§5
Konformität mit PDF/UA-2 erlegt Dateiformatanforderungen auf, die ein Dokument erfüllen muss (ein Prüfwerkzeug bewertet die Konformität; der Erzeuger erklärt sie nicht).ISO 14289-2§8.1
Echter Inhalt muss in der logischen Struktur getaggt sein.ISO 14289-2§8.2.2
Die natürliche Sprache des Dokuments muss deklariert sein.ISO 14289-2§8.4.4
Figure-Elemente benötigen eine alternative Beschreibung.ISO 14289-2§8.5.1
Die Tabellenstruktur muss Kopf- und Datenzellen verknüpfen.ISO 14289-2§8.2.5.26
Die barrierefreie Struktur baut auf der getaggten logischen PDF-Struktur aus ISO 32000-2 auf.ISO 32000-2§14.7.2

Zitate sind Zeiger aus Klausel-ID und reference_id in das Verifikationskorpus. Es wird kein Standardtext wiedergegeben.