Error Codes Wiki

Screen Reader Compatibility — Accessibility Errors and ARIA Implementation Issues

Warningweb development

Overview

Fix screen reader compatibility issues including missing ARIA labels, incorrect role assignments, and keyboard navigation failures in web applications.

Key Details

  • Screen readers (NVDA, JAWS, VoiceOver) rely on proper HTML semantics and ARIA attributes
  • First rule of ARIA: do not use ARIA if native HTML elements can provide the same semantics
  • Missing alt text on images, missing form labels, and incorrect heading hierarchy are common issues
  • Dynamic content updates must announce changes to screen readers using aria-live regions
  • Keyboard navigation must be logical and all interactive elements must be focusable

Common Causes

  • Using div and span for interactive elements instead of semantic HTML (button, a, input)
  • Missing aria-label or aria-labelledby on non-text interactive elements
  • Dynamic content changes not announced to screen readers
  • Focus management broken after page navigation or modal opening

Steps

  1. 1Use semantic HTML first: <button> not <div onclick>, <nav> not <div class='nav'>, <main> for main content
  2. 2Add alt text to all images: decorative images get alt='' (empty), informative images get descriptive alt text
  3. 3Label all form inputs: use <label for='input-id'> or aria-label for inputs without visible labels
  4. 4Manage focus: move focus to modals when they open, return focus to the trigger when they close
  5. 5Test with a screen reader: VoiceOver (Mac), NVDA (Windows, free), or Chrome's Accessibility DevTools

Tags

accessibilityscreen-readerariaa11ykeyboard-navigation

More in Web Development

Frequently Asked Questions

Mac: enable VoiceOver with Cmd+F5. Windows: download NVDA (free) from nvaccess.org. Chrome DevTools: Elements panel > Accessibility tab shows the accessibility tree. Lighthouse audits also catch common issues.