Pular para o conteúdo

Mapeamento da especificação PDF/UA-2 (ISO 14289-2)

Esta página mapeia os recursos do NextPDF Core para as provisões do PDF/UA-2 (Portable Document Format/Universal Accessibility 2; ISO 14289-2). Ela mostra quais provisões a biblioteca ajuda você a atender e quais estão explicitamente fora do escopo. Isso não é uma declaração de conformidade. Um arquivo em conformidade depende do conteúdo, da marcação de origem e da validação com um verificador externo de PDF/UA.

Terminal window
composer require nextpdf/core

O PDF/UA-2 (ISO 14289-2) define requisitos para arquivos PDF acessíveis. Esses requisitos se baseiam nos recursos de estrutura lógica da ISO 32000-2 §14.7 e nas entradas de suporte à acessibilidade da ISO 32000-2 §14.9. Um arquivo em conformidade se identifica por meio do esquema de identificação da ISO 14289-2 §5. Ele contém uma árvore de estrutura cuja raiz tem um único elemento Document (ISO 14289-2 §8.2.5.2). Ele usa tipos de estrutura padrão para que a tecnologia assistiva consiga associar cada tag a um papel conhecido.

O NextPDF fornece as primitivas de criação para esse modelo: construção da árvore de estrutura, mapeamento de papéis padrão, marcação de conteúdo a partir de HTML semântico e atributos de idioma BCP-47. O NextPDF não infere semântica que esteja ausente do conteúdo de origem. O NextPDF não executa um verificador de conformidade. Essas primitivas seguem o modelo da ISO 14289-2 §3.1, no qual a tecnologia assistiva consome a árvore de estrutura. A entrada fornecida por você e um validador externo determinam se um documento específico atende a cada provisão.

Área da provisãoPonto de entrada do NextPDF
Ativação de Tagged-PDF, mark-info, idioma do catálogoDocument::enableTaggedPdf(string $lang, ?ConformancePolicy)
Idioma natural no nível do documentoDocument::setLanguage(string $lang)
Árvore de estrutura e raiz Document únicaStructureTree::createRoot(), StructureTree::addElement()
Vocabulário de tipos de estrutura padrãoRoleMap::standard()
Idioma por elemento, texto alternativo e texto de substituiçãoStructureElement: atributos do construtor
Validação estrita de BCP-47Bcp47Validator, ConformancePolicy::strictUa2()
Correção heurística (opcional)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

Consulte o exemplo de produção do módulo de acessibilidade para o componente de escrita com injeção de dependências, validação estrita de BCP-47, registro de avisos e tratamento de erros. A mesma integração se aplica a um fluxo de trabalho de criação em PDF/UA-2. Adicione a etapa de validação externa pós-geração. Essa etapa é obrigatória para uma declaração de conformidade e é responsabilidade sua.

  • Um documento que ativa o Tagged-PDF, mas não anexa nenhum descendente de estrutura, não anuncia o bloco de identificação PDF/UA-2 por design (ISO 14289-2 §5). Os validadores rejeitam uma árvore de estrutura vazia.
  • Combinar enablePdfA() e enableTaggedPdf() reduz o discriminador de conformidade de valor único a uma política em que o último valor prevalece, enquanto os efeitos colaterais estruturais continuam aditivos. Um aviso CONFORMANCE_MODE_CLOBBERED torna isso observável.
  • A ISO 14289-2 §7.2.2 permite que um documento em conformidade também reivindique conformidade com regulamentações de acessibilidade mais amplas. O NextPDF emite apenas o esquema de identificação PDF/UA-2 e não emite outros metadados de declaração regulatória.

Mapeamento de provisões e não cobertura explícita

Seção intitulada “Mapeamento de provisões e não cobertura explícita”
Área da provisão (ISO 14289-2 / ISO 32000-2)Suporte do NextPDFObservações
Esquema de identificação PDF/UA-2 (ISO 14289-2 §5)SuportaEmitido apenas quando a árvore de estrutura tem descendentes.
Elemento Document único sob a raiz da árvore de estrutura (ISO 14289-2 §8.2.5.2; ISO 32000-2 §14.7.2)SuportacreateRoot() impõe um único Document raiz.
Tipos de estrutura padrão e mapa de papéis (ISO 32000-2 §14.7; Well-Tagged PDF §8.2.5.1)SuportaRoleMap::standard() mais o namespace PDF 2.0.
Sequências de marked-content e árvore de pais (ISO 32000-2 §14.7.2)SuportaIdentificadores por página, continuação entre páginas.
Idioma natural do catálogo e por elemento (ISO 32000-2 §14.9; ISO 14289-2 §8.4.4)SuportaBCP-47; o modo estrito rejeita tags malformadas.
Portadores de texto alternativo e de substituição (ISO 32000-2 §14.9)Suporta o portador; o conteúdo é fornecido pelo autorA biblioteca não gera texto alternativo.
Ordem de leitura lógica (ISO 32000-2 §14.7)Suporta a ordem de origem; não reordenaUma ordem de leitura corrigida é responsabilidade do autor.
Associação e escopo de cabeçalho de tabelaFora do escopo além da marcação HTMLNão é inferido; depende da marcação de origem.
Correção do nível de títulos e estrutura de tópicosFora do escopoO autor deve fornecer uma hierarquia de títulos correta.
Verificação PDF/UA-2 de ponta a pontaFora do escopoSem verificador incluído; valide externamente.
Atestado ou certificação de conformidadeFora do escopoNão fornecido pela biblioteca.

Os recursos da árvore de estrutura adicionam uma passagem de serialização linear sobre o conjunto de elementos. O pipeline de HTML domina o custo, não a emissão de tags. O limite de performance_budget se aplica a um documento semântico típico com várias páginas.

Os valores de idioma e de atributos de acessibilidade são escapados por meio de PdfStringEscaper antes de serem inseridos na sintaxe de objetos PDF. A validação de BCP-47 em modo estrito reduz a superfície de entrada de tags de idioma na fronteira da API. Trate o texto alternativo e os títulos fornecidos pelo autor como saída não confiável.

O NextPDF emite uma estrutura consistente com o modelo de árvore de estrutura PDF/UA-2 definido na ISO 14289-2 e na ISO 32000-2 §14.7. Ele não declara que um determinado documento esteja em conformidade com o PDF/UA-2. Valide com um verificador de PDF/UA, como o veraPDF; a biblioteca não declara conformidade em seu nome. O teste golden de UA-2 do veraPDF incluído é ignorado quando o binário do veraPDF está ausente, portanto nenhuma aprovação de conformidade é reivindicada aqui. As cláusulas citadas são parafraseadas, nunca transcritas; os hashes de chunk são registrados em docs/public/modules/core/_normative-evidence-a11y.md.

Uma declaração de conformidade com o PDF/UA-2 requer semântica fornecida pelo autor (texto alternativo, hierarquia de títulos correta, associação de cabeçalho de tabela, ordem de leitura pretendida, classificação de conteúdo decorativo) e validação com um verificador externo. A biblioteca não produz nem verifica nenhum desses itens. O runtime emite um aviso Degraded / ComplianceRisk que orienta você a validar externamente antes da aprovação em produção. A conformidade é uma propriedade do documento final e do processo de criação, não da chamada à API.