Accessibility
The Navigator is built to WCAG 2.1 Level AA and audited with axe-core plus a manual review. This is the full, reproducible result — last audited 2026-07-17.
Automated audit
Per-page results
| Page | Violations | Status |
|---|---|---|
| /ask | 0 | Pass |
| /browse | 0 | Pass |
| /evaluation | 0 | Pass |
| /policy/[id] | 0 | Pass |
| /about | 0 | Pass |
| /login | 0 | Pass |
Manual checks
- Color contrast (1.4.3)pass
axe-core color-contrast checks pass on every page; navy #00274C body text on white, and maize is used only for accents/underlines — never maize text on white or white on maize.
- Keyboard operability (2.1.1)pass
Every control — source chips, Ask, suggestions, tab nav, the policy drawer (open/close/Escape), tooltips, and the comment form — is reachable and operable by keyboard alone.
- Focus visible (2.4.7)pass
A 2px maize focus ring with 2px offset is applied to all interactive elements via :focus-visible.
- Not color-alone (1.4.1)pass
Source identity is carried by a text label and a dot, not hue alone; status tiles (Robust/Partial/Failed) carry text, not just green/amber/red.
- Info & relationships (1.3.1)pass
Semantic landmarks (header / main / footer) and a valid heading hierarchy (h1 → h2 → h3) on every page; toggle chips expose aria-pressed.
- Name, role, value (4.1.2)pass
Inputs are labeled, buttons are named, decorative SVG icons are aria-hidden, and the favicon carries an accessible name.
- Reduced motion (2.3.3)pass
prefers-reduced-motion is honored — the drawer/answer animations are reduced to ~0ms for users who request it.
- Resize / reflow (1.4.10)pass
Relative units and fl*/grid layouts; wide content (tables, metric rows) scrolls within its own container, so the page never scrolls horizontally.
Fixed this cycle
- Policy detail pages returned HTTP 500 because a database Date value was rendered directly — dates are now serialized to text.
- The evaluation page had a heading-order skip (an h4 card title under the page h1) — section labels are now h2 and card titles h3.
Note. This report reflects the deployed build; the audit is reproducible by loading axe-core on any page. The upcoming umich.edu sign-in will keep these standards on the authenticated pages. Hover any underlined term for a plain-language definition.