Skip to main content

mesmer beta sidecar

BETA SOFTWARE

The Mesmer Sidecar is still in early beta.

That means you might run into some issues: your app not installing right, or being incompatible with the test harness.

If that happens, we'd love to hear about it: if you don't mind, please email us at sidecar@mesmerhq.com

The Mesmer Sidecar is a tool to locally test an Android app for accessibility violations.

On a device either running in an emulator, or connected to your machine over ADB, you can use the Mesmer CLI to deploy the Sidecar, attach it to an app you're developing, and generate a report on that app's accessibility.

For more information about how the Sidecar works, see the Sidecar Guide

mesmer beta sidecar quick-crawl#

A Quick Crawl will audit every activity in your app. To start one, run mesmer beta sidecar quick-crawl:

# Build your APK with the debuggable flag$ ./your-build-process.sh --output $target_apk --debuggable$ file $target_apkpath/to/your/app.apk: Java archive data (JAR)

# Connect a test device$ adb devicesList of devices attachedR58M340LSLB device
# Run the audit# (if the target app is already installed, pass '--force' to reinstall)$ mesmer beta sidecar quick-crawl \  --output report.html \  $your_apk

─── Preflight checks ✓  Targeting app: 'com.app.mesmer' ✓  Discovered test device ✓  Connected to test device     Serial  R58M340LSLB     Model  SM-G975U ✓  Checked installed packages; no conflicts found ✓  Forwarding tcp:42423 to device
─── Build Sidecar ✓  Built Sidecar binary ✓  Signed output APKs
─── Deploy to Device ✓  Installed target app 'com.app.mesmer' ✓  Installed Sidecar ✓  Sidecar is online
─── Quick Crawl ✓  Checked 'com.app.mesmer.views.a11y.GroupedImagesActivity' in 0.88s ✓  Checked 'com.app.mesmer.views.a11y.Rule141Activity' in 0.72s ✓  Checked 'com.app.mesmer.views.a11y.G91RuleActivity' in 0.68s ✓  Checked 'com.app.mesmer.views.a11y.F15RuleActivity' in 0.75s ✓  Skipped 'com.app.mesmer.views.a11y.RulesActivity'    This activity could not be launched.    Usually, this means that this Activity needs parameters to launch.    The Activity may also contain errors that prevent it from starting.    (target app crashed while launching activity)
 ✓  Checked 'com.app.mesmer.views.a11y.A11YRulesActivity' in 1.05s ✓  Checked 'com.app.mesmer.views.create_profile.SignInActivity' in 0.70s
[ a few dozen lines omitted for brevity ]

 ✓  Audit complete ✓  Wrote report to 'report.html'
─── Summary    Checked 74 screens, skipped 7    Completed audit in 101.62s    Each screen checked took: min 0.65s, max 5.91s, mean 0.80s

mesmer beta sidecar start#

To iteratively audit the current, visible screen of your app, run mesmer beta sidecar start:

# Build your APK with the debuggable flag$ ./your-build-process.sh --output $target_apk --debuggable$ file $target_apkpath/to/your/app.apk: Java archive data (JAR)

# Connect a test device$ adb devicesList of devices attachedR58M340LSLB device
# Run the audit# (if the target app is already installed, pass '--force' to reinstall)$ mesmer beta sidecar start \  --output current-screen.html \  $your_apk
─── Preflight checks ✓  Targeting app: 'com.app.mesmer' ✓  Discovered test device ✓  Connected to test device     Serial  R58M340LSLB     Model  SM-G975U ✓  Checked installed packages; no conflicts found ✓  Forwarding tcp:42423 to device
─── Build Sidecar ✓  Built Sidecar binary ✓  Signed output APKs
─── Deploy to Device ✓  Installed target app 'com.app.mesmer' ✓  Installed Sidecar ✓  Started instrumented app ✓  Sidecar is online
─── Auditing for WCAG 2.0 conformance...
[ ...continually audits here, until ctrl-C ]

This will repeatedly audit the current screen of the app, writing results to current-screen.html. You can open the file in a web browser, and refresh it to see the new results. You can see changes on screen in about a second or so.