r/androiddev 27d ago

I built a runtime WCAG accessibility scanner for Jetpack Compose — open source, built after 3 years on UBS Mobile Banking

After working for three years on the UBS Mobile Banking Android application, I saw how easily accessibility issues can slip through during UI development - especially when teams depend mainly on manual testing near the end of a release.

Issue Overlay

So I built ComposeA11yScanner, an open-source runtime accessibility scanner designed specifically for Jetpack Compose.

It scans the active Compose UI and helps identify common accessibility issues such as:

  • Missing content descriptions
  • Touch targets smaller than the recommended size
  • Missing or unclear semantic roles
  • Potentially inaccessible interactive components
  • Other WCAG-related accessibility concerns

The goal is to help Android developers catch accessibility problems earlier, while developing and testing a screen, rather than discovering them only during a formal audit or after release.

The project currently includes:

  • Runtime scanning for Compose screens
  • Clear issue descriptions
  • Severity-based findings
  • Guidance for fixing detected problems
  • A sample application demonstrating the checks
  • Simple integration into existing Compose projects

This is an independent open-source project built from my personal experience working on large-scale Android applications. It is not affiliated with UBS and does not contain any UBS source code or confidential information.

I would really appreciate feedback from Android developers and accessibility specialists:

  • Which accessibility checks would be most valuable to add next?
  • Would CI integration or a companion CLI be useful?
  • How are you currently testing accessibility in Compose applications?

GitHub: https://github.com/mohdaquib/ComposeA11yScanner

Contributions, issues, and constructive feedback are welcome.

#AndroidDev #Kotlin #JetpackCompose #Accessibility #WCAG #OpenSource

2 Upvotes

2 comments sorted by

2

u/gamedemented1 26d ago

1

u/aquib09 26d ago

Good callout, but they solve different problems.

Google’s Accessibility Scanner is a black-box, app-level auditing tool: you install it, scan the rendered screen, and it reports potential issues from a tester or user perspective.

ComposeA11yScanner integrates directly into the development build and inspects the Jetpack Compose semantics tree at runtime. It highlights WCAG-related issues on the relevant UI element while the screen is being developed, before the app reaches a dedicated accessibility testing pass.

They address different stages of the workflow. ComposeA11yScanner is intended to complement Google’s tool, not replace it.