Accessibility in Mobile Apps
Accessibility isn't a feature—it's a requirement. In India, 900+ million people have some disability. Accessible apps reach more users and often serve them better.
Color and Contrast
WCAG AA compliance: Text must have 4.5:1 contrast ratio against background. Headlines require 3:1. Use contrast checking tools in design tools.
Avoid color-only meaning: Don't indicate status with color alone ("red means error"). Use icons, text labels, and haptic feedback too.
Light and dark modes: Support both. Some users find dark mode readable; others find light mode clearer. Don't force either.
Touch Targets
Minimum size: 48x48 dp (density-independent pixels). Small buttons frustrate everyone and are unusable for those with motor disabilities.
Spacing: Leave gaps between touch targets to prevent accidental taps. 8dp minimum.
Feedback: Always provide visual + haptic feedback on tap. Users need confirmation that the app registered their input.
Screen Readers
TalkBack (Android) and VoiceOver (iOS) read app content aloud. To support them:
- Semantic markup: Use native components.
<Button>reads better than<View onTap={...}>. - Alt text: Every image needs a description. "Logo" is useless; "NexaEx Digital Services logo" is useful.
- Labels: Associate labels with inputs so screen readers announce what field is being filled.
- Heading hierarchy: Use proper heading levels. Screen reader users navigate via headings.
Motion and Animation
Respect motion preferences: iOS and Android both offer "Reduce Motion" setting. Check it and disable animations for those users.
Avoid vestibular triggers: Parallax scrolling, auto-playing videos, rapid flashing disorient users with vestibular disorders. Make these optional.
Text and Reading
- Font size: Minimum 16sp for body text. Support user font size scaling (if user sets 150%, your app scales).
- Line spacing: 1.5x line-height improves readability for dyslexic users.
- Simple language: Short sentences, common words. Jargon excludes users unfamiliar with the domain.
Implementation Checklist
Android: Use contentDescription for images, setContentViewAccessibilityDelegate for custom components, test with TalkBack.
iOS: Use accessibilityLabel, accessibilityHint, accessibilityTraits, test with VoiceOver.
Both: Run accessibility auditors (Accessibility Scanner on Android, Accessibility Inspector on iOS), test with real screen readers, not just automated tools.
Real Impact
A delivery app making buttons 48dp tall and adding clear icons reduced user errors by 20%. Accessible design benefits everyone—not just users with disabilities.
Frequently asked questions
What's the minimum touch target size?
48x48 dp (density-independent pixels). This applies to all interactive elements—buttons, links, checkboxes. Smaller targets frustrate users and are unusable with touch assistive tech.
Do I need to support screen readers?
Yes. Millions of users rely on screen readers like TalkBack and VoiceOver. Use semantic components, provide alt text for images, and test with actual screen readers.
Should I disable animations for accessibility?
Respect the user's motion preferences. If they enable 'Reduce Motion,' disable parallax, auto-play, and other motion. Motion sickness and vestibular disorders make animations problematic for some users.