Сопоставление со спецификацией PDF/UA-2 (ISO 14289-2)
Эта страница сопоставляет возможности NextPDF Core с положениями PDF/UA-2 (Portable Document Format/Universal Accessibility 2; ISO 14289-2). Здесь указано, какие положения библиотека помогает выполнить, а какие явно выходят за рамки её ответственности. Это не заявление о соответствии. Файл, соответствующий требованиям, зависит от вашего содержимого, исходной разметки и проверки внешним инструментом PDF/UA.
Установка
Заголовок раздела «Установка»composer require nextpdf/coreКонцептуальный обзор
Заголовок раздела «Концептуальный обзор»PDF/UA-2 (ISO 14289-2) определяет требования к доступным файлам PDF. Эти требования опираются на средства логической структуры ISO 32000-2 §14.7 и записи поддержки доступности ISO 32000-2 §14.9. Файл, соответствующий требованиям, идентифицирует себя с помощью схемы идентификации ISO 14289-2 §5. Он содержит дерево структуры с единственным элементом Document под корнем (ISO 14289-2 §8.2.5.2). Он использует стандартные типы структуры, чтобы вспомогательные технологии могли сопоставить каждый тег с известной ролью.
NextPDF предоставляет базовые средства создания документов для этой модели: построение дерева структуры, сопоставление со стандартными ролями, разметку маркированного содержимого на основе семантического HTML и языковые атрибуты BCP-47. NextPDF не выводит семантику, отсутствующую в исходном содержимом. NextPDF не запускает инструмент проверки соответствия. Эти средства ориентированы на модель ISO 14289-2 §3.1, в которой вспомогательные технологии обрабатывают дерево структуры. Ваши входные данные и внешний инструмент проверки определяют, соответствует ли конкретный документ каждому положению.
Поверхность API
Заголовок раздела «Поверхность API»| Область положения | Точка входа NextPDF |
|---|---|
| Включение тегированного PDF, mark-info, язык каталога | Document::enableTaggedPdf(string $lang, ?ConformancePolicy) |
| Естественный язык на уровне документа | Document::setLanguage(string $lang) |
Дерево структуры и единственный Document в корне | StructureTree::createRoot(), StructureTree::addElement() |
| Словарь стандартных типов структуры | RoleMap::standard() |
| Язык на уровне элемента, альтернативный и замещающий текст | StructureElement — атрибуты конструктора |
| Строгая проверка BCP-47 | Bcp47Validator, ConformancePolicy::strictUa2() |
| Эвристическое исправление (по выбору) | AccessibilityAutoFixerRegistry |
Пример кода — быстрый старт
Заголовок раздела «Пример кода — быстрый старт»<?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.pdfПример кода — рабочая среда
Заголовок раздела «Пример кода — рабочая среда»См. пример для рабочей среды модуля Accessibility, где показан writer с внедрением зависимостей, строгой проверкой BCP-47, информационным логированием и обработкой ошибок. Та же схема подключения применима к созданию документов PDF/UA-2. Добавьте этап внешней проверки после генерации. Этот этап обязателен для заявления о соответствии и относится к вашей зоне ответственности.
Граничные случаи и подводные камни
Заголовок раздела «Граничные случаи и подводные камни»- Документ с включённым тегированным PDF, но без присоединённых потомков структуры, не объявляет блок идентификации PDF/UA-2 — это сделано намеренно (ISO 14289-2 §5). Инструменты проверки отклоняют пустое дерево структуры.
- Совместное использование
enablePdfA()иenableTaggedPdf()сводит единственное значение дискриминатора соответствия к правилу “побеждает последний”, тогда как структурные побочные эффекты остаются аддитивными. ПредупреждениеCONFORMANCE_MODE_CLOBBEREDпозволяет это отследить. - ISO 14289-2 §7.2.2 разрешает документу, соответствующему требованиям, дополнительно заявлять о соответствии более широким нормам доступности. NextPDF выводит только схему идентификации PDF/UA-2 и не выводит метаданные иных нормативных заявлений.
Сопоставление положений и явно не охваченные области
Заголовок раздела «Сопоставление положений и явно не охваченные области»| Область положения (ISO 14289-2 / ISO 32000-2) | Поддержка в NextPDF | Примечания |
|---|---|---|
| Схема идентификации PDF/UA-2 (ISO 14289-2 §5) | Поддерживается | Выводится только тогда, когда у дерева структуры есть потомки. |
Единственный элемент Document под корнем дерева структуры (ISO 14289-2 §8.2.5.2; ISO 32000-2 §14.7.2) | Поддерживается | createRoot() обеспечивает единственный корневой Document. |
| Стандартные типы структуры и карта ролей (ISO 32000-2 §14.7; Well-Tagged PDF §8.2.5.1) | Поддерживается | RoleMap::standard() плюс пространство имён PDF 2.0. |
| Последовательности маркированного содержимого и родительское дерево (ISO 32000-2 §14.7.2) | Поддерживается | Идентификаторы на уровне страницы, продолжение между страницами. |
| Естественный язык на уровне каталога и на уровне элемента (ISO 32000-2 §14.9; ISO 14289-2 §8.4.4) | Поддерживается | BCP-47; строгий режим отклоняет некорректно сформированные теги. |
| Носители альтернативного и замещающего текста (ISO 32000-2 §14.9) | Поддерживает носитель; содержимое задаёт автор | Библиотека не генерирует альтернативный текст. |
| Логический порядок чтения (ISO 32000-2 §14.7) | Поддерживает порядок источника; не меняет порядок | Корректный порядок чтения относится к зоне ответственности автора. |
| Связь заголовков таблицы и область их действия | За рамками ответственности, кроме HTML-разметки | Не выводится; зависит от исходной разметки. |
| Корректность уровней заголовков и структура оглавления | За рамками ответственности | Автор должен предоставить правильную иерархию заголовков. |
| Сквозная проверка PDF/UA-2 | За рамками ответственности | Встроенного инструмента проверки нет; выполняйте проверку внешними средствами. |
| Аттестация или сертификация соответствия | За рамками ответственности | Библиотека этого не предоставляет. |
Производительность
Заголовок раздела «Производительность»Средства дерева структуры добавляют один линейный проход сериализации по набору элементов. Основные затраты приходятся на HTML-конвейер, а не на вывод тегов. Ограничение performance_budget применяется к типичному многостраничному семантическому документу.
Замечания по безопасности
Заголовок раздела «Замечания по безопасности»Значения атрибутов языка и доступности экранируются через PdfStringEscaper до попадания в синтаксис объектов PDF. Строгая проверка BCP-47 сужает поверхность ввода для языковых тегов на границе API. Рассматривайте предоставленные автором альтернативный текст и заголовки как недоверенные выходные данные.
Соответствие
Заголовок раздела «Соответствие»NextPDF выводит структуру, согласованную с моделью дерева структуры PDF/UA-2, определённой в ISO 14289-2 и ISO 32000-2 §14.7. NextPDF не утверждает, что данный документ соответствует PDF/UA-2. Проверяйте документ инструментом PDF/UA, например veraPDF; библиотека не заявляет о соответствии от вашего имени. Встроенный эталонный тест veraPDF UA-2 пропускается, когда двоичный файл veraPDF отсутствует, поэтому здесь не заявляется прохождение проверки соответствия. Цитируемые пункты пересказаны, а не приведены дословно; хеши фрагментов записаны в docs/public/modules/core/_normative-evidence-a11y.md.
Известные ограничения
Заголовок раздела «Известные ограничения»Заявление о соответствии PDF/UA-2 требует предоставленной автором семантики (альтернативный текст, правильная иерархия заголовков, связь заголовков таблицы, предполагаемый порядок чтения, классификация декоративного содержимого) и проверки внешним инструментом. Библиотека не создаёт и не проверяет ничего из этого. Среда выполнения выдаёт уведомление Degraded / ComplianceRisk, которое требует внешней проверки для приёмки в рабочей среде. Соответствие — это свойство итогового документа и процесса его создания, а не вызова API.