Dev Diary: Why We Chose React Native: Accessibility Over Everything

A behind-the-scenes look at how we build 3mpwrApp. — When we started 3mpwrApp, we had a hard constraint: the framework had to support real, deep accessibility - VoiceOver, TalkBack, Switch Access, and the full spectrum of assistive technology - from day one, not as an afterthought. React Native was the answer because it exposes the native accessibility APIs of both iOS and Android directly. A web-based hybrid approach would have meant fighting the underlying layer. React Native meant working with it. The Expo ecosystem accelerated this enormously. Expo Router’s file-based navigation is inherently screen-reader-transparent. The community has deep accessibility expertise. We didn’t have to build the foundations - we stood on good ones. —

Technical Details

  • React Native exposes native VoiceOver, TalkBack, and Switch Access APIs directly
  • One codebase for iOS, Android, and web prevents accessibility quality divergence
  • Expo Router’s file-based navigation is transparent to screen readers by design
  • React Native’s animation system supports reduced motion preferences natively
  • Expo’s a11y linting caught issues before any human tester saw them

    In Practice

  • VoiceOver and TalkBack integration required native API access that web-only frameworks couldn’t provide
  • Switch Access compatibility was built in from day one using React Native’s focus management APIs
  • Accessibility scanning in CI caught regressions before they reached beta testers

    What We Learned

  • Framework choice is an accessibility decision, not just a technical preference
  • Building cross-platform from the start prevents future divergence in accessibility quality
  • The open-source React Native community’s accessibility depth accelerated our work enormously

    Follow Our Development

    We believe in building in public - the community we serve has been failed by opaque institutions too many times.

  • a GitHub
  • Ya Join Beta Testing
  • Y Community Discussion