Skip to content

feat(ask-ai): offer a11y as a product again - #492

Merged
gaurav-singh-9227 merged 1 commit into
mainfrom
askai-a11y
Oct 23, 2026
Merged

gaurav-singh-9227 merged 1 commit into
mainfrom
askai-a11y

Conversation

@sarve-shreyas

Copy link
Copy Markdown
Collaborator

What

askBrowserStackAI accepts a11y (Accessibility) as a product again, alongside tm and tra.

This reverses abfddf6, which dropped a11y from the tool while Ask AI was in limited alpha. Atlas has served a11y the whole time; only the tool stopped offering it.

Changes

  • src/tools/ask-browserstack/types.ts: PRODUCTS is ["tm", "a11y", "tra"]. The "deliberately ABSENT" comment is replaced with one listing what has to move together if a product is ever dropped.
  • src/tools/ask-browserstack/register.ts: the product describe text names a11y (Accessibility).
  • src/tools/tool-handoff.ts: NEEDS_A11Y_SCAN_ID and NEEDS_A11Y_CONFIG_ID point at askBrowserStackAI with product "a11y" again. They keep "start a new scan" / "create one" as a fallback, because Ask AI is still entitled per account and the agent route can be refused.
  • tests/tools/askBrowserstackE2E.test.ts: the test that pinned the two-product enum now checks:
    • the enum is exactly tm, a11y, tra;
    • the product describe text names every product;
    • any product a handoff names is one the schema accepts. Dropping a product without moving its handoffs now fails a test.

PRODUCT_LABELS in relay.ts already had a11y: "Accessibility" and is unchanged.

Testing

  • npm run build, tsc --noEmit and eslint are clean.
  • vitest run: 84 files, 1299 tests passed.

A version bump to 2.2.4 is stacked on this PR in a separate PR.

🤖 Generated with Claude Code

Reverses abfddf6, which dropped a11y from askBrowserStackAI while Ask AI was in limited
alpha. Atlas has served a11y throughout; only the tool stopped offering it.

The same four places move back together:

  * `PRODUCTS` in types.ts is `["tm", "a11y", "tra"]`.
  * the `product` describe text in register.ts names a11y (Accessibility).
  * `NEEDS_A11Y_SCAN_ID` and `NEEDS_A11Y_CONFIG_ID` in tool-handoff.ts point at
    askBrowserStackAI with product "a11y" again, keeping "start a new scan" / "create one"
    as the fallback, since Ask AI is still entitled per account and the agent route can be
    refused.

The test that pinned the two-product enum now pins the three-product one, checks the
describe text names every product, and checks that any product a handoff names is one the
schema accepts, so dropping a product without moving its handoffs fails a test instead of
shipping an instruction to make a rejected call.

npm run build, tsc --noEmit and eslint are clean; 84 files / 1299 tests pass.

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

coderabbitai Bot commented Oct 19, 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
  • Configuration used: Central YAML (base), Organization UI (inherited), Workspace UI (inherited)
  • Review profile: ASSERTIVE
  • Plan: Enterprise
  • Run ID: 916656f2-da9a-4738-a614-f55a1e669202

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.

@Aaryan430

Copy link
Copy Markdown
Collaborator

This has been merged into #502 (898f31e), which now ships it to main together with #509, #510 and #513.

One change in the merge: the longer handoff text here would have taken fetchAccessibilityIssues past the 200-character description budget on main. So the handoffs keep main's short form with this PR's pointer: Ids: startAccessibilityScan, a link, or askBrowserStackAI with product "a11y". This PR's test, which checks that both handoffs name "a11y", passes there.

@gaurav-singh-9227
gaurav-singh-9227 merged commit 898f31e into main Oct 23, 2026
5 checks passed
Aaryan430 added a commit that referenced this pull request Oct 23, 2026
Brings in #502 (Automate links, share links, large exports, one-page view,
scan-run comparison, #510's device note, #513's scan settings, #492's Ask AI
pointer). Conflicts resolved by keeping both sides:
- fetchAccessibilityIssues resolves the source first, then compareWith goes to
  the scan-run comparison for a scan and to the app-build comparison for an
  app build; pageUrl and exportTaskId pass through for web reports, and the
  next-page hint keeps the pageUrl with the exact remaining count.
- Report links: a share link is unwrapped first, then app and manual-report
  links, then Automate links.
- The CSV parser pages through the shared pageOf/sortBySeverity; its local
  copy is dropped.
- The run-started message carries both the device note and the accessibility
  guidance.
- The ids handoff keeps main's Ask AI pointer within the 200-character budget;
  the app lists' searchCapability pointer moves to the buildId and appReportId
  argument descriptions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

3 participants