After going through tools available for accessibility analysis on Windows in chapter 2 let's take a look at the mobile side.
Chapters in this series:
In regards to mobile development it's preferred when the app is run on a physical device rather than using an emulator or simulator when it comes to accessibility. Some tools work better when used with real devices and also the accessibility properties can be sometimes evaluated differently. So if we want to focus on accessibility, we highly suggest using physical devices both for analysis and manual testing.
Android Accessibility Scanner
Google's official tool for identifying accessibility issues in Android applications is available as a stand-alone app from Google Play Store. Unlike desktop-focused tools, this scanner is designed specifically for mobile interaction patterns and touch-based interfaces.
The scanner evaluates applications against multiple criteria essential for mobile accessibility:
- Content labels for screen reader compatibility
- Touch target sizes meeting Android's 48dp minimum requirement
- Clickable item identification for proper interaction handling
- Text and image contrast ratios for visual accessibility
Once we download the app we can enable it in Settings → Accessibility → Accessibility Scanner.
This setting displays a floating scanner button which we can use to run tests on our running application.
The Android Accessibility Scanner categorizes issues by impact and provides specific guidance for resolution. It can help with identifying these common issues:
- Unlabeled graphical elements that need SemanticProperties.Description
- Small touch targets requiring minimum size adjustments
- Missing content descriptions for decorative versus informational images
- Poor color contrast in custom themes or brand colors
Accessibility Scanner contains two testing modes
- Snapshot Mode captures and analyzes a single screen state, perfect for evaluating specific UI configurations or after completing particular user act.
- Recording Mode analyzes entire user workflows as we navigate through our app, providing comprehensive coverage of multi-screen interactions and dynamic content changes.
The result displays directly on the phone. If we take a close look at the list of suggestions we can see that Android's Accesibility Scanner identified different issues to what saw in Windows' Accessibility Insights. Most of the issues identified on Android are related to text scaling. The platform enables dynamic font size that can be set on system level. As the tool goes through the structure of the page and individual parts it marks the elements that have fixed dimensions but contain a scalable text.
This can cause an issue when user sets a larger system font scaling. As mentioned before in chapter 1, solving this issue can also benefit us with app localization as the texts can have different lengths in different languages.
The tool also reiterated the missing description for individual items in the collection of recipes.
iOS Accessibility Inspector
This tool comes bundled with Xcode and provides a comprehensive testing environment for iOS accessibility. Three core inspection modes are available to analyze our apps.
- In Target Selection Mode we can select a control by directly clicking into a running application. If the app is running on a device, we can select this tool and then click on the device's screen to select an element.
- When using Automated Navigation, the Inspector can simulate VoiceOver behavior, automatically moving through accessibility elements while reading descriptions aloud. This gives us a controlled way to experience our application from a screen reader user's perspective. We will take a closer look at VoiceOver and its usage in one of the next chapters.
- Manual Element Navigation provides us with precise control over accessibility focus, see into complex UI hierarchies and test custom navigation, this is the mode to try out.
Whichever inspection mode we end up choosing - we can observe the structure of the application or a part of it while running on a real device. Using Accessibility Inspector is particularly useful for verifying that MAUI's semantic properties translate correctly to iOS accessibility APIs. It enables hover-and-click inspection of individual elements, displaying accessibility information including labels, values, traits, and hints.
Advanced Features for MAUI Development
As we mentioned before - MAUI uses native controls on each platform. However, this also means that the controls used in multi-platform development using XAML get translated into one or multiple native controls with values of individual attributes being mapped to their native counterparts.
In this process some of the mappings can seem unintuitive or can break in certain cases. This is why it's very useful, that we have these tools available and can see what happens on the native side of the app.
There are multiple analysis and testing capabilities available in Accessibility Inspector as well:
- Actions Testing enables us to execute all accessibility actions supported by an element. This is crucial for verifying that custom MAUI controls properly expose their functionality to assistive technologies.
- Hierarchy Analysis shows the complete accessibility tree structure, helping us to better understand how MAUI's cross-platform abstractions map to iOS-specific accessibility concepts.
- Simulation Controls enable testing with various accessibility settings active, including reduced motion, increased contrast, and different text sizes.
Running an Audit
As with the other tools - we can run an automated audit on a page. It gives us a list of issues found with descriptions, screenshots, and suggestions for fixing them. We can also display the whole app's screenshot with highlight of the area that is in the reported issue.
In audit for the Recipe List page, we find some familiar issues but also some new reports compared to the Windows and Android analysis. Contrast issues are reported in more places and text sizing issues are also identified in more instances.
Analysis tools wrap up
We can see that we have various tools for analyzing our apps available on all the different platforms that MAUI supports. The tool of choice depends on the type of issue that we need to deal with.
When we want a quick rundown of which elements are lacking a semantic description for screen readers it's easy to use one of the tools available on Windows.
If we need to dive deeper into which elements have scaling issues or could be perceived as too small as tap targets, we can try to run the page through Android's Accessibility Scanner.
And in case where something doesn't seem to work with VoiceOver on iOS or TalkBack on Android, we can use the tools that enable us to better understand how MAUI behaves in mapping individual attributes' values to native controls.
In the next chapters we will look at individual issues that were identified by the analysis tools and how they can be solved. We will also look at manual testing, using TalkBack, VoiceOver and identifying other cases that the automatic analysis doesn't recognize.