Mobile applications
Understand how to create and test for accessible mobile applications.
Note: This is a stub article — it contains a small amount of useful guidance that we hope to expand later. If you would like to contribute to expanding this article, email web.standards@dia.govt.nz.
Mobile applications, or apps, are applications that can be used on mobile devices. There are 3 main types of mobile app:
- web apps are just websites or web pages that work in a web browser on a mobile device
- native apps are built for a specific operating system (e.g. iOS or Android) and developed using the programming language for that system (e.g. Swift for iOS and Kotlin for Android)
- hybrid apps are web apps or web content wrapped inside a native app container.
For an overview of these 3 approaches to mobile apps, see Native, Web or Hybrid App: Which One is Better? — IxDF.
Applying WCAG to mobile apps
The Web Content Accessibility Guidelines (WCAG) apply primarily to web pages, but most of WCAG applies also to mobile apps.
See the W3C document, Mobile Accessibility: How WCAG 2.0 and Other W3C/WAI Guidelines Apply to Mobile, which describes how WCAG “can be applied to mobile web content, mobile web apps, native apps, and hybrid apps using web components inside native apps”. While this guidance is from 2018 and doesn’t address later versions of WCAG or more recent mobile technologies, it remains a useful, high-level introduction to how the principles in WCAG translate to mobile apps.
WCAG for web apps
Web apps are just websites and can be assessed directly against WCAG.
EN 301 549 for native apps
Native apps are software. The W3C document, Guidance on Applying WCAG 2.0 to Non-Web Information and Communications Technologies (WCAG2ICT), describes how WCAG can be applied to non-web documents and software.
The European Standard, EN 301 549 Accessibility requirements for ICT products and services, is informed by the WCAG2ICT guidance and sets the applicable WCAG 2.1 Success Criteria as accessibility requirements for software. See Section 11 Software — EN 301 549 v3.2.1 — ETSI (PDF 2.2MB).
Which WCAG 2 Success Criteria apply to native apps?
In EN 301 549 Section 11, all but 6 WCAG 2.1 Success Criteria (SC) at Level A and AA apply to software, which includes native apps. The 6 SC that do not apply to software in EN 301 549 are:
- 2.4.1 Bypass Blocks
- 2.4.2 Page Titled
- 2.4.5 Multiple Ways
- 3.1.2 Language of Parts
- 3.2.3 Consistent Navigation
- 3.2.4 Consistent Identification.
Note: Even though these 6 WCAG SC are excluded from the software requirements in EN 301 549, each of them can still inform the design of accessible native apps.
For an indication of how, see the entry for each SC in Appt’s guide for applying WCAG to native apps.
WCAG and EN 301 549 for hybrid apps
Hybrid apps are a mixture of native app and web app, or software and web page. As such, the web-based parts of the hybrid app should be assessed against WCAG directly, while the native parts of the app should be assessed against EN 301 549 Section 11 Software.
Creating and testing accessible mobile apps
All mobile apps
For accessibility guidance covering all 3 types of mobile app (i.e. web, native, and hybrid), see:
- Mobile Accessibility Guidelines — BBC
- Mobile Accessibility: How WCAG 2.0 and Other W3C/WAI Guidelines Apply to Mobile — W3C.
Web apps
For guidance on mobile web apps, see:
- Mobile accessibility — MDN Web Docs
- Mobile Site Testing Methodology — ICT Accessibility Testing Symposium — AccessibilityOz
- The va11ydette.
Native apps
For native app accessibility guidance, see the following resources:
- The Ultimate Mobile Accessibility Resource Guide — DEV Community
- A guide for making apps accessible — Appt
- Orange digital accessibility guidelines
- MagentaA11y
- Native App Testing Methodology — ICT Accessibility Testing Symposium — AccessibilityOz
- Automated Mobile Accessibility Testing Tools For IOS and Android — DigitalA11Y.
iOS
- Accessibility — Human Interface Guidelines — Apple Developer Documentation
- Accessibility — Technologies — Apple Developer Documentation
- Components — Apple Developer Documentation
- SwiftUI Accessibility — Rob Whitaker
- Get started with accessibility features on iPhone — Apple Support
Android
- Accessibility — Material Design 3
- Build accessible apps — Android Developers
- Accessibility in Jetpack Compose — Android Developers
- Material Design 2
- Android accessibility overview — Android Accessibility Help
Frameworks
Cross-platform mobile app development frameworks make it quicker and easier to create native apps that work on both iOS and Android.
When selecting a framework to use, be sure to understand how well it supports the creation of accessible apps and any limitations.
React Native and Flutter are 2 of the most commonly used frameworks. See their documentation on accessibility:
Note: The latest frameworks are often still catching up with the accessibility support of their predecessors. Examples of good accessibility in existing native iOS or Android apps cannot always be reproduced using the new frameworks.