83 lines
2.7 KiB
Markdown
83 lines
2.7 KiB
Markdown
# 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
|