Repository navigation
Name controls, headings, and the toast region (AX-01, AX-05, AX-06, AX-08, AX-09) - #200
Merged
Merged
Conversation
Card titles default to h2 so a page h1 is not followed by an h3. Generate and flowchart selects, the timer progress bar, and attack options have accessible names, the toast region follows the UI language, and the landing demo leaves the tab order. Co-authored-by: Gáborjáni-Szabó Ádám <Programcode@users.noreply.github.com>
|
Warning Review limit reachedEnable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. Next included review available in 40 minutes. View limit details
Note 🎁 Summarized by CodeRabbit Free
Comment |
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.
Accessible names, headings, and landmarks only. Colors, sizes, and layout are unchanged. This is a local
npm run verifypass, not a CI pass. GitHub Actions minutes are exhausted, so CI was not used as proof.AX-01 — language button
The globe button already exposes
langSwitcher.label(Language / Idioma / Nyelv) in the landing navbar (desktop and mobile) and the app header. Both open-menu radiogroups already have names (Felület nyelve/AI kimenet nyelve, and the Spanish pair). The English fallback string is nowLanguage, so a missing key still matches that name. The globe icon is hidden from assistive tech.AX-05 — Attack options
“Detect fallacies” and “Analyze weighing” were already labelled and described. The Options, Intensity, and Paradigm labels are now associated with their controls (
htmlFor/aria-labelledby). The Options button name includes both “Options” and “More options”.AX-06 — one main, and the landing demo
The hero product preview is hidden from assistive tech and inert. The fake motion field is out of the tab order. The real mode toggles stay focusable.
AppLayoutstill renders onemain, and the pages in this change do not add another. Axe reported one main on every scanned route.AX-08 — toast region
containerAriaLabeliscommon.notifications: Notifications / Notificaciones / Értesítések. Sonner appends the hotkey, so the region is announced as “Notificaciones alt+T” (and the English and Hungarian equivalents), not the English default.AX-09 — names, progress, headings
h3witharia-level={2}.timer.speechProgress) and receives a numericvalue, so it is no longer an unnamed indeterminate progressbar. Other progress bars still passvaluethrough; the indicator math is unchanged.CardTitledefaults toh2, with anasprop when a different level is required. The class string is unchanged (text-lg font-semibold leading-tight tracking-[-0.014em]). No app stylesheet targets those card headings ash3. The only[&_h3]rule is on the free-tool article layout, which does not wrapCardTitle. Replacing anh2with anh3that has the same classes, in place, produced no computed-style difference on/app,/app/settings, and/app/timer(18px, weight 600, line-height 22.5px, letter-spacing, margin, padding, color, display).h2, so the new default does not introduce a skip on Generate, Attack, Factoids, or Brainstorm.h1. The navigation performance spec looks formain h1.Axe
axe-core 4.10.3, desktop 1280×800, tags wcag2a, wcag2aa, wcag21a, wcag21aa, and best-practice. Local stub session. Not a production scan.
//app/app/generate/app/flowchart/app/timer/app/settings/app/attackUnsigned landing confirmed Hungarian (
Értesítések alt+T, button Nyelv, radiogroups Felület nyelve and AI kimenet nyelve) and Spanish (Notificaciones alt+T, Idioma).npm run verify(local, exit 0)@smoke: 43 passed (28.0s)Two earlier runs of the same command failed only in
src/test/scripts/backend-status.test.ts. The hook callsgit commit, and this environment’scommit.gpgsignSSH signer (ssh-keygen -Y sign) stalled past the 10s hook timeout. The recorded run setcommit.gpgsign=falsefor child git processes. That test file was not changed. A local pass is not a CI pass.Moved out; not touched
AskChat/AskPage, batch T5)SparringRound, batch T5)CrossfirePage, batch T5). Source already has h1s; not rechecked in the browser because that file is owned by T5.LoginPage/RequireAuth, batches T2 and T3)Out of scope for T10
Color contrast and target size stay as they are: the signed-in “Tools” nav label, flowchart badges, the timer speech tab, and a settings badge. The React Flow attribution did not show up as a failing node in this axe run.
Left open
History and Library item titles are
h4elements in files this batch must not edit.CardTitleis nowh2, so a populated History or Library list can skip from h2 to h4. Empty states do not skip./app/historyand/app/librarywere not in the axe route list.