pdf-accessibility/README's/WCAG_LIMITATIONS.md
DJP bf83a409bb Initial commit: Enterprise PDF Accessibility Checker
- Complete WCAG 2.1 accessibility checking system
- AI-powered analysis with Claude 4.5 and Google Vision
- Web interface with drag-and-drop upload
- REST API backend (PHP)
- Python checker with parallel processing
- Quick mode for fast scans (~10 seconds)
- Full mode with AI analysis (~2 minutes)
- .env file support for API keys
- Error logging and debugging tools
- Comprehensive documentation

Performance improvements:
- Parallel image processing (3x faster)
- Smart API timeouts (10s)
- Reduced DPI for faster conversions
- Real-time progress updates

🤖 Generated with Claude Code
2025-10-20 15:50:56 -04:00

13 KiB

WCAG Limitations - What This Tool Cannot Check

This document details the WCAG 2.1 accessibility requirements that the PDF Accessibility Checker cannot automatically validate. These require manual review, human judgment, or specialized tools.


Critical Limitations by WCAG Principle

1. PERCEIVABLE (WCAG Principle 1)

1.1.1 Non-text Content - QUALITY Assessment

What the tool does: Detects that images exist in the PDF What it CANNOT do:

  • ✗ Verify if alt text exists for images
  • ✗ Check if alt text is meaningful and accurate
  • ✗ Determine if decorative images are properly marked as artifacts
  • ✗ Verify if complex images have long descriptions
  • ✗ Check if CAPTCHA has alternative forms
  • ✗ Validate that alt text isn't redundant with surrounding text

Manual check needed: Review each image's alternative text for accuracy and completeness


1.3.1 Info and Relationships

What the tool does: Checks if PDF is tagged (basic structure) What it CANNOT do:

  • ✗ Verify heading hierarchy is logical (H1→H2→H3, no skips)
  • ✗ Check if lists are properly marked as list elements
  • ✗ Validate table headers are correctly associated with data cells
  • ✗ Ensure form labels are programmatically associated with inputs
  • ✗ Verify proper use of semantic tags (aside, article, section)
  • ✗ Check if reading order matches visual order
  • ✗ Validate that emphasis (bold, italic) is marked semantically

Manual check needed: Use Adobe Acrobat's Reading Order tool or PAC to inspect tag structure


1.3.2 Meaningful Sequence

What the tool does: Checks if structure tree exists What it CANNOT do:

  • ✗ Verify content reads in a logical order
  • ✗ Detect if multi-column layouts are properly tagged
  • ✗ Check if tables with merged cells have correct reading order
  • ✗ Validate that footnotes/endnotes are properly ordered

Manual check needed: Test with screen reader (NVDA, JAWS) to verify reading order


1.3.3 Sensory Characteristics

What it CANNOT do:

  • ✗ Detect instructions that rely only on shape ("click the round button")
  • ✗ Identify references using only position ("information on the right")
  • ✗ Find instructions using only size ("use the large icon")
  • ✗ Check for color-only instructions ("click the red button")

Manual check needed: Review all instructional text for sensory-dependent references


1.4.1 Use of Color

What it CANNOT do:

  • ✗ Detect if color is the only means of conveying information
  • ✗ Check if links are distinguishable without color alone
  • ✗ Verify if graphs/charts use patterns in addition to color
  • ✗ Validate that form errors aren't indicated by color only

Manual check needed: View PDF in grayscale to verify information isn't lost


1.4.3 Contrast (Minimum) - AA Level

What it CANNOT do:

  • ✗ Measure color contrast ratios in text (requires 4.5:1 for normal text, 3:1 for large text)
  • ✗ Check contrast in images of text
  • ✗ Validate contrast in graphs and charts
  • ✗ Assess contrast for UI components and graphical objects

Manual check needed: Use tools like:

  • Colour Contrast Analyser (CCA)
  • WebAIM Contrast Checker
  • Adobe Acrobat's Accessibility Checker (partial support)

1.4.4 Resize Text

What it CANNOT do:

  • ✗ Test if text can be resized up to 200% without loss of content
  • ✗ Verify if zoom causes text overflow or content loss
  • ✗ Check if fixed-size containers break with larger text

Manual check needed: Test PDF at various zoom levels (200%+)


1.4.5 Images of Text

What it CANNOT do:

  • ✗ Distinguish between actual text and images of text
  • ✗ Verify if images of text are used only when necessary
  • ✗ Check if text in images could be replaced with actual text

Manual check needed: Visual inspection to identify text rendered as images


1.4.10 Reflow - AA Level (WCAG 2.1)

What it CANNOT do:

  • ✗ Test if content reflows properly when zoomed to 400%
  • ✗ Check if horizontal scrolling is required at high zoom
  • ✗ Verify content adapts to different viewport sizes

Manual check needed: Test at 400% zoom in PDF readers


1.4.11 Non-text Contrast - AA Level (WCAG 2.1)

What it CANNOT do:

  • ✗ Measure contrast of UI components (buttons, form borders)
  • ✗ Check contrast of icons and graphical elements (requires 3:1)
  • ✗ Validate contrast in charts, graphs, and infographics

Manual check needed: Use color contrast tools on non-text elements


2. OPERABLE (WCAG Principle 2)

2.1.1 Keyboard - All Functionality

What it CANNOT do:

  • ✗ Test if all interactive elements are keyboard accessible
  • ✗ Verify tab order is logical
  • ✗ Check if keyboard focus is visible
  • ✗ Test if keyboard traps exist
  • ✗ Validate that all form fields can be completed via keyboard

Manual check needed: Navigate entire PDF using only keyboard (Tab, Arrow keys)


2.1.2 No Keyboard Trap

What it CANNOT do:

  • ✗ Detect if users can get stuck in embedded content
  • ✗ Identify if modal dialogs or popups trap focus
  • ✗ Check if all navigable elements allow keyboard exit

Manual check needed: Tab through entire document checking for focus traps


2.2.2 Pause, Stop, Hide

What it CANNOT do:

  • ✗ Detect auto-playing media in embedded content
  • ✗ Verify controls exist to pause/stop animations
  • ✗ Check for auto-updating content that can't be paused

Manual check needed: Test any multimedia or animated content


2.4.1 Bypass Blocks

What it CANNOT do:

  • ✗ Verify if "skip to content" links exist (less relevant for PDFs)
  • ✗ Check if document has useful bookmarks for long documents
  • ✗ Validate that heading structure allows easy navigation

Manual check needed: Test navigation efficiency with screen reader


What it CANNOT do:

  • ✗ Verify link text is descriptive ("click here" vs "download report")
  • ✗ Check if links make sense out of context
  • ✗ Validate that identical link text leads to identical destinations
  • ✗ Detect ambiguous links ("more", "read more")

Manual check needed: Review all links for descriptive text


2.4.6 Headings and Labels - AA Level

What it CANNOT do:

  • ✗ Verify headings are descriptive and accurate
  • ✗ Check if form labels clearly describe purpose
  • ✗ Validate that section headings aid navigation
  • ✗ Assess if labels are positioned appropriately

Manual check needed: Review all headings and labels for clarity


2.4.7 Focus Visible - AA Level

What it CANNOT do:

  • ✗ Check if keyboard focus indicator is visible
  • ✗ Verify focus indicator has sufficient contrast
  • ✗ Validate focus order is logical

Manual check needed: Tab through PDF and visually confirm focus indicators


2.5.3 Label in Name - AA Level (WCAG 2.1)

What it CANNOT do:

  • ✗ Verify that visible labels match accessible names
  • ✗ Check if speech input users can activate controls using visible text
  • ✗ Validate consistency between visual and programmatic labels

Manual check needed: Compare visible text with accessible name properties


3. UNDERSTANDABLE (WCAG Principle 3)

3.1.2 Language of Parts

What the tool does: Checks document-level language only What it CANNOT do:

  • ✗ Detect text passages in different languages
  • ✗ Verify if language changes are marked in the PDF structure
  • ✗ Check if multilingual content has proper lang attributes

Manual check needed: Review document for language changes and verify markup


3.2.3 Consistent Navigation - AA Level

What it CANNOT do:

  • ✗ Verify navigation elements appear in consistent locations
  • ✗ Check if repeated content (headers, footers) is consistent
  • ✗ Validate consistent ordering of navigation across pages

Manual check needed: Review multi-page documents for consistency


3.2.4 Consistent Identification - AA Level

What it CANNOT do:

  • ✗ Verify that icons with same function have same labels
  • ✗ Check if similar components are labeled consistently
  • ✗ Validate consistent identification of repeated elements

Manual check needed: Review document for consistent labeling patterns


3.3.1 Error Identification

What it CANNOT do:

  • ✗ Test if form validation errors are clearly described
  • ✗ Verify error messages are programmatically associated with fields
  • ✗ Check if errors are presented in an accessible manner

Manual check needed: Test all form validation scenarios


3.3.2 Labels or Instructions

What it CANNOT do:

  • ✗ Verify that form fields have clear labels
  • ✗ Check if required fields are clearly indicated
  • ✗ Validate that instructions are clear and available
  • ✗ Assess if format requirements are specified (date format, etc.)

Manual check needed: Review all forms for clear instructions


3.3.3 Error Suggestion - AA Level

What it CANNOT do:

  • ✗ Check if error messages include correction suggestions
  • ✗ Verify suggestions don't compromise security
  • ✗ Validate that correction methods are clear

Manual check needed: Test form error scenarios for helpful suggestions


What it CANNOT do:

  • ✗ Verify that submissions are reversible
  • ✗ Check if data is validated before submission
  • ✗ Validate that confirmation pages exist for important actions

Manual check needed: Test form submission workflows


4. ROBUST (WCAG Principle 4)

4.1.2 Name, Role, Value

What the tool does: Checks for basic tagging What it CANNOT do:

  • ✗ Verify all UI components have accessible names
  • ✗ Check if roles are correctly assigned to custom components
  • ✗ Validate that state information is programmatically determinable
  • ✗ Verify form fields have proper labels and descriptions
  • ✗ Check if interactive elements have appropriate ARIA attributes

Manual check needed: Use Adobe Acrobat's Accessibility Checker or PAC


4.1.3 Status Messages - AA Level (WCAG 2.1)

What it CANNOT do:

  • ✗ Detect if status messages are announced to screen readers
  • ✗ Verify if loading/progress indicators are accessible
  • ✗ Check if success/error notifications work with assistive tech

Manual check needed: Test with screen readers for proper announcements


📊 Summary: WCAG Success Criteria Coverage

What the Tool CAN Check (Partially or Fully):

1.1.1 Non-text Content (detection only, not quality) 1.3.1 Info and Relationships (basic tagging only) 2.4.2 Page Titled 3.1.1 Language of Page 4.1.2 Name, Role, Value (basic structure only)

What the Tool CANNOT Check (78+ WCAG Criteria):

Level A (25 criteria) - Missing most checks Level AA (13 additional criteria) - Missing all checks Level AAA (23 additional criteria) - Missing all checks


To achieve comprehensive WCAG compliance checking:

  1. Adobe Acrobat Pro DC - Best for PDF-specific accessibility

    • Full accessibility checker
    • Reading order tool
    • Tag structure editing
    • Form field validation
  2. PAC (PDF Accessibility Checker) - Free, focused on PDF/UA

    • Detailed tag structure analysis
    • Screen reader preview
    • WCAG checkpoint mapping
  3. Colour Contrast Analyser - For color contrast testing

    • WCAG AA/AAA contrast checking
    • Color simulation for color blindness
  4. Screen Readers - Essential for real-world testing

    • NVDA (Windows, free)
    • JAWS (Windows, commercial)
    • VoiceOver (macOS, built-in)
  5. Manual Review - Irreplaceable

    • Content quality assessment
    • Logical structure verification
    • User experience testing
    • Context-specific evaluations

💡 Best Practice Workflow

  1. Automated Check (This Tool)

    • Run on all PDFs
    • Fix technical issues (tagging, metadata, language)
    • Get baseline accessibility score
  2. PDF-Specific Tools (Acrobat/PAC)

    • Detailed tag structure review
    • Form field validation
    • Reading order verification
  3. Color Contrast Tools

    • Check all text contrast ratios
    • Verify non-text contrast
    • Test in grayscale mode
  4. Screen Reader Testing

    • Navigate entire document
    • Test all interactive elements
    • Verify logical reading order
  5. Manual Review

    • Alt text quality assessment
    • Content clarity and meaning
    • Link descriptions
    • Form instructions

🎯 The Bottom Line

This tool checks approximately 20-25% of WCAG requirements - specifically the technical, structural aspects that can be programmatically determined.

The remaining 75-80% requires:

  • Human judgment (content quality, clarity, appropriateness)
  • Specialized testing (contrast, keyboard navigation, screen readers)
  • Context-specific evaluation (does this make sense for users?)

Use this tool as your first line of defense, but not your only line.

For true accessibility, combine automated checks with manual testing and real user feedback.