Skip to content

Accessbility Updates - #3594

Merged
Ishavyas9 merged 3 commits into
LambdaTest:stagefrom
akshayverma28:cert-injection-docs
Sep 29, 2026
Merged

Ishavyas9 merged 3 commits into
LambdaTest:stagefrom
akshayverma28:cert-injection-docs

Conversation

@akshayverma28

Copy link
Copy Markdown
Contributor

No description provided.

Comment thread docs/accessibility-faq.md Outdated
## Can I exclude specific rules or rule categories from a scan?
Yes, on every surface, and the exclusion is applied **before** the scan runs, so an excluded rule never appears in the findings or the score.

- **Web automation (Selenium, Playwright, HyperExecute):** pass `accessibility.excludeRules` and `accessibility.excludeRuleCategories` as capabilities. See [Rule and Category Exclusion for Web Accessibility Automation](/support/docs/accessibility-web-automation-rule-exclusion/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Selenium, Playwright, HyperExecute) here i guess hyperExecute should not be there as selenium and pw are frameworks.

Comment thread docs/accessibility-mobile-autoscan.md Outdated

AutoScan runs an accessibility scan **automatically** after every Appium command that changes the screen, so an app flow is covered end to end without a `lambda-accessibility-scan` call at each step. You turn it on with a single capability, and <BrandName /> scans as your existing test drives the app.

Because a test usually taps several times on the same screen, AutoScan also ships with **intelligent scan**: before each scan the current screen is compared with the last one that was scanned, and a screen that has not visibly changed is skipped. Intelligent scan is **on by default**, so the common case is one scan per distinct screen rather than one scan per tap.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Compared with all the screens that have been scanned so far not just the last screen.


## What to expect in reports

AutoScan scans land in exactly the same place as hook-driven scans, in the Accessibility dashboard under the same build and test. There is no separate AutoScan report type to learn.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can mention here in the report there is a pill of autoscan, if the test was ran with autoscan config.

linearNavigation: true
linearNavigationTimeout: 300000
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We also need to include the linear timeout distribution. Otherwise, users may always ask why the scan was not fully completed.

The timeout should be distributed linearly based on the scroll view:

Timeout distribution = Total Timeout / (Scroll View × 2)


Auto Report is independent of the rule-based accessibility scan.

- Enabling `screenReader` alone does **not** run the App Accessibility rule scan. Call `lambda-accessibility-scan` at each screen you want rule-checked, as described in [Native App Automation](/support/docs/accessibility-native-app-automation-test/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here we will not support screen reader and app accessibility hook together. Only one thing will work.


- Enabling `screenReader` alone does **not** run the App Accessibility rule scan. Call `lambda-accessibility-scan` at each screen you want rule-checked, as described in [Native App Automation](/support/docs/accessibility-native-app-automation-test/).
- Calling `lambda-accessibility-scan` does **not** generate a Screen Reader Report. Set `autoReport: true` for that.
- Both can be enabled in the same session. You get a rule scan report and a Screen Reader Report for the same build.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong not supported

| Session fails with *"Screen Reader Automation is supported on Android and iOS real devices only."* | The capabilities requested an emulator or simulator. Set `isRealMobile: true` and choose a real device. |
| Session fails with *"Screen Reader Automation requires Android 11+ / iOS 15+."* | Pick a device on a supported OS version. The message names the OS and version that was selected. |
| Report is marked partial | A screen hit `linearNavigationTimeout`. Raise the timeout, up to 480000 ms, or split a very long screen across test steps. |
| Meaningful reading order shows *Not applicable* | Linear mode was enabled. Run the same test in Standard mode if you need that check. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This rule is not supported for now as its AI one.


## Product boundary

- **Not the live screen reader.** For hands-on TalkBack or VoiceOver sessions with a real handset on screen, use [Screen Reader (TalkBack) on Android](/support/docs/screen-reader-on-real-devices-app/) and [Screen Reader (VoiceOver) on iOS](/support/docs/screen-reader-voiceover-real-devices-app/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it necessary to mention it?

Comment thread static/docs/accessibility-faq.md Outdated
## Can I exclude specific rules or rule categories from a scan?
Yes, on every surface, and the exclusion is applied **before** the scan runs, so an excluded rule never appears in the findings or the score.

- **Web automation (Selenium, Playwright, HyperExecute):** pass `accessibility.excludeRules` and `accessibility.excludeRuleCategories` as capabilities. See [Rule and Category Exclusion for Web Accessibility Automation](/support/docs/accessibility-web-automation-rule-exclusion/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Selenium, Playwright, HyperExecute) Remove Hyper execute from here as its not a framework

@@ -0,0 +1,286 @@
---
id: accessibility-web-automation-rule-exclusion

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@akshayverma28 Please update the DevTools and Web Automation documentation to cover the following features:

  1. Screenshot functionality
  2. Passed test cases
  3. Scan On/Off toggle
  4. iFrame scanning

id: accessibility-web-automation-rule-exclusion
title: Rule and Category Exclusion for Web Accessibility Automation
sidebar_label: Rule & Category Exclusion (Automation)
description: "Exclude individual axe rules or whole rule categories from web accessibility automation scans on Selenium and Playwright sessions, on the cloud grid and on HyperExecute, with the accessibility.excludeRules and accessibility.excludeRuleCategories capabilities."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image Also include ai rule supoorted in scheduling and dev tools.

- `accessibility.aiEnabled` is the same AI toggle used elsewhere in accessibility; it is reused here.
- A backend capability `accessibility.needsReview` also exists but is not part of the standard automation scan config (defaults off).
- `accessibility.excludeRules` and `accessibility.excludeRuleCategories` are optional and mobile-only. Accepted values, precedence and error handling are described in [Rule and Category Exclusion for Mobile App Accessibility](/support/docs/accessibility-mobile-rule-exclusion/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this page specific to mobile? if not, it should not mention mobile-only

- **Scoped results.** Each scan reports violations only for the rules in the test's effective set. Rules outside the WCAG range or behind an off group toggle do not appear and do not affect the accessibility score for that scan.
- **Configuration recorded with the test.** The WCAG version and group toggles are stored alongside the scan, so the team can always see how a given result was produced.
- **Applied rules are visible in the report.** The report header shows the applied configuration as tags (for example, **WCAG 2.1 AA**, **Best Practices**, **Beta Rules**), and the **Applied Settings** panel lists every rule that was evaluated, grouped by category and searchable, so the exact selected rules can be confirmed for any scan.
- **Applied rules are visible in the report.** The report header shows the applied configuration as tags (for example, **WCAG 2.1 AA**, **Best Practices**, **Beta Rules**), and the **Applied Settings** panel lists every rule that was evaluated, grouped by category and searchable, so the exact selected rules can be confirmed for any scan. Rules removed by an exclusion are listed under **Excluded by category** and **Excluded by rule**.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not listed as "Excluded by category" or "Excluded by rule", both ways exclusion is shown as such in applied settings, either greyed out (category) or "off" (individual rules).

### 5. Exclude Rules

- **Purpose:** Skip specific accessibility rules that your team has reviewed and accepted, so they do not fail every build. Excluded rules are switched off before the scan runs and do not count towards the score.
- **Options:** An array of axe-core rule IDs, or a comma-separated string. Unknown IDs are logged and ignored; the session still runs.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can mention here, that said unknown ids are logged in the hook responses

What to expect:

- Saved selections persist in the browser and are also stored as your **last-used configuration** on the server, so they follow you across reinstalls.
- They apply to **full-page, multi-page, workflow and keyboard** scans run from the extension.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of keyboard, we can mention "assisted" tests

Comment thread docs/accessibility-devtools-settings.md Outdated

## Evaluation Rules

The **Evaluation Rules** panel in the **Scan Settings** tab lists every rule the scan will evaluate, grouped by category. Switch off individual rules with their On/Off toggle, or a whole category with the checkbox on its header, then click **Save**. A rule that is switched off never runs and does not count towards the score. Saved selections apply to full-page, multi-page, workflow and keyboard scans, and follow you across reinstalls as your last-used configuration.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same, assisted instead of keyboard here

Comment thread docs/accessibility-devtools-settings.md Outdated

The **Evaluation Rules** panel in the **Scan Settings** tab lists every rule the scan will evaluate, grouped by category. Switch off individual rules with their On/Off toggle, or a whole category with the checkbox on its header, then click **Save**. A rule that is switched off never runs and does not count towards the score. Saved selections apply to full-page, multi-page, workflow and keyboard scans, and follow you across reinstalls as your last-used configuration.

Rules outside the selected WCAG version, or Best Practice rules while Best Practices is off, are greyed out with a tooltip explaining why. A selection that leaves no rule to run cannot be saved.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rules outside the selected WCAG version are silently dropped, not shown in the report.

Comment thread docs/accessibility-mobile-autoscan.md Outdated

Intelligent scan is what keeps an interaction-heavy test from producing dozens of near-identical reports.

Before each triggered scan, <BrandName /> compares the current screen with the last screen that was scanned and produces a **visual similarity percentage**. If that percentage is at or above `accessibility.intelligentScanThreshold`, the screen is treated as unchanged and the scan is skipped.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not just last screen, all screens in session/test so far

Comment thread docs/accessibility-mobile-autoscan.md Outdated
| Lower, for example `50` | Aggressive. Only clearly different screens are scanned, which is useful on flows with a lot of animation or changing content. |
| `intelligentScan: false` | No comparison at all. Every triggering command produces a scan. Expect roughly twice the scans of a default AutoScan run on an interaction-heavy flow. |

Comparison is always against the **last screen that was actually scanned**, so a flow that moves A → A → B scans A once and B once.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here as well, not just last screen

No. Exclusion only removes rules. To run a narrower set, lower the WCAG target or switch off group toggles, then exclude what remains.

**What if I pass a web rule ID or category on a mobile session?**
It is logged and dropped as not applicable to the platform, and the session proceeds.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is logged as an unknown rule id

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Not applicable to the platform" is for mobile rules if it doesn't apply to Android/iOS

@harshitpal-lt harshitpal-lt left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See this incorrectly mentioned at many places, please check

## Step 2: Configure the Scan
- Enter the Scan Name for identification.
- Select the desired WCAG version for compliance.
- Optionally open **Evaluation Rules** beside the WCAG selector to switch off individual rules or whole categories for every run of this schedule. Rules outside the selected WCAG version are greyed out, and at least one rule must stay on. See [Rule and Category Exclusion in DevTools and Scheduled Scans](/support/docs/accessibility-devtools-rule-exclusion/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rules outside the wcag version are not included in the applied settings in the report or the rule selection panel.

akshayverma and others added 2 commits September 28, 2026 16:46
- FAQ: drop HyperExecute from the web framework list
- AutoScan: intelligent scan compares against every screen scanned so far; mention AutoScan pill in report
- Screen Reader Auto Report: add linear timeout distribution, remove unsupported reading order check (seven checks), screen reader and lambda-accessibility-scan are not supported together
- Mobile Applied Settings: excluded categories greyed out, excluded rules shown as Off
- Rules outside the WCAG version are not listed in the panel or report (DevTools, scheduling)
- DevTools: assisted scans instead of keyboard; add AI rules table
- Unknown rule IDs logged in hook responses; web rule ID on mobile logged as unknown
- Scan configurations: exclusion capabilities are not mobile-only

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Ishavyas9
Ishavyas9 merged commit 6a844ef into LambdaTest:stage Sep 29, 2026
1 check failed
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.

5 participants