Konformansi PDF/UA-2: struktur bertanda yang dipancarkan oleh NextPDF untuk ISO 14289-2
Sekilas pandang
Bagian berjudul “Sekilas pandang”Pernyataan batasan. NextPDF memancarkan struktur bertanda yang mendukung pembuatan dokumen yang aksesibel; ini bukan pernyataan konformansi PDF/UA-2 — pemeriksa yang menentukannya.
PDF/UA-2 adalah ISO 14289-2:2024, profil aksesibilitas yang diterapkan di atas Portable Document Format (PDF) 2.0 bertanda. NextPDF Core memancarkan pohon struktur, konten bertanda, bahasa pada katalog dan struktur, serta penanda pdfuaid melalui Document::enableTaggedPdf(). Pustaka menghasilkan struktur yang aksesibel; konformansi tetap diputuskan oleh pemeriksa PDF/UA, seperti verapdf --flavour ua2. ISO 14289-2 §8.1 mendefinisikan konformitas sebagai persyaratan format berkas yang harus dipenuhi sebuah dokumen, sebagaimana dinilai oleh pemeriksa, bukan sebagai klaim yang dinyatakan oleh penghasil.
Pemasangan
Bagian berjudul “Pemasangan”composer require nextpdf/core:^3Penandaan PDF/UA-2 adalah kapabilitas Core (security.tagged_pdf). Anda tidak memerlukan paket Premium hanya untuk memancarkan struktur bertanda.
Tinjauan konseptual
Bagian berjudul “Tinjauan konseptual”Document::enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null) menetapkan ConformanceMode::PdfUa2 dan mengaitkan TaggedContentEmitter. Mode menjadi sumber kebenaran tunggal untuk menentukan apakah dokumen bertanda sesuai spesifikasi; penulis kemudian memenuhi kewajiban struktural yang ditetapkan ISO 14289-2:
- Konten nyata diberi tanda — §8.2.2: setiap bagian konten nyata non-artefak disertakan dalam struktur logis, dan artefak ditandai sebagai artefak. Ini dibangun di atas struktur PDF bertanda §14.7 ISO 32000-2 (
StructTreeRoot, elemen struktur, MCID). - Bahasa alami dideklarasikan — §8.4.4: dokumen dan peralihan bahasa mencantumkan
Lang. DenganConformancePolicy::strictUa2(), tag BCP 47 yang cacat ditolak secara fail-fast pada batas API, alih-alih dibuang diam-diam saat penulisan. - Gambar membawa alternatif — §8.5.1: setiap elemen struktur
Figurememiliki deskripsi alternatif. - Tabel mengaitkan header dan data — §8.2.5.26: asosiasi sel header/data tabel diungkapkan secara struktural.
NextPDF memancarkan struktur ini. NextPDF tidak menjalankan penilaian konformitas §8.1; itu adalah peran pemeriksa, dan standar menempatkannya di sana.
Permukaan API
Bagian berjudul “Permukaan API”| Metode | Efek |
|---|---|
enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null): static | Menetapkan ConformanceMode::PdfUa2, mengaitkan TaggedContentEmitter, memvalidasi $lang sesuai kebijakan. Melempar InvalidConfigException ketika kebijakan mewajibkan validasi Lang dan $lang tidak valid. |
beginTag()/endTag() | Struktur manual untuk konten non-HTML; tipe kontainer menjadi elemen pengelompokan, tipe daun memperoleh MCID. |
ConformanceMode::requiresPdfUa2PageTabs(): bool | Bernilai true untuk PdfUa2 — memicu penegakan /Tabs /S pada halaman. |
Contoh kode — Mulai cepat
Bagian berjudul “Contoh kode — Mulai cepat”<?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";Contoh kode — Produksi
Bagian berjudul “Contoh kode — Produksi”Gerbang produksi menjalankan verapdf --flavour ua2 out.pdf dan menggagalkan build ketika pemeriksa melaporkan pelanggaran. Pengujian integrasi tests/Integration/Accessibility/VeraPdfUa2GoldenTest.php menegaskan bahwa fikstur golden HTML→PDF-bertanda lolos veraPDF UA-2 (dilewati ketika veraPDF tidak tersedia). Putusan pemeriksa menjadi gerbang, dan keluaran pemancar menjadi masukannya.
Kasus tepi & jebakan
Bagian berjudul “Kasus tepi & jebakan”- Aktifkan lebih dahulu.
enableTaggedPdf()setelahwriteHtml()tidak menandai konten yang sudah ditulis secara surut. - Bahasa ketat. Berikan
ConformancePolicy::strictUa2()untuk menolak tag BCP 47 yang cacat pada batas API, alih-alih baru gagal pada validasi veraPDF setelahnya. - Pengaktifan ulang yang idempoten. Memanggilnya dua kali memperbarui bahasa tanpa membangun ulang pohon struktur yang sudah terisi.
- Dokumen bertanda yang kosong. Dokumen bertanda yang kosong tidak mengiklankan PDF/UA-2 (
EmptyTaggedPdfDoesNotAdvertisePdfUa2Test): penanda tidak dipancarkan untuk dokumen tanpa konten nyata, sehingga berkas tidak mengklaim secara berlebihan.
Kinerja
Bagian berjudul “Kinerja”Pemancaran pohon struktur sebanding dengan jumlah elemen. Batas anggarannya adalah wall ≤ 1500 ms dan puncak ≤ 64 MB untuk laporan tipikal.
Catatan keamanan
Bagian berjudul “Catatan keamanan”Penandaan aksesibilitas bersifat struktural, bukan kontrol keamanan. Berdasarkan rancangan, ini memaparkan struktur logis dokumen kepada teknologi bantu. Pohon tanda tidak memiliki aspek kerahasiaan.
Pemetaan PDF/UA-2
Bagian berjudul “Pemetaan PDF/UA-2”| Kewajiban PDF/UA-2 | Klausa ISO 14289-2 | Pemancaran NextPDF |
|---|---|---|
| Konten nyata diberi tanda dalam struktur logis | §8.2.2 | TaggedContentEmitter + StructureTree |
| Bahasa dokumen/struktur dideklarasikan | §8.4.4 | /Lang katalog, divalidasi melalui Bcp47Validator |
| Deskripsi alternatif gambar | §8.5.1 | alt → /Alt pada elemen Figure |
| Asosiasi header/data tabel | §8.2.5.26 | Struktur TR/TH/TD dari tabel HTML |
Rujukan silang Tag → ISO 32000-2 §14.9
Bagian berjudul “Rujukan silang Tag → ISO 32000-2 §14.9”PDF/UA-2 melapisi model PDF bertanda ISO 32000-2. Elemen struktur yang dipancarkan NextPDF dipetakan terhadap struktur logis §14.7 ISO 32000-2 (StructTreeRoot, elemen struktur, MCID) — chunk — dan ruang nama struktur standar yang ditetapkan untuk PDF 2.0. Peta peran mengikat elemen HTML (h1, p, table) ke tipe struktur standar sehingga pemeriksa UA-2 dapat mengenalinya.
Pemetaan WCAG 2.2
Bagian berjudul “Pemetaan WCAG 2.2”Struktur bertanda adalah landasan teknis untuk kriteria sukses Web Content Accessibility Guidelines (WCAG) 2.2 — 1.1.1 (alternatif non-teks, melalui Figure /Alt §8.5.1), 1.3.1 (informasi dan relasi, melalui pohon struktur), dan 1.3.2 (urutan yang bermakna, melalui urutan baca). Pemancaran struktur diperlukan tetapi tidak cukup untuk konformansi WCAG; audit aksesibilitas, bukan pustaka, yang membuat penentuan itu.
Perilaku mode FIPS
Bagian berjudul “Perilaku mode FIPS”Pemancaran PDF/UA-2 tidak melakukan kriptografi. Mode Federal Information Processing Standards (FIPS) tidak berpengaruh pada jalur struktur bertanda.
Konformansi
Bagian berjudul “Konformansi”| Klaim | Spesifikasi | Klausa | reference_id |
|---|---|---|---|
Versi PDF/UA diidentifikasi oleh ruang nama skema pdfuaid (Tabel 1). | ISO 14289-2 | §5 | |
| Konformitas dengan PDF/UA-2 menetapkan persyaratan format berkas yang harus dipenuhi dokumen (pemeriksa menilai konformitas; penghasil tidak menyatakannya). | ISO 14289-2 | §8.1 | |
| Konten nyata harus diberi tanda dalam struktur logis. | ISO 14289-2 | §8.2.2 | |
| Bahasa alami dokumen harus dideklarasikan. | ISO 14289-2 | §8.4.4 | |
| Elemen Figure memerlukan deskripsi alternatif. | ISO 14289-2 | §8.5.1 | |
| Struktur tabel harus mengaitkan sel header dan data. | ISO 14289-2 | §8.2.5.26 | |
| Struktur yang aksesibel dibangun di atas struktur logis PDF bertanda ISO 32000-2. | ISO 32000-2 | §14.7.2 |
Sitasi berfungsi sebagai penunjuk clause-id dan reference_id di dalam korpus verifikasi. Tidak ada teks standar yang direproduksi.