2026-04-21 A11y Audit Report
2026-04-21 A11y Audit Report
Section titled “2026-04-21 A11y Audit Report”- Repo:
D:\AB_TEST - Frontend gate:
app/frontend/src/test/a11y-wizard.test.tsx,app/frontend/src/test/a11y-results.test.tsx,app/frontend/src/test/a11y-sidebar.test.tsx - Target: WCAG 2.1 AA with
0 critical / 0 seriousaxe violations across wizard, results, sidebar, and modal states
Checked states
Section titled “Checked states”- Wizard:
Project,Hypothesis,Setup,Metrics,Constraints,Review - Results shell:
ResultsPanelwith seeded mock analysis data - Results subsections:
PowerCurveSection,SensitivitySection,SrmCheckSection,ObservedResultsSection,AiAdviceSection,WarningsSection,RisksSection,ExperimentDesignSection,MetricsPlanSection,ComparisonSection,SequentialDesignSection - Sidebar and modals:
Projectstab,Systemtab,TemplateGalleryopen,ShortcutHelpopen, visible project filters, workspace backup controls
Critical / serious violations fixed
Section titled “Critical / serious violations fixed”- Rule:
nested-interactiveState:PowerCurveSectionFile:app/frontend/src/components/results/PowerCurveSection.tsx:53Change: movedChartExportMenuoutside therole="img"wrapper so export buttons are no longer nested inside the chart image region.
Additional hardening applied
Section titled “Additional hardening applied”app/frontend/src/components/TemplateGallery.tsxandapp/frontend/src/components/ShortcutHelp.tsx: added focus trap behavior, Escape close handling, and focus return to the opener for dialog flows.app/frontend/src/components/ProjectListFilters.tsx: grouped filters in afieldsetwith a hidden legend while keeping explicit label-to-control bindings.app/frontend/src/components/ChartExport.tsx: exposed a named export-control group and explicit button labels for SVG/PNG actions.app/frontend/src/components/SliderInput.tsx: addedaria-labelledby,aria-valuemin,aria-valuemax,aria-valuenow, andaria-valuetexton slider controls.app/frontend/src/components/ToastSystem.tsx: non-error toast items expose politestatussemantics, error toast items stayalert, and the stack keeps the existing live-region anchor used by the current toast lifecycle tests.app/frontend/src/components/ErrorBoundary.tsxandapp/frontend/src/components/ChartErrorBoundary.tsx: made fallback alerts focusable and shifted focus to them after render failures.
Rule exceptions
Section titled “Rule exceptions”- None. No axe rules were skipped in the committed a11y tests.
Verification
Section titled “Verification”cd app/frontend && npm.cmd run test:unitpassed with184tests green.- Added
24accessibility cases covering wizard, results, sidebar, and modal states.