Перейти к содержимому

Сопоставление со спецификацией 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, в которой вспомогательные технологии обрабатывают дерево структуры. Ваши входные данные и внешний инструмент проверки определяют, соответствует ли конкретный документ каждому положению.

Область положенияТочка входа NextPDF
Включение тегированного PDF, mark-info, язык каталогаDocument::enableTaggedPdf(string $lang, ?ConformancePolicy)
Естественный язык на уровне документаDocument::setLanguage(string $lang)
Дерево структуры и единственный Document в корнеStructureTree::createRoot(), StructureTree::addElement()
Словарь стандартных типов структурыRoleMap::standard()
Язык на уровне элемента, альтернативный и замещающий текстStructureElement — атрибуты конструктора
Строгая проверка BCP-47Bcp47Validator, 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.