Skip to content

Keyboard & accessibility

Shortcuts work when the player has focus. The player adds tabindex="0" unless you set your own.

KeyAction
Space / KPlay / pause
FFullscreen
MMute / unmute
← / →Back / forward 5 seconds
↑ / ↓Volume ±10% (shows the volume slider briefly)
Home / EndGo to the start / end
0–9Jump to 0%–90% of the video
EscapeClose the modal or an open menu
TabMoves through the controls; cycles inside the modal while it’s open

Shortcuts are ignored when Ctrl, Alt or ⌘ is pressed, so browser shortcuts keep working.

  • Progress bar: a focusable role="slider" with aria-valuenow (percent) and a readable aria-valuetext such as “1:23 / 4:56”.
  • Volume: a focusable vertical role="slider". Arrows change the volume, Home mutes, End sets 100%. It stays visible while it has keyboard focus.
  • Buttons: play, mute, captions and cast update aria-label / aria-pressed; fullscreen switches between “Fullscreen” and “Exit fullscreen”; speed and quality menus expose aria-haspopup and aria-expanded.
  • Modal: role="dialog" with aria-modal="true"; focus moves inside on open, is trapped while open and returns to the previous element on close.

All labels can be translated with VegaPlayer.i18n.

With the system setting “reduce motion”, transitions are removed and the loading spinner slows down.

Keyboard focus is always visible. A mouse click on the volume button doesn’t keep the slider open (only keyboard focus does), so it never gets “stuck” on screen.