fix(a11y): valid ARIA role on TuxCodeMaroon + non-empty headings on /install #56
No reviewers
Labels
No labels
idea
points
1
points
13
points
2
points
3
points
5
points
8
priority
p0
priority
p1
priority
p2
priority
p3
state
blocked
state
done
state
in-progress
state
ready
state
review
state
triage
status
declined
status
in-progress
status
planned
status
proposed
status
shipped
status
under-review
type
bug
type
epic
type
feature
type
spike
type
story
type
task
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
tti/tti-ux!56
Loading…
Reference in a new issue
No description provided.
Delete branch "claude/strange-hopper-6f122c"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes the 6 axe-core violations that had the contrast audit (WCAG 2.2 AAA) workflow red on
main. Both are pre-existing and identical across the #54 and #55 merges — neither release introduced them.1 ·
TuxCodeMaroonemittedrole="error"— 4 nodes,[critical] aria-rolesThe v2 vocabulary batch renamed the
alerttone toerrorand swept the role attribute along with it (8f7d5e4), so every banner has shipped an ARIA role that doesn't exist since 2.0.0.The role now derives from the tone, the same split
TuxStatusToastalready uses:error,warningalertassertiveinfostatuspoliteSafety tones interrupt when a banner appears mid-session; a scheduled-drill notice waits its turn. The blanket
aria-live="assertive"on theinfotone goes with it.Kept the roles rather than dropping them: the banner is genuinely dynamic — production wiring drives
activefrom the Rellis alert feed, and the docs specimens toggle on a button — so the live region is doing real work, not decorating a static specimen.2 · Two
/installcall sites passedtitle=toTuxSectionHeader—[minor] empty-heading×2TuxSectionHeadertakes its text from the default slot and has notitleprop, so the string fell through to the wrapping<header>as an HTML tooltip and the<h2>rendered empty. Same mistake shape as theTuxCalloutkindfix in 2.2.0: aTuxPageHeaderprop used on a component that doesn't take one.Every other call site across the site already uses the slot, so this is fixed at the two call sites — the component is untouched.
Verification
npm run audit:a11yAUDIT_LEVEL=AAA npm run audit:contrasttti/tti-dark/tti-hcnpx vitest runnpx eslint .npm run typechecknode scripts/ports-manifest.mjs --checkTuxCodeMaroon.vuechanged, so the ports drift bot will queue it for re-porting on merge — expected. The manifest is deliberately left un-synced here so the bot owns that commit.AI review · advisory
Verdict: nothing confirmed — 4 single-reviewer observations in the debate digest below.
⚑ panel: GPT-OSS 120B · Gemma 4 31B · Devstral 2 123B · Laguna S 2.1 — 4 distinct, 0 confirmed, 4 below threshold, 0 refuted · web: not used · context: 3 files under review · 90 codebase · 14 standards chunks (best-grounded: GPT-OSS 120B; smaller windows saw less)
Panel debate — how this review was reached
Grounding — context: 3 files under review · 90 codebase · 14 standards chunks (best-grounded: GPT-OSS 120B; smaller windows saw less)
Round 1 — independent reviews
TuxCodeMaroonand correcting the prop usage ofTuxSectionHeaderRound 2 — cross-examination
Devstral 2 123B#1Invalid ARIA role 'error' · confirmed: Gemma 4 31B · refuted: GPT-OSS 120B, Laguna S 2.1 · support 1Devstral 2 123B#4Invalid prop 'title' passed to TuxSectionHeader · confirmed: Gemma 4 31B · refuted: GPT-OSS 120B, Laguna S 2.1 · support 1Devstral 2 123B#3Invalid prop 'title' passed to TuxSectionHeader · confirmed: Gemma 4 31B · refuted: GPT-OSS 120B, Laguna S 2.1 · support 1Devstral 2 123B#2Hardcoded aria-live value · confirmed: Gemma 4 31B · refuted: GPT-OSS 120B, Laguna S 2.1 · support 1Not posted (support < 2, or contested at a severity where one refutation vetoes)
Devstral 2 123B#1Invalid ARIA role 'error' (support 1, vetoed by a refutation)Devstral 2 123B#4Invalid prop 'title' passed to TuxSectionHeader (support 1)Devstral 2 123B#3Invalid prop 'title' passed to TuxSectionHeader (support 1)Devstral 2 123B#2Hardcoded aria-live value (support 1)Synthesis — Laguna S 2.1 wrote the final review from 0 confirmed findings (+4 below threshold) · promotion: support ≥ 2, and no refutation at high severity.
Transcript
rv-20260908171100-b2d790— full round outputs, web results, and model reasoning are viewable by anyone with access to this repository via the AI gateway.Advisory — never a merge gate. Findings are ordered by how well the panel's own evidence checks out, strongest first. React 👍/👎 on any inline comment to tell it whether it was worth flagging — that is the only feedback this system gets, and every threshold in it is tuned from those reactions. Transcript
rv-20260908171100-b2d790.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.