Accessibility
Volt's accessibility features, WCAG AA compliance, and keyboard-only workflows
Accessibility
Designed for everyone
Volt is built keyboard-first and follows WCAG 2.1 AA standards. Every action is reachable without a mouse, every state is announced to screen readers, and visual settings can be tuned to your needs.
Built-in Settings
Open Settings → Accessibility to toggle:
| Toggle | What it does |
|---|---|
| High contrast | Boosts text/background contrast above WCAG AA thresholds (4.5:1 normal, 3:1 large) |
| Reduced motion | Disables window slide-in animations, result transitions, and parallax effects |
| Focus visible | Forces a thick, high-contrast outline on every focusable element |
| Font size | Scales UI text 100% → 150% |
| Screen reader hints | Announces result count, current selection, and loading states via aria-live |
Reduced motion respects your OS-level prefers-reduced-motion preference by default — you only need to override it in Volt if you want stricter behavior.
Keyboard-Only Navigation
Every Volt feature is reachable from the keyboard. There is no mouse-only action.
Ctrl/Cmd + Space— open Volt↑/↓— move through resultsTab— autocomplete with selected result titleEnter— executeCtrl/Cmd + K— open the action menu for the selected resultEsc— close
Volt traps focus inside modals: Tab and Shift + Tab cycle through interactive elements without escaping to the browser address bar. Esc always closes the topmost modal.
The settings window is fully keyboard-navigable: tab between sections, arrow keys inside option lists, space to toggle checkboxes, enter to apply.
Screen Reader Support
Volt is tested against:
- NVDA (Windows) — free, https://www.nvaccess.org/
- VoiceOver (macOS) — built-in,
Cmd + F5 - Orca (Linux) — built-in on most distros
What Volt announces:
| Event | Announcement |
|---|---|
| Search results updated | "N results found. Use arrow keys to navigate." |
| Result selected (arrow key) | Title, subtitle, and type of the selected item |
| Action executed | Confirmation of the action ("Launched X", etc.) |
| Loading | "Searching…" via polite live region |
| Error | Error message via assertive live region |
The result list is implemented as role="listbox" + aria-activedescendant; each result is an aria-selected option.
Color Contrast
| Element | Dark theme | Light theme | Standard |
|---|---|---|---|
| Primary text | 13.6:1 | 12.8:1 | ≥ 4.5:1 |
| Secondary text | 7.2:1 | 6.9:1 | ≥ 4.5:1 |
| Disabled UI | 3.4:1 | 3.2:1 | ≥ 3:1 |
| Focus outline | 5.1:1 | 4.8:1 | ≥ 3:1 |
All ratios audited with WebAIM contrast checker and Chrome DevTools accessibility pane.
Patterns We Follow
- ResultsList —
role="listbox",aria-activedescendant - ResultItem —
role="option",aria-selected, keyboard handler forEnter/Space - SearchBar —
role="status"+aria-live="polite"for result count - Modal — focus trap,
Escto dismiss,aria-labelledby - ErrorMessage —
role="alert" - Toast —
role="status" - HelpDialog —
role="list"for shortcut groups
Reporting Accessibility Issues
If something doesn't work for you with assistive tech, please tell us. Accessibility regressions are treated as bugs.
- Issue tracker: https://github.com/VoltLaunchr/Volt/issues
- Label:
a11y - Include: OS, screen reader (if any), Volt version, and the action that failed