Files
Kordant/tasks/android-production/19-accessibility-audit.md
2026-05-26 16:06:34 -04:00

2.7 KiB

19. Accessibility Audit (TalkBack)

meta: id: android-production-19 feature: android-production priority: P2 depends_on: [] tags: [testing, accessibility, compliance]

objective:

  • Ensure the Android app is fully accessible with TalkBack and meets WCAG 2.1 AA mobile guidelines

deliverables:

  • TalkBack audit report
  • Accessibility labels on all elements
  • Dynamic Type support
  • Color contrast verification

steps:

  1. Audit all screens with TalkBack:
    • Enable TalkBack (Settings → Accessibility)
    • Navigate every screen using swipe gestures
    • Verify all interactive elements have labels
    • Verify logical reading order
    • Test with eyes closed
  2. Add missing accessibility labels:
    • Add contentDescription to all Image composables
    • Add semantics { contentDescription = "..." } to icons
    • Group related elements with mergeDescendants
    • Add state descriptions for toggles
  3. Test Dynamic Type:
    • Enable largest font size in Settings
    • Test all screens at largest text size
    • Verify no truncation or overlap
    • Use scrollable containers where needed
  4. Verify color contrast:
    • Test all text/background combinations
    • Ensure 4.5:1 ratio for normal text
    • Ensure 3:1 ratio for large text and UI components
    • Test in both light and dark themes
  5. Test Switch Access:
    • Enable Switch Access
    • Verify all actions reachable
    • Test focus traversal order
  6. Test keyboard navigation:
    • Navigate with Bluetooth keyboard
    • Verify Tab order logical
    • Verify Enter/Space activation
  7. Add automated tests:
    • Use AccessibilityScanner for quick checks
    • Add Compose semantics tests
    • Test with uiautomator

tests:

  • Manual: Full TalkBack navigation of all screens
  • Automated: AccessibilityScanner results
  • Visual: Color contrast verification

acceptance_criteria:

  • All interactive elements have content descriptions
  • TalkBack reads logical description for every element
  • Dynamic Type supported at all sizes
  • Color contrast ≥4.5:1 for all text
  • Switch Access navigable
  • Keyboard navigation works
  • No accessibility warnings in lint
  • Accessibility audit report completed
  • Screenshots at largest font size showing no issues
  • Compose semantics tests passing

validation:

  • Turn on TalkBack → navigate entire app without visual
  • Enable largest font size → all screens readable
  • Check contrast → all combinations pass
  • Run AccessibilityScanner → no suggestions
  • Lint check → no accessibility warnings

notes:

  • Compose has good accessibility by default but custom composables need attention
  • Use Modifier.semantics { } for custom accessibility
  • Test on physical device — emulator TalkBack is limited
  • Consider hiring accessibility consultant for thorough audit