Volt LogoVolt
User Guide

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:

ToggleWhat it does
High contrastBoosts text/background contrast above WCAG AA thresholds (4.5:1 normal, 3:1 large)
Reduced motionDisables window slide-in animations, result transitions, and parallax effects
Focus visibleForces a thick, high-contrast outline on every focusable element
Font sizeScales UI text 100% → 150%
Screen reader hintsAnnounces 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 results
  • Tab — autocomplete with selected result title
  • Enter — execute
  • Ctrl/Cmd + K — open the action menu for the selected result
  • Esc — 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:

EventAnnouncement
Search results updated"N results found. Use arrow keys to navigate."
Result selected (arrow key)Title, subtitle, and type of the selected item
Action executedConfirmation of the action ("Launched X", etc.)
Loading"Searching…" via polite live region
ErrorError message via assertive live region

The result list is implemented as role="listbox" + aria-activedescendant; each result is an aria-selected option.

Color Contrast

ElementDark themeLight themeStandard
Primary text13.6:112.8:1≥ 4.5:1
Secondary text7.2:16.9:1≥ 4.5:1
Disabled UI3.4:13.2:1≥ 3:1
Focus outline5.1:14.8:1≥ 3:1

All ratios audited with WebAIM contrast checker and Chrome DevTools accessibility pane.

Patterns We Follow

  • ResultsListrole="listbox", aria-activedescendant
  • ResultItemrole="option", aria-selected, keyboard handler for Enter / Space
  • SearchBarrole="status" + aria-live="polite" for result count
  • Modal — focus trap, Esc to dismiss, aria-labelledby
  • ErrorMessagerole="alert"
  • Toastrole="status"
  • HelpDialogrole="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.

Next Steps

On this page