Skip to content

ComposeA11yScanner 3.0.0

Latest

Choose a tag to compare

@mohdaquib mohdaquib released this 17 Sep 04:01
· 2 commits to main since this release
3e2bdb3

ComposeA11yScanner 3.0.0

This major release adds runtime scanner controls, improves scan accuracy, and introduces public API changes for advanced integrations.

New features

  • Added ComposeA11yScanner.toggleScanner(enabled) to enable or disable the scanner at runtime.
  • Added explicit opt-in for trusted non-debuggable builds.
  • Added Interact with app and Resume issue inspection controls to switch between using the app and reviewing findings.

Fixes and improvements

  • Improved activity routing, lifecycle cleanup, and repeated installation handling.
  • Improved Compose host selection, scan stability, and stale-result invalidation.
  • Corrected duplicate-label detection and removed the redundant Sign In description in the fixed Login sample.
  • Restored detection of the Amount focus-order issue in the Form sample by preserving offscreen traversal context.
  • Improved rendered text-contrast analysis with hardware-compatible pixel capture.
  • Removed inspection controls immediately before rescanning to prevent capture interference.
  • Preserved semantics checks on Android API 24–25; rendered contrast analysis requires API 26+.
  • Added regression tests and updated documentation and the sample demo.

Breaking API changes

  • A11yScannerController.nodeProvider is now a suspending function executed on the main dispatcher.
  • A11yScannerController adds an optional ruleNodeOverridesProvider.
  • A11yScannerScaffold adds offset parameters before content; use named arguments and a trailing content lambda.
  • A11yScanEngine.scan() adds an optional ruleNodeOverrides argument.
  • A11yNode adds label, traversal, layout-bounds, and visibility metadata.
  • RenderedTextContrastAnalyzer.analyze(nodes) is deprecated in favor of analyze(nodes, bitmap).
    Rebuild all consuming modules and libraries when upgrading. Many Kotlin calls remain source-compatible through default arguments, but existing compiled consumers are not binary-compatible.
    See the migration guide.

Installation

debugImplementation("com.github.mohdaquib.ComposeA11yScanner:scanner-ui:3.0.0")

New Contributors

Full Changelog: 2.1.0...3.0.0