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.