VoiceOver

What Is VoiceOver?

VoiceOver is Apple's screen reader, built into macOS, iOS, iPadOS, watchOS and tvOS rather than installed separately. Someone who is blind can take a new iPhone out of the box and set it up without sighted help, because VoiceOver can be switched on before anything else happens. That built-in status is why it has such a large share of mobile screen reader use.

How People Use It

On a Mac it is driven by keyboard commands, with a modifier key combination used to move through elements, headings, links and landmarks. On a touchscreen the gestures change meaning entirely: a single tap announces what is under the finger instead of activating it, a double tap activates, and a swipe moves to the next element. Rotor, a twisting gesture, lets the visitor jump by headings, links or form controls.

Why It Is Not Interchangeable With JAWS or NVDA

Screen readers interpret the same page differently. A pattern that reads correctly in NVDA on Windows can be silent or confusing in VoiceOver on iOS, particularly with custom components, live regions and complex ARIA. Testing in one and assuming the rest is a common shortcut and a common source of missed defects, which is why audits name the combinations they actually tested.

How It Affects Real Users

A blind customer opens your booking app on an iPhone. The date picker is a custom control built with div elements and no roles. VoiceOver announces it as a group of unlabeled buttons, so swiping through gives a sequence of numbers with nothing to say which is a date, which is selected, or which month is showing. The app is installed, the account exists, and the booking still cannot be completed.

Where VoiceOver Shows Up in an Accessibility Review

VoiceOver on iOS is normally part of any review covering a mobile web experience or a native iOS app, and VoiceOver on Safari covers the Apple desktop combination. Findings cluster around custom controls, focus management after a screen changes, and elements that are visible but never announced. The report should state which version and platform were used, because behavior changes between releases.