Skip to content

test(studio): axe scans on every screen - #758

Merged
LinuxDevil merged 3 commits into
mainfrom
revamp/f29-axe
Oct 28, 2026
Merged

LinuxDevil merged 3 commits into
mainfrom
revamp/f29-axe

Conversation

@LinuxDevil

Copy link
Copy Markdown
Owner

Real axe scans (owner-approved devDependency @axe-core/playwright 4.13.0) on every route in the shared route table plus the command palette and shortcut sheet, against a stubbed observe daemon; fixes the one serious violation found (unnamed OTel switch in Settings).

Ticket: F29 (Forge Observe vs LangSmith evaluation follow-up)

Changes

  • test(studio): axe scans the populated Context Hub; stub before the first load
  • test(studio): axe scans on every screen
  • fix(studio): the OTel tracing switch is a named, keyboard-operable button

Verification: focused vitest, tsc --noEmit, eslint on changed files (details in the review package); full suite and fallow run in CI.

🤖 Generated with Claude Code

LinuxDevil and others added 3 commits October 29, 2026 00:43
…tton

axe flagged it (aria-toggle-field-name, serious): a div with role="switch",
no accessible name and no focus. Now a native button labelled "Enable OTel
tracing", like the Inspector's hook switch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
a11y.spec.ts runs @axe-core/playwright (wcag2a + wcag2aa, devDependency
pinned at 4.13.0) on every route in the new React-free route table
(src/screens/routeTable.ts, each entry carries a concrete example path),
plus the deep-link variants, the command palette and the shortcut sheet,
failing on any serious/critical violation with rule id and targets. The
single-<main>/h1/banner/nav checks stay. e2e/observeStub.ts fakes the
observe daemon so the scans cover the populated states.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rst load

Hub fixtures (a fleet and a private entry in e2e-namespace) in
observeStub.ts, the "sees stubbed data" check covers /hub and
/hub/:namespace, beforeEach installs the stub before its first goto, and a
note by SCANS says placeholder routes need fixtures when their screens land.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@LinuxDevil LinuxDevil changed the title fix(studio): the OTel tracing switch is a named, keyboard-operable button test(studio): axe scans on every screen Oct 28, 2026
@LinuxDevil
LinuxDevil merged commit 92ed1ee into main Oct 28, 2026
2 checks passed
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