Checkpoint 09: Appropriate Tags
PDF content must be tagged in logical reading order with semantically correct structure elements so that assistive technology can present the content in a meaningful sequence.
What This Means
When you create a PDF, the visual layout determines what sighted users see. But assistive technology like screen readers do not "see" the page. Instead, they read the document's tag structure, which defines the reading order and the meaning of each content element.
Think of tags as invisible labels that tell assistive technology: "This is a heading," "This is a paragraph," "This is a list item," and so on. These tags also define the order in which content should be read. When tags are correct and in logical order, screen reader users experience your document the same way sighted users do.
When tags are wrong, missing, or out of order, the document becomes confusing or impossible to understand. Imagine reading a book where paragraphs jump randomly between chapters, headings appear after their content, and list items are scattered throughout unrelated sections.
Why It Matters
Proper tagging is foundational to PDF accessibility. Every other accessibility feature depends on correct tag structure:
- Screen reader users rely on tags to navigate and understand documents. Wrong tags mean wrong announcements and lost comprehension.
- Keyboard navigation uses tag structure to move between headings, lists, and other elements.
- Reading order determines whether content flows logically or jumps confusingly around the page.
- Semantic meaning allows users to understand that something is a heading, a list, a quote, or a table.
Beyond accessibility, proper tagging improves:
- Document reflow on mobile devices
- Search engine indexing
- Content extraction and repurposing
- Long-term document preservation
Common Violations
The Matterhorn Protocol defines eight failure conditions for appropriate tags. Here is what each one means and how to fix it.
09-001: Tags Not in Logical Reading Order
What's Wrong: The order of tags in the document structure does not match the logical reading order of the content. Screen readers follow the tag order, not the visual layout, so users hear content in the wrong sequence.
Common Causes:
- Multi-column layouts where columns are tagged in the wrong order
- Sidebars or callout boxes tagged before the main content they relate to
- Headers and footers interspersed with body content in the tag order
- Content created by copying and pasting from different sources
How to Identify:
- In the Tags panel, read through the tags from top to bottom
- Compare this order to how a person would logically read the document
- Use the Reading Order tool to visualize the current order
- Test with a screen reader and listen to the sequence
How to Fix:
- Go to View > Show/Hide > Navigation Panes > Tags
- Expand the tag tree to see the structure
- Click and drag tags to rearrange them in logical reading order
- For multi-column layouts, ensure left column content comes before right column content (for left-to-right languages)
- Move headers to appear before their related content
- Move sidebars and footnotes to appropriate positions
Tips for Complex Layouts:
- Headers and footers should usually be at the end of the tag structure or marked as artifacts
- In a two-column newsletter, tag order should be: Column 1 content, then Column 2 content
- Sidebars can be positioned where they make sense contextually, or at the end of the related section
09-002: Structure Elements Nested Inappropriately
What's Wrong: Tags are nested inside other tags in ways that do not make semantic sense. For example, a heading inside a paragraph, or a table inside a list item that does not logically contain tabular data.
Common Incorrect Nesting:
- Headings (H1, H2) inside paragraph tags (P)
- Paragraphs inside other paragraphs
- Block-level elements inside inline elements
- Unrelated content types nested together
How to Identify:
- In the Tags panel, look for unusual nesting patterns
- Run a PDF/UA check, which may flag structural issues
- Look for tags that seem out of place within their parent tags
How to Fix:
- In the Tags panel, identify the incorrectly nested tag
- Click and drag it to the correct location in the hierarchy
- If a heading is inside a paragraph, drag it out to be a sibling at the same level
- Ensure block elements are at appropriate levels, not nested inside inline elements
Correct Nesting Examples:
Document
├── H1 (main heading)
├── P (paragraph)
├── H2 (subheading)
├── P (paragraph)
├── L (list)
│ ├── LI (list item)
│ │ └── LBody (list item content)
│ └── LI (list item)
│ └── LBody (list item content)
└── P (paragraph)
09-003: Semantically Inappropriate Structure Type
What's Wrong: A structure element uses a tag type that does not match its actual purpose. For example, using a Span tag for a heading, or a Paragraph tag for a list.
Common Mistakes:
- Headings tagged as paragraphs (P instead of H1, H2, etc.)
- Lists tagged as series of paragraphs
- Quotes tagged as regular paragraphs instead of BlockQuote
- Figures tagged as Divs or Spans
- Emphasized text not using appropriate inline tags
How to Identify:
- In the Tags panel, look for content that visually appears to be one thing but is tagged as another
- Large bold text that looks like a heading but is tagged as P
- Bulleted or numbered content tagged as separate paragraphs
- Run a manual review comparing visual appearance to tag types
How to Fix:
- In the Tags panel, right-click the incorrectly tagged element
- Select Properties
- In the "Type" dropdown, select the correct tag type:
- For headings: H1, H2, H3, H4, H5, or H6
- For lists: L (list), LI (list item), LBody (list item body)
- For quotes: BlockQuote
- For figures: Figure
- For paragraphs: P
- Click Close
Choosing the Right Tag:
| Content Type | Correct Tag |
|---|---|
| Main page heading | H1 |
| Section headings | H2, H3, etc. (in order) |
| Regular text | P |
| Bulleted/numbered items | L > LI > LBody |
| Images and figures | Figure |
| Quotes | BlockQuote |
| Table of contents | TOC, TOCI |
| Emphasized text | Em or Strong |
| Code or preformatted text | Code |
09-004: Table Structure Does Not Conform to ISO 32000-1 (Machine Testable)
What's Wrong: Table-related tags (Table, TR, TH, TD) do not follow the required syntax defined in the PDF specification. The structure is technically invalid and may not be interpreted correctly by assistive technology.
How to Identify:
- Run a PDF/UA validation in Acrobat or PAC
- The checker will report specific table structure errors
- Look for messages about invalid table element nesting or missing required elements
Common Issues:
- TD or TH elements not inside TR (table row) elements
- TR elements not inside Table elements
- Missing THead, TBody, or TFoot where expected
- Invalid attributes on table elements
How to Fix:
- In the Tags panel, expand the Table tag structure
- Verify the hierarchy follows: Table > TR > (TH or TD)
- If elements are out of place, drag them to correct positions:
- All TH and TD tags must be inside TR tags
- All TR tags must be inside the Table tag
- If the table is severely broken, delete the tags and retag:
- Go to Tools > Accessibility > Reading Order
- Select the table content
- Click Table to create new structure
- Use Table Editor to fine-tune
09-005: List Structure Does Not Conform to ISO 32000-1 (Machine Testable)
What's Wrong: List-related tags (L, LI, Lbl, LBody) do not follow the required syntax. Lists must have a specific structure to be valid.
Required List Structure:
L (List)
├── LI (List Item)
│ ├── Lbl (optional: bullet or number)
│ └── LBody (the item content)
├── LI
│ ├── Lbl
│ └── LBody
└── ...
How to Identify:
- Run a PDF/UA check, which will flag list structure errors
- In the Tags panel, check that lists follow the L > LI > LBody pattern
- Look for list items without LBody elements, or lists without LI elements
How to Fix:
- In the Tags panel, expand the L (List) tag
- Verify each item is wrapped in an LI tag
- Verify each LI contains at least an LBody tag
- If bullets or numbers are tagged, they should be in Lbl tags
- Drag elements to correct positions if needed
If the list needs to be rebuilt:
- Delete the malformed list tags
- Select the list content
- Use Tools > Accessibility > Reading Order
- Choose List from the options
- Manually verify and adjust the structure in the Tags panel
09-006: TOC Structure Does Not Conform to ISO 32000-1 (Machine Testable)
What's Wrong: Table of Contents (TOC) tags do not follow the required structure. TOC elements have specific nesting requirements.
Required TOC Structure:
TOC (Table of Contents)
├── TOCI (TOC Item)
│ └── Reference or Link to destination
├── TOCI
│ └── ...
└── ...
How to Identify:
- Run a PDF/UA check for TOC structure errors
- In the Tags panel, look for TOC tags and verify their structure
- TOCI items should contain references to actual document locations
How to Fix:
- In the Tags panel, expand the TOC tag
- Ensure each entry is wrapped in a TOCI tag
- TOCI tags should contain:
- The text of the entry
- A Link tag pointing to the destination in the document
- If the TOC is generated from bookmarks, regenerate it
For manually created TOCs:
- Tag each entry line as TOCI
- Wrap all TOCI elements in a single TOC tag
- Ensure links are properly tagged within each TOCI
09-007: Ruby Structure Does Not Conform to ISO 32000-1 (Machine Testable)
What's Wrong: Ruby annotations (used in East Asian typography to show pronunciation guides above characters) do not follow the required structure.
Required Ruby Structure:
Ruby
├── RB (Ruby Base - the base text)
└── RT (Ruby Text - the annotation)
How to Identify:
- Run a PDF/UA check for Ruby structure errors
- This is primarily relevant for documents with Japanese, Chinese, or Korean content
- Look for Ruby tags in the Tags panel and verify their structure
How to Fix:
- In the Tags panel, expand the Ruby tag
- Ensure it contains both RB (base text) and RT (annotation text) elements
- If elements are missing or misplaced, restructure:
- The base character(s) should be in RB
- The pronunciation guide should be in RT
- Both RB and RT must be direct children of the Ruby tag
09-008: Warichu Structure Does Not Conform to ISO 32000-1 (Machine Testable)
What's Wrong: Warichu annotations (inline notes in East Asian typography, displayed in smaller text within a line) do not follow the required structure.
Required Warichu Structure:
Warichu
├── WT (Warichu Text)
└── WP (Warichu Punctuation, optional)
How to Identify:
- Run a PDF/UA check for Warichu structure errors
- This is primarily relevant for documents with Japanese content
- Look for Warichu tags in the Tags panel
How to Fix:
- In the Tags panel, expand the Warichu tag
- Ensure it contains the required WT element
- WP (punctuation) elements are optional but must be properly structured if present
- Restructure if needed by dragging elements into correct positions
How to Fix in Adobe Acrobat
Adobe Acrobat Pro provides several tools for fixing tag structure issues.
Using the Tags Panel
- Go to View > Show/Hide > Navigation Panes > Tags
- Expand the tag tree to see the document structure
- Click and drag tags to rearrange reading order
- Right-click tags to access Properties and change tag types
Using the Reading Order Tool
- Go to Tools > Accessibility > Reading Order
- The page displays numbered regions showing reading order
- Draw rectangles around content to tag it
- Use buttons to assign tag types (Heading, Text, Figure, Table, etc.)
- Click "Show Order Panel" to see and reorder tagged content
Changing Tag Types
- In the Tags panel, right-click the tag to change
- Select Properties
- In the "Type" dropdown, select the correct tag type
- Click Close
Fixing Reading Order
- Open both the Tags panel and the Order panel (View > Show/Hide > Navigation Panes > Order)
- The Order panel shows a list of content in reading order
- Drag items up or down to change the order
- Changes in the Order panel automatically update the Tags panel
Validating Structure
- Go to Tools > Accessibility > Accessibility Check
- Select PDF/UA-1 as the checking standard
- Under Options, ensure structure-related checks are enabled
- Click Start Checking
- Review and fix any reported issues
How to Fix in Microsoft Word
Creating well-structured documents in Word before exporting to PDF produces better tag structure automatically.
Using Heading Styles
- Select text that should be a heading
- Go to the Home tab
- In the Styles group, click the appropriate heading style:
- Heading 1 for main document title
- Heading 2 for major sections
- Heading 3 for subsections
- And so on in order (do not skip levels)
- Never format headings manually with bold and large font. Always use styles.
Creating Proper Lists
- Select the text to make into a list
- Click the Bullets or Numbering button on the Home tab
- For nested lists, use the Increase Indent button
- Word will export these as proper L, LI, and LBody tags
Using Built-in Styles
Word's built-in styles map to PDF tags:
- Normal = P (paragraph)
- Heading 1-9 = H1-H9
- List Bullet/Number = L, LI, LBody
- Quote = BlockQuote
- Table = Table structure
Avoid creating your own styles for structural elements. Use and customize the built-in styles instead.
Checking Reading Order in Word
- Go to File > Check for Issues > Check Accessibility
- Review any reading order warnings
- Use the Selection Pane (View > Selection Pane) to see object order
- Reorder objects by dragging in the Selection Pane
Exporting with Structure
- Go to File > Save As and select PDF
- Click Options
- Ensure Document structure tags for accessibility is checked
- Ensure Headings is selected under "Create bookmarks using"
- Click OK and save
Testing Your Fix
After making corrections, verify the tag structure is correct.
Quick Test in Acrobat
- Go to Tools > Accessibility > Accessibility Check
- Run a full check with PDF/UA-1 selected
- Review the "Document" and "Page Content" sections for structure errors
- Expand each category to see specific issues
Review the Tag Tree
- Open the Tags panel
- Collapse all tags, then expand one section at a time
- Verify:
- Tags are in logical reading order (read top to bottom)
- Tag types match content (headings are H tags, paragraphs are P, etc.)
- Nesting makes sense (no headings inside paragraphs)
- Lists follow L > LI > LBody structure
Test with a Screen Reader
- Open the PDF in a screen reader (NVDA, JAWS, or VoiceOver)
- Read through the document from beginning to end
- Verify:
- Content is read in the expected order
- Headings are announced as headings with their level
- Lists are announced as lists with item counts
- You can navigate between headings, lists, and other elements
Use PAC (PDF Accessibility Checker)
- Open your PDF in PAC
- Run the PDF/UA check
- Navigate to the "Matterhorn Protocol" results
- Check Checkpoint 09 for any structure failures
- Use the Screen Reader Preview to simulate how content will be read
Manual Review Checklist
- Reading order matches logical content flow
- All headings use H1-H6 tags (not styled paragraphs)
- Heading levels are in order (H1 > H2 > H3, no skipping)
- Lists use L, LI, and LBody tags
- Tables use proper Table, TR, TH, TD structure
- Block elements are not nested inside inline elements
- No headings inside paragraphs or other inappropriate nesting
- TOC structure is valid (if present)
- Headers and footers are either properly tagged or marked as artifacts
Additional Resources
Official Standards and Guidelines
- W3C WCAG 2.1 Success Criterion 1.3.1: Info and Relationships
- W3C WCAG 2.1 Success Criterion 1.3.2: Meaningful Sequence
- PDF Association Matterhorn Protocol 1.02
- ISO 32000-1:2008 (PDF Specification)
Tutorials and Guides
- Adobe: Adding Tags to Documents
- WebAIM: PDF Accessibility
- PDF Association: Tagged PDF Best Practices
Tools
- PAC (PDF Accessibility Checker) - Free PDF/UA validation tool
- NVDA Screen Reader - Free screen reader for testing
- Adobe Acrobat Pro Reading Order Tool
This documentation is based on the Matterhorn Protocol 1.02, the definitive reference for PDF/UA validation. For the most current information, consult the PDF Association and W3C WCAG guidelines.