Free community resource

Screen Reader Testing with VoiceOver

Assistive technology

VoiceOver is a screen reader built into all Apple devices — macOS, iOS,
iPadOS, tvOS, and watchOS. It requires no installation and is activated
with a keyboard shortcut on Mac or a gesture on iPhone and iPad. Testing
with VoiceOver on macOS with Safari is one of the most important screen
reader combinations to test, as it represents a significant portion of
real-world assistive technology usage.
[1]


Activating VoiceOver on macOS

  • Keyboard shortcut: Command + F5
  • System Settings: Accessibility → VoiceOver → Enable VoiceOver
  • Siri: "Turn on VoiceOver"

Recommended browser: Safari. VoiceOver and Safari are developed by
Apple and have the tightest integration. Chrome on macOS is also acceptable
for testing.

The VoiceOver modifier key (VO key) is Control + Option by default.
All VoiceOver commands are prefixed with VO.


Essential keyboard shortcuts

Shortcut Action
Command + F5 Toggle VoiceOver on/off
VO + A Read from current position
VO + H VoiceOver help menu
VO + U Open Web Rotor
VO + Left/Right Move to previous/next item
VO + Space Activate current item
VO + Shift + Down Interact with current item
VO + Shift + Up Stop interacting with current item
Tab Move to next interactive element
VO + Command + H Next heading
VO + Command + L Next link
VO + Command + J Next form control
VO + Command + T Next table
[2]

The Web Rotor

The Web Rotor (VO + U) is VoiceOver's equivalent of NVDA's elements list.
It displays a filterable list of page elements by type — headings, links,
landmarks, form controls, tables, and more. Use it to:

  • Check whether all headings are present and correctly labelled
  • Check whether all landmarks are present and named where required
  • Navigate quickly to a specific section or element for testing

Step by step testing process

Step 1 — Check the page title

When the page loads, VoiceOver announces the page title. Verify it
identifies both the page topic and the site name.

Step 2 — Navigate by headings

Open the Web Rotor (VO + U) and select Headings. Verify the heading
structure is logical, hierarchical, and descriptive.

Step 3 — Navigate by landmarks

In the Web Rotor, select Landmarks. Verify a main region exists and that
all landmark regions have meaningful labels where duplicates exist.

Step 4 — Test links

In the Web Rotor, select Links. Read through the list of link text. Every
link should make sense when read in isolation, without surrounding context.
[1]

Step 5 — Test forms

Tab to each form field. VoiceOver should announce the label, type, and any
required or invalid state. Submit with errors and verify error messages
are associated with their fields and announced appropriately.

Step 6 — Test interactive components

For custom widgets, use VO + Shift + Down to interact with them. Verify:

  • The widget role is announced correctly
  • Current state is announced (expanded/collapsed, selected, checked)
  • Keyboard interactions work as expected within the component

Step 7 — Test dynamic updates

Trigger status messages, validation errors, and live content updates.
Verify VoiceOver announces updates via live regions without requiring
focus to move.
[3]


Testing on iOS with VoiceOver

Activate VoiceOver on iPhone or iPad via Settings → Accessibility →
VoiceOver
. Core gestures:

  • Swipe right — next element
  • Swipe left — previous element
  • Double tap — activate selected element
  • Three-finger swipe — scroll
  • Two-finger scrub (Z shape) — back / escape

Testing on iOS is important for verifying touch target sizes, gesture
alternatives, and mobile-specific ARIA patterns.


References

  1. Apple. VoiceOver User Guide for Mac. https://support.apple.com/guide/voiceover/welcome/mac
  2. Deque University. VoiceOver Keyboard Shortcuts on a Mac. https://dequeuniversity.com/screenreaders/voiceover-keyboard-shortcuts
  3. WebAIM. Using VoiceOver to Evaluate Web Accessibility. https://webaim.org/articles/voiceover/

Last edited Apr 7, 2026, 7:31 PM · P**** J****