Swipewalk

A free accessibility scanner for any running Android or iOS app, with extra help for .NET MAUI.

Swipewalk reads a running app through the platform's accessibility layer, the same layer screen readers use. It checks what users actually get: rendered text contrast, touch target sizes, missing or misleading names, and text that breaks at large text sizes. Each finding is mapped to WCAG 2.2 success criteria, and the report shows the order and wording a screen reader would likely announce (predicted, not recorded).

Because it reads the operating system's layer rather than your source code, it can scan an app whatever it was built with, although what it can see differs between frameworks (see how it was tested). It has been tried on native Android (Views and Jetpack Compose) and native iOS (UIKit and SwiftUI) sample apps and on .NET MAUI apps; an app built with another framework should scan too if it exposes its screens to the accessibility layer, but that hasn't been tried. For .NET MAUI there is extra help: on the iOS Simulator a finding can name the app's MAUI version and the MAUI release that fixes a known framework issue, the known MAUI quirks are listed in the limitations, and source-line pointing reads XAML, code-behind and .resx resources. Fix examples also exist for native Android and iOS, React Native, Flutter and hybrid web; they are written from each framework's documentation and have not yet been applied in a real app of that framework. Source-line pointing also exists for native Android and iOS, React Native and Flutter; for native Android and iOS it was measured on seven real apps with published source, and for React Native and Flutter only on made-up projects.

Not a compliance verdict. Automated checks find only some accessibility issues. A report with no findings doesn't show that an app meets WCAG or any law; manual testing with assistive technology is still required.
Use a test device. On a physical phone, several checks temporarily change device settings and restore them afterwards: the large-text check changes the text size; the dark/light and orientation rescans switch the device's appearance or rotate it; and on Android, --screen-reader (TalkBack capture; opt-in on the command line, on by default in the Mac app) turns TalkBack on and installs a small helper app so it can read back exactly what TalkBack says, leaving TalkBack silent for the length of the capture and removing the app again once the settings are back. If a run is interrupted, the next run or swipewalk doctor restores what it can -- including TalkBack's settings, whether or not that run itself asks for --screen-reader -- and says how to change anything back by hand if it can't. Avoid running these checks on a phone someone relies on every day.

Install

Needs the .NET 10 SDK to install it (on a Mac the command-line tool then runs as a native program that needs no .NET to run), plus Android platform-tools (for Android) or Xcode (for iOS). So far Swipewalk has been run only on Macs; on Windows and Linux the same command installs the regular .NET version, which needs the .NET 10 runtime and has not been tried there.

dotnet tool install -g Swipewalk
swipewalk doctor --platform android
swipewalk scan --platform android --large-text --out report

If the install fails because your NuGet settings list a feed it can't reach, add --ignore-failed-sources. If the terminal then can't find swipewalk, add $HOME/.dotnet/tools to your PATH (the README has the exact line).

Or download the Mac app (signed and notarized; built for macOS 12 or later on Apple silicon and Intel, tested on macOS 27 on one Apple-silicon Mac) from the releases page: it runs the same scans in a window, with a device list, live progress, the report and a comparison with earlier runs.

To see a scan before trying your own app, download the made-up sample app (an Android .apk and an iOS Simulator .zip) from the same releases page and scan it on an emulator or Simulator; the user guide has the steps.

What a report looks like

A Swipewalk report for a sample app on the iPhone Simulator at normal text size: 6 WCAG issues, 4 items needing review and 2 platform advisories, plus a summary of WCAG 2.2 A/AA coverage. The app screenshot is marked with numbered boxes, and each finding lists its WCAG criterion, such as 1.1.1 Non-text Content, and the laws and standards it is relevant to.

What it does

What it doesn't do

Learn more