La estructura lógica
La estructura lógica
PDFs etiquetados incluyen un árbol de estructura lógica que define el documento Hierarquía semántica: parágrafos, títulos, tablas, figuras y listas. FOSS para .NET proporciona el TaggedContent API para la construcción y inspección Esta estructura, que es esencial para el cumplimiento de la accesibilidad PDF/UA.
Acceso a los contenidos etiquetados
using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");Creación de elementos estructurales
ITaggedContent proporciona métodos de fábrica para cada elemento estructural estándar Los elementos se agrupan en un árbol llamando AppendChild.
var root = tagged.RootElement;
var heading = tagged.CreateHeaderElement(1);
heading.SetText("Chapter 1");
root.AppendChild(heading);
var paragraph = tagged.CreateParagraphElement();
paragraph.SetText("This is the first paragraph.");
root.AppendChild(paragraph);Tablas estructuradas
TableElement Crea tablas accesibles con secciones de cabeza, cuerpo y pie.
var table = tagged.CreateTableElement();
root.AppendChild(table);
var thead = table.CreateTHead();
var headerRow = thead.CreateTR();
headerRow.CreateTH().SetText("Name");
headerRow.CreateTH().SetText("Value");
var tbody = table.CreateTBody();
var dataRow = tbody.CreateTR();
dataRow.CreateTD().SetText("Width");
dataRow.CreateTD().SetText("612");Ilustraciones y cifras
IllustrationElement Imagen de la estructura en el árbol.
var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);Tipos de elementos estructurales
La API soporta el conjunto completo de tipos de elementos de estructura PDF:
- nivel de bloqueo: Parágrafo, Título (H1-H6), Lista, ListItem, Tabla, BlockQuote, Código
- En línea: Espan, Link, Anotación, Figura, Fórmula
- Grupo: División, artículo, sección, parte
Consejos y mejores prácticas
- Siempre se establece
TitleyLanguageEn elTaggedContentPara la conformidad PDF/UA. - Construye el árbol de estructura arriba hacia abajo: crea elementos, luego apéndice a los niños.
- Uso
SetAlternativeTextEl uso de los elementos para la accesibilidad del lector de pantalla. - Título Tablas con
THead,TBody,TFootPara la semántica de mesa adecuada. - Validar la conformidad PDF/UA con el
PdfFormatConversionOptions(Vea el guía de conversión).
Problemas comunes
| Problemas | Causas | Fixado |
|---|---|---|
| PDF/UA validado fallido | El árbol que falta los elementos necesarios | Asegúrese de que todos los contenidos tienen elementos estructurales correspondientes. |
| La dirección de la orden es equivocada | H2 aparece antes de H1 | Seguir la jerarquía de los heads secuenciales |
| La imagen no tiene texto alt | SetAlternativeText No llamado | Siempre proporcionar texto alt para ilustraciones |
| Tabla no reconocida por el lector de pantalla | La estructura de THead/TBody | Utilice la API de estructura de mesa completa |
FAQ
¿Qué es un PDF etiquetado?
Un PDF etiquetado incluye un árbol de estructura lógica que mapa el contenido visual a elementos semánticos (títulos, parágrafos, tablas), lo que permite las herramientas de accesibilidad y el reflor de contenidos.
¿Es etiquetado PDF el mismo que PDF/UA?
PDF/UA es una norma que requiere etiquetado y reglas adicionales de accesibilidad. los PDF etiquetar son un requisito para el cumplimiento de PDF / UA.
¿Puedo etiquetar un PDF existente?
El TaggedContent API funciona mejor con documentos creados a partir de la escorcilla. PDFs existentes, inspecciona la estructura de la árbol a través de Document.TaggedContent.
Sumación de referencia API
| Clase / Método | Descripción |
|---|---|
TaggedContent | Punto de entrada para las operaciones estructurales lógicas |
TaggedContent.SetTitle | Configura el título de documento para la accesibilidad |
TaggedContent.SetLanguage | Definición del lenguaje de documento |
ITaggedContent | Interfaz con métodos de fábrica para todos los tipos de elementos |
StructureElement | Clase de base para todos los elementos estructurales |
StructureElement.AppendChild | Agregar un elemento infantil al árbol |
StructureElement.SetText | Configura el contenido de un elemento |
TableElement | El elemento de estructura de mesa accesible |
TableElement.CreateTHead | Crea la sección de tabla de cabeza |
TableElement.CreateTBody | Crea la sección del cuerpo de mesa |
TableTRElement | El elemento de la tabla |
TableTRElement.CreateTD | Adjuntar una célula de datos |
TableTRElement.CreateTH | Adjuntar una célula de header |
IllustrationElement | El elemento de la imagen/ilustración |
IllustrationElement.SetImage | Añadir una imagen a la ilustración |