Repository navigation
fix(accessibility): land #541 and #553 on main - #566
Merged
Merged
Conversation
* fix(accessibility): hand back scans that outlast the wait, scan through the user's own Local tunnel, rename on a taken name, say why plan rules are off
- startAccessibilityScan returns a scan that outlasts the 5-minute wait as still running,
with its scan id, run id and dashboard link, instead of "Failed to start accessibility
scan" with no ids. A cancelled run ends the wait, and the wait's timer is cleared.
- startAccessibilityScan takes an optional localIdentifier: the scan goes through a
BrowserStack Local tunnel the user started, and no tunnel is started or killed. The
hosted refusal of local URLs says how to start one.
- A scan name already in use is retried once with a UTC timestamp appended, and the
result opens with the name used.
- When advanced or experimental rules were not asked off but the run reports them off,
the settings line says the plan most likely doesn't include them.
- apiClient gives each of a host's addresses 2 s to connect instead of Node's 250 ms, and
tries a request once more when its connection never opened.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(accessibility): clean scan names the API would refuse, and say why a scan failed
- startAccessibilityScan replaces characters central-scanner refuses in a scan name ("/",
"|", "&", ",", ")" and more, and "--") instead of failing the scan. Accents are dropped,
parentheses become square brackets, and a name with nothing usable left falls back to
the page's host. The result says the name was changed and what it was started as.
- A failed scan now says why: the run's own reason from the scans list, and each page that
did not scan with its reason from the run's scan logs, up to 10 pages. Without either, it
still points to the dashboard.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(api-client): retry a connect failure only when it failed fast
A failure after every address has timed out means the host is down. Retrying
it doubled the wait, which loops over many calls (scan-list walks, polling)
would pay on every call. Only a failure within 5 s is tried again now.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit cb12556)
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
… to BrowserStack AI - fetchAccessibilityIssues (first page) and startAccessibilityScan now give the report's accessibility score as the dashboard shows it: the share of points each severity lost, the passed/failed checks per severity, and how the score is worked out (a check is one rule on one page; critical 10, serious 7, moderate 3, minor 1; a failed check counts double). - Read from the report's own summary for Website Scanner runs, Automated Tests builds and Workflow Analyzer reports. A scanner run read by its build id is found in the scan list first. App builds and reports have no score here. - The same results tell the agent to call askBrowserStackAI (product a11y) for anything about the report beyond listing its issues, such as a plan or what to fix first, instead of working out a plan itself. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The connect retry sent the same body again. A file upload's form-data is a stream that the first try reads even when the connection never opens, so the retry sent what was left of it and then waited for the rest. The uploads set no timeout, so they hung instead of failing. A stream body is now never retried: the connect failure is reported straight away, as before the retry was added. Other requests keep the retry. Affects every tool that uploads through apiClient: the App Live and App Automate app uploads and the Test Management file upload. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…es only For a Website Scanner link, the score finds the scan's ids by walking the scan list, up to 25 pages at ~1.2 s a page. The list has only each scan's latest run, so a link to an earlier run is never found: the walk ran in full on every first page, after the export's wait of up to 45 s, and could push the issue list past the client's 60 s timeout. The score now searches the newest 2 pages, which still find a scan that was just run. Reading issues and comparing runs keep the full 25-page walk. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SavioBS629
previously approved these changes
Nov 11, 2026
gaurav-singh-9227
approved these changes
Nov 11, 2026
gaurav-singh-9227
approved these changes
Nov 11, 2026
Aaryan430
added a commit
that referenced
this pull request
Nov 11, 2026
Resolves the conflicts with #566 and #568: - accessibilityExpert answers start with the deprecation note, then main's "question was shortened" note when the question was cut, then the answer. - docs/TOOLS.md keeps main's re-run wording for startAccessibilityScan and marks accessibilityExpert deprecated. - accessibilityExpertQuery tests now expect the deprecation note first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
#541 and #553 were approved and merged, but neither reached
main.They were merged as a stack: #553 into #541's branch, #541 into #527's branch (
fix/a11y-report-links), and #527 intomain. On 6 Nov, #527 was squash-merged intomainat 13:48:37 UTC, and #541 was merged into #527's branch 13 seconds later, at 13:48:50. Somainhas #527 only, and the #541 and #553 changes sit onfix/a11y-report-links.On
maintoday, for example:startAccessibilityScanhas noscanIdre-run and nolocalIdentifier;fetchAccessibilityIssuescan't compare scan runs (compareWithworks for app builds only);What changed
One
git cherry-pick -xof cb12556 ontomain. cb12556 is #541's squash commit onfix/a11y-report-links, and it already contains #553. Nothing else is changed.Every accessibility source and test file,
src/lib/apiClient.tsand its test are byte-identical tofix/a11y-report-links. For what each change does and how it was tested, see #541 and #553.Testing
🤖 Generated with Claude Code