Developing Accessible Mobile Applications with Cross-Platform Development Frameworks
Sergio Mascetti, Mattia Ducci, Niccolò Cantù, Paolo Pecis, Dragan Ahmetovic · 2021 · Proceedings of the 23rd International ACM SIGACCESS Conference on Computers and Accessibility (ASSETS) · doi:10.1145/3441852.3476469
Summary
This experience report from the EveryWare Lab at the University of Milan systematically analyzes how well cross-platform development frameworks (CPDFs) support screen reader accessibility APIs compared to native iOS and Android development. The team, which has been developing mobile assistive technologies since 2010, identified 25 distinct screen reader API functionalities across five categories: accessibility focus, text-to-announce, explicit text-to-speech (TTS), accessibility tree manipulation, and miscellaneous features. They compared native iOS (VoiceOver) and Android (TalkBack) APIs against two popular CPDFs — React Native and Xamarin — to determine which accessibility functionalities are directly available, available with limitations, or entirely missing. The researchers then implemented sample applications showcasing a subset of these APIs natively and in both CPDFs, deploying them on both platforms to document the practical challenges of accessing unavailable accessibility features through platform-specific code.
Key findings
The analysis revealed that iOS and Android share 14 functionally equivalent screen reader APIs out of 25 total, confirming that the two platforms offer broadly similar accessibility capabilities. However, React Native wraps only 8 and Xamarin only 5 of these 14 shared functionalities — meaning CPDFs expose roughly half or fewer of the common accessibility APIs. Even basic APIs (those highlighted in official accessibility documentation as essential) are not fully covered: React Native exposes 6 of 8 basic functionalities while Xamarin exposes only 5. When CPDF APIs are unavailable, developers must write platform-specific native code, which can be implemented through three approaches of increasing difficulty: direct API use, semi-direct API use (combining available APIs to approximate the missing functionality), and native API use (requiring full native code). In practical terms, direct API implementations took about one hour each, semi-direct implementations were similar, but native API implementations took dramatically longer — one Xamarin sample app requiring custom renderers took several weeks and ultimately needed help from a Microsoft developer to resolve. This effectively negates the write-once-run-everywhere advantage of CPDFs for accessible apps.
Relevance
This paper provides concrete, actionable evidence for a problem that accessibility practitioners and mobile developers encounter regularly: cross-platform frameworks make it harder to build accessible apps. The detailed API comparison table serves as a practical reference for developers choosing between native and cross-platform approaches, or deciding which CPDF better supports accessibility. The finding that even basic accessibility APIs are missing from popular CPDFs explains why many cross-platform apps have poor screen reader support — it is not just developer negligence but a framework-level gap. For organizations making technology decisions, this research argues that choosing a CPDF for cost savings may impose significant hidden costs in accessibility remediation. The work is limited to React Native and Xamarin (Flutter was excluded as it was less mature at the time), and the API landscape evolves as frameworks are updated.
Tags: mobile accessibility · cross-platform development · screen readers · React Native · Xamarin · accessibility API · mobile development · VoiceOver · TalkBack