Mapeamento da especificação PDF/UA-2 (ISO 14289-2)
Visão geral
Seção intitulada “Visão geral”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.
Instalação
Seção intitulada “Instalação”composer require nextpdf/coreVisão conceitual
Seção intitulada “Visão conceitual”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.
Superfície da API
Seção intitulada “Superfície da API”| Área da provisão | Ponto de entrada do NextPDF |
|---|---|
| Ativação de Tagged-PDF, mark-info, idioma do catálogo | Document::enableTaggedPdf(string $lang, ?ConformancePolicy) |
| Idioma natural no nível do documento | Document::setLanguage(string $lang) |
Árvore de estrutura e raiz Document única | StructureTree::createRoot(), StructureTree::addElement() |
| Vocabulário de tipos de estrutura padrão | RoleMap::standard() |
| Idioma por elemento, texto alternativo e texto de substituição | StructureElement: atributos do construtor |
| Validação estrita de BCP-47 | Bcp47Validator, ConformancePolicy::strictUa2() |
| Correção heurística (opcional) | AccessibilityAutoFixerRegistry |
Exemplo de código — Início rápido
Seção intitulada “Exemplo de código — Início rápido”<?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.pdfExemplo de código — Produção
Seção intitulada “Exemplo de código — Produção”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.
Casos extremos e armadilhas
Seção intitulada “Casos extremos e armadilhas”- 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()eenableTaggedPdf()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 avisoCONFORMANCE_MODE_CLOBBEREDtorna 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 NextPDF | Observações |
|---|---|---|
| Esquema de identificação PDF/UA-2 (ISO 14289-2 §5) | Suporta | Emitido 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) | Suporta | createRoot() 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) | Suporta | RoleMap::standard() mais o namespace PDF 2.0. |
| Sequências de marked-content e árvore de pais (ISO 32000-2 §14.7.2) | Suporta | Identificadores 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) | Suporta | BCP-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 autor | A biblioteca não gera texto alternativo. |
| Ordem de leitura lógica (ISO 32000-2 §14.7) | Suporta a ordem de origem; não reordena | Uma ordem de leitura corrigida é responsabilidade do autor. |
| Associação e escopo de cabeçalho de tabela | Fora do escopo além da marcação HTML | Não é inferido; depende da marcação de origem. |
| Correção do nível de títulos e estrutura de tópicos | Fora do escopo | O autor deve fornecer uma hierarquia de títulos correta. |
| Verificação PDF/UA-2 de ponta a ponta | Fora do escopo | Sem verificador incluído; valide externamente. |
| Atestado ou certificação de conformidade | Fora do escopo | Não fornecido pela biblioteca. |
Desempenho
Seção intitulada “Desempenho”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.
Notas de segurança
Seção intitulada “Notas de segurança”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.
Conformidade
Seção intitulada “Conformidade”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.
Limitações conhecidas
Seção intitulada “Limitações conhecidas”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.