Skip to content

A11Y-13878: Scan Chrome on Android and Safari on iPhone for accessibility (v8) - #312

Draft
palspal-bstack wants to merge 2 commits into
v8from
A11Y-13878-wdio-mobile-web-a11y-v8
Draft

palspal-bstack wants to merge 2 commits into
v8from
A11Y-13878-wdio-mobile-web-a11y-v8

Conversation

@palspal-bstack

@palspal-bstack palspal-bstack commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

What is this about?

v8 port of #311. Runs accessibility scans in-page on mobile browsers: Chrome on Android, and Safari on iPhone (iPad excluded). Today the service turns accessibility off for any session with a deviceName.

  • Build start: reads isMobileScanningEnabledForGroup, isIosSafariScanningEnabledForGroup and scannerProcessingTimeout into env in the launcher, so workers inherit them. iOS is on unless the backend sends false (prod doesn't send the iOS flag yet).
  • validateCapsWithA11y: allows Chrome on Android, and Safari on iPhone, when the group has mobile scanning. Works out the platform from the device name when session caps report the Appium host OS.
  • Scan, results, results-summary and save scripts get is_mobile_session and thTestRunUuid on mobile, in both the classic and CLI flows. A rejected mobile save is logged as an error.
  • Sets the async script timeout on mobile sessions to the backend's scannerProcessingTimeout (30s when it isn't sent, as in the Node SDK). Appium XCUITest starts iOS sessions with a ~0 ms timeout, so every scan timed out before this.

Same behaviour as #311, adapted to v8's direct executeAsync calls (v8 has no executeAccessibilityScript).

Tested on prod with WDIO 8.46.0 and a packed build of this branch (8.54.0):

Style Device Issues Save Session Report
Selenium Galaxy S24 / Android 14, Chrome 63 saved; asset capture completed 3944e086 report
Appium Galaxy S24 / Android 14, Chrome 63 saved 0b90f32e report
Selenium iPhone 17 / iOS 26, Safari 81 saved 8c32cf10 report
Appium iPhone 17 / iOS 26, Safari 81 saved 3add7f1d report

Issue counts match the WDIO 9 runs on #311.

Related Jira task/s

Release (mandatory for every PR — required for the ready-for-review label)

Version bump: (required — tick exactly one)

  • minor (backwards-compatible feature)
  • patch (bug fix or other small change)

Release notes type: (optional)

  • New Feature
  • Bug Fix
  • Other Improvement

Release notes (customer-facing): (optional but encouraged)

  • Accessibility Automation now scans Chrome on Android and Safari on iPhone sessions.

Release notes (internal): (required — engineer-facing; what actually changed / why)

  • v8 port of A11Y-13878: Scan Chrome on Android and Safari on iPhone for accessibility #311: in-page mobile web accessibility scans for Chrome on Android and Safari on iPhone (iPad excluded), gated on the group's build-start flags; iOS is on unless the backend sends isIosSafariScanningEnabledForGroup: false.
  • Mobile scan, results and save scripts receive is_mobile_session and thTestRunUuid in the classic and CLI flows.
  • Mobile sessions get the backend's scannerProcessingTimeout as their async script timeout, to work around Appium XCUITest's ~0 ms default on iOS.

Checklist

  • Ready to review
  • Has it been tested locally?

PR Validations

Run Tests: Comment RUN_TESTS to trigger sanity tests.

🤖 Generated with Claude Code

Port of the v9 mobile web accessibility change. validateCapsWithA11y
accepts Chrome on Android and Safari on iPhone when the group is
entitled (iOS on unless the backend opts the group out), the scan,
results, summary and save scripts get the mobile session args in both
the classic and CLI flows, and mobile sessions get a script timeout
from the backend's scannerProcessingTimeout (30s default) so async
scans don't hit XCUITest's ~0 ms default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Central YAML (base), Organization UI (inherited), Workspace UI (inherited); Enforced overrides: Organization
  • Review profile: ASSERTIVE
  • Plan: Enterprise
  • Run ID: eff1073f-fcf0-41d4-bcc9-06c9c8d391ae

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant