Checkpoint 16: Lists
Lists must be properly tagged with the correct structure elements and, for ordered lists, appropriate numbering attributes. This ensures assistive technology can convey list organization to users.
What This Means
Lists in PDFs must use specific tag structures:
- L (List): The container for the entire list
- LI (List Item): Each item in the list
- Lbl (Label): The bullet, number, or marker
- LBody (List Body): The content of the list item
For ordered (numbered) lists, PDF/UA requires a ListNumbering attribute that specifies the numbering style. Valid values include:
- Decimal: 1, 2, 3, 4...
- UpperRoman: I, II, III, IV...
- LowerRoman: i, ii, iii, iv...
- UpperAlpha: A, B, C, D...
- LowerAlpha: a, b, c, d...
This attribute allows assistive technology to understand and announce the numbering scheme correctly, even if the visual numbers are represented differently in the PDF.
Why It Matters
Lists are fundamental organizational structures in documents. Proper list tagging provides:
- Context: Screen readers announce "list with 5 items" so users know what to expect
- Navigation: Users can skip entire lists or move between items
- Numbering comprehension: Ordered list numbers are announced correctly
- Nesting understanding: Sub-lists are properly related to parent items
Without proper list structure:
- Screen readers treat list items as unrelated paragraphs
- Users cannot determine how many items are in a list
- Numbered sequences are not conveyed as ordered
- Nested lists appear flat and confusing
- Users cannot efficiently navigate through list content
Consider a 20-item bulleted list. With proper tagging, a screen reader announces "List with 20 items" and users can navigate item-by-item. Without tagging, users hear 20 separate paragraphs with no indication they are related.
Common Violations
The Matterhorn Protocol defines three failure conditions for lists. All require human testing because automated tools cannot determine what content should be a list or verify numbering attribute appropriateness.
16-001: Ordered List Missing ListNumbering Attribute (Human Testing)
What's Wrong: A list is tagged and appears visually numbered (1, 2, 3 or A, B, C), but the List tag does not include the ListNumbering attribute. Without this attribute, assistive technology may not correctly convey the numbering scheme.
How to Identify:
- Find numbered lists in the document
- Open the Tags panel and locate the L (List) tag
- Check tag properties for
ListNumberingattribute - If missing, this violation exists
How to Check in Acrobat:
- Open Tags panel
- Find the L tag for the numbered list
- Right-click > Properties
- Look for
ListNumberingin the attribute list - If not present or empty, the attribute is missing
16-002: Invalid ListNumbering Value (Human Testing)
What's Wrong: The ListNumbering attribute exists but contains a value that is not one of the five standard values: Decimal, UpperRoman, LowerRoman, UpperAlpha, or LowerAlpha.
How to Identify:
- Check the
ListNumberingattribute on L tags - Verify the value matches one of the allowed values
- Look for misspellings, wrong case, or non-standard values
Invalid Examples:
- "Numbers" (not a valid value)
- "decimal" (wrong case; should be "Decimal")
- "Roman" (ambiguous; should specify Upper or Lower)
- "bullets" (bullets do not need ListNumbering)
- "1" (should be "Decimal", not the number itself)
Valid Values:
| Value | Displays As |
|---|---|
| Decimal | 1, 2, 3, 4, 5... |
| UpperRoman | I, II, III, IV, V... |
| LowerRoman | i, ii, iii, iv, v... |
| UpperAlpha | A, B, C, D, E... |
| LowerAlpha | a, b, c, d, e... |
16-003: Content Is a List But Not Tagged as List (Human Testing)
What's Wrong: Content that visually and semantically functions as a list is not tagged with list structure (L, LI, Lbl, LBody). It may be tagged as paragraphs, or worse, as a single block of text.
How to Identify:
- Look for content that appears as a list:
- Items with bullets, numbers, or markers
- Sequential items with consistent formatting
- Step-by-step instructions
- Feature or benefit lists
- Tables of contents (sometimes)
- Check if this content uses L/LI tags or just P tags
- Compare visual appearance to tag structure
Common Scenarios:
- Bulleted items tagged as separate P elements
- Numbered steps tagged as paragraphs with manual numbers
- Definition lists not using L/LI structure
- Nested lists flattened to single-level paragraphs
- Visual bullets created with images, not tagged as list markers
How to Fix in Adobe Acrobat
Creating List Structure from Untagged Content
- Go to Tools > Accessibility > Reading Order
- Draw a selection box around all list items
- Click the List button in the dialog
- Acrobat creates L > LI > LBody structure
Manually Building List Tags
- Open View > Show/Hide > Navigation Panes > Tags
- Create the list structure manually:
- Right-click where list should appear > New Tag
- Type: L (List)
- Inside L, create LI (List Item) for each item
- Inside each LI, create:
- Lbl for the bullet/number
- LBody for the content
- Drag content into the appropriate tags
Adding ListNumbering Attribute
- In the Tags panel, click on the L tag
- Right-click > Properties
- Click the Tag tab
- Click Edit Attribute Objects
- Click New Item to add an attribute
- Add attribute:
- Key:
ListNumbering - Value: One of:
Decimal,UpperRoman,LowerRoman,UpperAlpha,LowerAlpha
- Key:
- Click OK to close all dialogs
Using the Object Properties Panel
- Go to View > Show/Hide > Navigation Panes > Object
- Select the list tag
- View and edit attributes in the properties area
- Add or modify
ListNumberingas needed
Converting Paragraphs to List Items
If list items are already tagged as P (paragraphs):
- In the Tags panel, select the first P tag that should be a list item
- Right-click > Properties
- Change Type from P to LI
- Create an L tag to contain the LI tags
- Create Lbl and LBody inside each LI
- Move content appropriately
Handling Nested Lists
For lists within lists:
- Create the outer L tag with its LI items
- Inside an LI's LBody (or after it), create another L tag
- This nested L contains its own LI items
- Each level can have its own ListNumbering if numbered
Structure example:
L (ListNumbering: Decimal)
├── LI
│ ├── Lbl "1."
│ └── LBody "First item"
│ └── L (ListNumbering: LowerAlpha)
│ ├── LI
│ │ ├── Lbl "a."
│ │ └── LBody "Sub-item"
│ └── LI
│ ├── Lbl "b."
│ └── LBody "Another sub-item"
└── LI
├── Lbl "2."
└── LBody "Second item"
How to Fix in Microsoft Word
Creating proper lists in Word ensures correct tagging when exporting to PDF.
Using Built-in List Features
For bulleted lists:
- Select the items or position cursor
- Click Home > Bullets button
- Choose a bullet style
- Word creates a proper list structure
For numbered lists:
- Select the items or position cursor
- Click Home > Numbering button
- Choose a numbering style (1,2,3 or A,B,C or I,II,III)
- Word creates a numbered list with correct structure
Creating Multi-level Lists
- Click Home > Multilevel List button
- Choose a list style
- Use Tab to indent (increase level)
- Use Shift+Tab to outdent (decrease level)
- Different levels can have different numbering styles
Do NOT Fake Lists
Avoid these non-accessible approaches:
- Typing bullets manually (asterisks, hyphens, em-dashes)
- Typing numbers and periods manually
- Using tabs to align items
- Creating "lists" with paragraph breaks only
Wrong:
* First item
* Second item
* Third item
Right: Use the Bullets button to create a real list.
Customizing List Appearance
- Right-click on a list item
- Select Adjust List Indents or Bullets/Numbering
- Customize spacing, alignment, and markers
- Changes apply to list structure, not fake formatting
Verifying List Structure
- Click inside a list
- Look at the Home tab; Bullets or Numbering should be highlighted
- Open Navigation Pane > Headings (lists may not appear here but structure is preserved)
- Export to PDF and verify in Acrobat
Testing Your Fix
Automated Testing
Adobe Acrobat:
- Go to Tools > Accessibility > Accessibility Check
- Run with PDF/UA settings
- Look for list structure errors
- Note: Cannot detect missing ListNumbering attributes reliably
PAC (PDF Accessibility Checker):
- Open PDF in PAC
- Run PDF/UA validation
- Review list-related checkpoints
- Check both structure and attributes
Manual Structure Verification
- Open Tags panel
- Find all L tags
- For each list, verify:
- L contains only LI children
- Each LI contains Lbl and/or LBody
- Nested lists are properly structured
- For numbered lists, check ListNumbering attribute:
- Right-click L > Properties
- Verify attribute exists and has valid value
Screen Reader Testing
- Open PDF with NVDA, JAWS, or VoiceOver
- Navigate to list content
- Verify announcements:
- "List with X items" when entering list
- Item numbers or bullets announced
- "Nested list" for sub-lists
- "Out of list" when leaving
- Test list navigation shortcuts
- Compare what you hear to visual appearance
Content Review
- Look through the entire document visually
- Identify all content that looks like a list:
- Bulleted items
- Numbered steps
- Alphabetical sequences
- Hierarchical content
- Check each against the tag structure
- Verify nothing is missed
Validation Checklist
- All bulleted lists use L > LI > LBody structure
- All numbered lists use L > LI > Lbl + LBody structure
- Numbered lists have ListNumbering attribute
- ListNumbering uses valid value (Decimal, UpperRoman, LowerRoman, UpperAlpha, LowerAlpha)
- Nested lists have proper hierarchical structure
- Visual list content matches tagged structure
- Screen reader announces list information correctly
- List navigation works properly
Common List Scenarios
Simple Bulleted List
L
├── LI
│ └── LBody "First bullet point"
├── LI
│ └── LBody "Second bullet point"
└── LI
└── LBody "Third bullet point"
Numbered List with Labels
L (ListNumbering: Decimal)
├── LI
│ ├── Lbl "1."
│ └── LBody "Step one"
├── LI
│ ├── Lbl "2."
│ └── LBody "Step two"
└── LI
├── Lbl "3."
└── LBody "Step three"
Definition List Pattern
While not strictly a definition list, you can use:
L
├── LI
│ ├── Lbl "Term 1:"
│ └── LBody "Definition of term 1"
├── LI
│ ├── Lbl "Term 2:"
│ └── LBody "Definition of term 2"
Table of Contents as List
A TOC can be tagged as a nested list:
L
├── LI
│ ├── Lbl "1."
│ └── LBody
│ ├── Reference "Introduction... 1"
│ └── L
│ ├── LI
│ │ └── LBody (Reference "Background... 3")
Additional Resources
Official Standards and Guidelines
- W3C WCAG 2.1 Success Criterion 1.3.1: Info and Relationships
- PDF Association Matterhorn Protocol 1.02
- PDF/UA Technical Implementation Guide
Tutorials
- WebAIM: Semantic Structure - Lists
- Adobe: Creating Accessible Lists in PDFs
- Microsoft: Create a bulleted or numbered list
Tools
- PAC (PDF Accessibility Checker) - Free PDF/UA validation
- NVDA Screen Reader - Free screen reader for testing
- CommonLook PDF Validator - Professional PDF validation
This documentation is based on the Matterhorn Protocol 1.02, the definitive reference for PDF/UA validation. List violations require human testing because automated tools cannot determine what content should be a list or verify that ListNumbering values are appropriate. For the most current information, consult the PDF Association and W3C WCAG guidelines.