For users with visual impairments, navigating an iOS interface without audio can make simple tasks nearly impossible.
iOS’s built-in screen reader, VoiceOver, bridges this gap by translating visual elements on screen into spoken audio cues, allowing users to seamlessly navigate, read, and interact with apps.
This guide walks you through how to enable VoiceOver on your iOS device so you can test your app’s accessibility and deliver a seamless experience for every user.
What Is VoiceOver, iOS’s Built-In Screen Reader?
VoiceOver is Apple’s native screen reader, built into every iPhone and iPad. It converts on-screen content into speech and lets users navigate through touch and gesture instead of sight without any third party software.
It’s built for users who ideally deal with visual impairment. It is also used in unexpected places: someone driving who wants messages read aloud, a user with a temporary hand injury who can’t look down at the screen, or a tester trying to understand why the payment page didn’t work.
VoiceOver works across system menus, Apple’s own apps, and any third-party app that’s been labelled correctly, which is the part most teams get wrong.
Also Read: Best Accessibility Tools in 2026
Getting Started with VoiceOver
Once VoiceOver is on, basic gestures behave differently; a single tap no longer opens something, it announces it. Here’s the full gesture reference before you turn it on, so you’re not relearning your phone mid-task:
Below is a quick overview of common VoiceOver gestures and what they do:
| Gesture | Action |
|---|---|
| Single tap | Select and read the item under your finger. |
| Double-tap | Activate the selected item. |
| Swipe right | Move to the next item. |
| Swipe left | Move to the previous item. |
| Swipe up/down (1 finger) | Adjust the selected control (e.g., slider) or navigate based on the rotor setting. |
| Double-tap and hold | Initiate a drag action for the selected item. |
| Two-finger tap | Pause or resume speech. |
| Two-finger swipe up | Read all content from the top of the screen. |
| Two-finger swipe down | Read all content from the current position. |
| Two-finger double-tap | Start or stop the current action (e.g., play/pause media). |
| Two-finger scrub (Z-shaped gesture) | Dismiss an alert or go back to the previous screen. |
| Three-finger swipe up/down | Scroll up or down one page. |
| Three-finger swipe left/right | Scroll left or right one page. |
| Three-finger double-tap | Toggle speech on or off. |
| Three-finger triple-tap | Toggle the screen curtain (turns the display off while keeping the device active). |
| Four-finger tap at top of screen | Select the first item on the screen. |
| Four-finger tap at bottom of screen | Select the last item on the screen. |
| Two-finger triple-tap | Open the Item Chooser. |
| Split-tap | Touch and hold an item with one finger, then tap the screen with another finger to activate the item. |
Steps to Enable VoiceOver in iOS
Follow these simple steps to enable it and start navigating your device with spoken feedback:
- Open Settings
- Tap Accessibility
- Select VoiceOver under the Vision section
- Toggle VoiceOver on
- Tap Enable on the confirmation prompt
VoiceOver starts speaking immediately and prompts a short interactive tutorial covering the core gestures, which is worth going through once, even if you already know the shortcuts below.
Here are two quick shortcuts to enable VoiceOver quickly:
- Accessibility Shortcut: Go to Settings → Accessibility → Accessibility Shortcut: select Voice Over, then triple-click the side (or Home) button anytime to toggle it on or off.
- Siri: Say, “Hey Siri, turn on VoiceOver.” Fastest method, no menu diving required.
How to Use VoiceOver Gestures to Navigate Your Device
With VoiceOver active, the gestures made by the user govern everything. A few that matter most in daily use:
- Tap once to hear what’s under your finger. This replaces “look and tap”
- Swipe right/left to move item by item instead of scanning visually
- Double-tap to activate whatever’s currently selected
- Three-finger swipe to scroll, since a normal swipe now moves between items, not the page
The built-in VoiceOver Practice tutorial (reachable from the same Accessibility → VoiceOver screen) is the fastest way to build muscle memory before testing a real app with it.
How to Use VoiceOver to Describe Images, Text, and Unlabelled Items
VoiceOver can read aloud text, describe images, and identify unlabelled items on your iPhone or iPad, to help you better understand what’s on the screen. Here’s how you can use VoiceOver for this:
- Images: When VoiceOver encounters an image, it will describe it if it has an accessibility label. If the image doesn’t have a label, VoiceOver will simply say “Image” or “Unlabelled image.”
- Text: VoiceOver automatically reads aloud any visible text on the screen, such as web pages, messages, and app content.
- Unlabelled items: If VoiceOver encounters an unlabelled button or control, it will announce it as “Button” or “Unlabelled.”
To ensure VoiceOver can recognize and describe images and text, you need to enable the feature that supports recognition. Follow these steps:
- Open the Settings app on your device
- Tap on Accessibility
- Under the Vision section, select VoiceOver
- Scroll down to the Speech section and select VoiceOver Recognition
- Enable “Image Descriptions”; this will enable VoiceOver to describe images when possible
How to Adjust the VoiceOver Speaking Rate
An iOS screen reader helps you adjust the speaking rate, voice, pitch, and volume, which is useful for matching how fast a real user actually listens. Since the default speech rate is often too slow for experienced VoiceOver users, you need to adjust it to fit their needs.
- Speaking rate: Settings → Accessibility → VoiceOver → drag the Speaking Rate slider.
- Voice, pitch, Volume: Settings → Accessibility → VoiceOver → Speech → Select the voice (e.g., “Rishi”) → Adjust rate, pitch, and pitch volume on the next screen.
For developers, the fix upstream is a one-line label. In SwiftUI:
Image("checkoutButton")
.accessibilityLabel("Complete purchase")
.accessibilityHint("Submits your order and charges your card")Output –
Testing at more than one speaking rate is worth doing deliberately; timing-sensitive UI (toasts that disappear, auto-advancing carousels) can pass at a slow rate and fail at a fast one, because the announcement gets cut off before the user acts on it.
On the development side, you can detect when VoiceOver is active and adjust timing accordingly, instead of assuming every user hears an announcement at the same speed:
import UIKit
if UIAccessibility.isVoiceOverRunning {
// Give Voice Over time to finish speaking before a toast
// or alert auto-dismisses, regardless of the user's speaking rate
toastDismissDelay = 6.0
} else {
toastDismissDelay = 2.5
}Output –
This one check prevents a whole class of bugs where a message is technically announced but disappears before a slower-speaking-rate user has finished hearing it.
Steps to Change How VoiceOver Sounds
You can customize the sound of VoiceOver to suit your preferences, which includes changing the voice, accent, and volume. Here’s how to adjust the VoiceOver sound settings:
- Open the Settings app on your device
- Tap on Accessibility
- Under the Vision section, select VoiceOver
- Scroll down and select Speech
- Now you will see the primary voice. In the screenshot, the primary voice is Rishi
- Click on the voice. On the next screen, you can change the voice, rate, pitch, and pitch volume
How to Use VoiceOver in Specific iPhone Everyday Apps
VoiceOver works smoothly across built-in iPhone apps, allowing you to browse, read, and interact with content. Here’s how it works in Safari, Mail, and Messages:
Safari
- Swipe right to move through links, headings, and text
- Double-tap a link to open it
- Two-finger swipe to scroll the page
- Drag a finger across the screen to explore content by touch
- Swipe right through inbox messages; double-tap to open one
- Inside an email, swipe right to hear the sender, subject, body, and attachments in order
- Two-finger swipe to scroll long emails
Messages
- Swipe right through conversations; double-tap to open one
- Inside a thread, swipe right to hear the sender, message text, and media
- Double-tap the text field to type or dictate a reply
- Two-finger swipe down to read the full conversation from your current position
Maps
- Swipe right to move through search results, directions, and nearby points of interest
- Double-tap a location to hear more detail or start directions
- During navigation, VoiceOver announces turn-by-turn instructions automatically
Photos
- Swipe right to move image by image; VoiceOver announces basic image content automatically
- Double-tap to open a photo full-screen
- Turn on Image Descriptions (covered above) for more detailed spoken descriptions
App Store
- Swipe right through app listings, ratings, and screenshots
- Double-tap Get or Install to activate it, a common point where missing labels on third-party app icons cause confusion
- Swipe right through reviews to hear them individually
Settings
- Swipe right to move through menu items; double-tap to open one
- Useful to test directly, since it’s where Voice Over itself is configured, a good sanity check that gestures are behaving as expected
Common VoiceOver Bugs That Slip Past Manual Testing
A quick visual check rarely catches these; they only surface once VoiceOver is actually driving the interaction:
- Missing or generic labels: Icon-only buttons that read as “Button” instead of what they do.
- Broken focus order: Voice-overs jump around the screen in an order that doesn’t match the visual layout, disorienting the user mid-task.
- Unannounced dynamic content: A form error, a loading state, or a cart update that appears visually but is never spoken aloud.
- Custom components without accessibility traits: a custom slider or toggle built without native UI Kit/SwiftUI accessibility support that Voice Over-simplification can’t interpret.
Each of these bugs are an alert for teams to know whether they tested their app for real accessibility or just for a “screen-reading” formality.
Testing the app against a real voiceover means designing for a “hands-free” experience. Which is exactly the gap between “we tested it” and “we tested it with a screen reader”. A website
Test If Your App Is Compatible With iOS Screen Readers
Testing your app with iOS screen readers ensures that users can access and complete core actions like navigation, form entry, and checkout using audio-based interaction. Without testing, issues like missing labels, broken focus order, or unannounced dynamic updates can go unnoticed and block critical tasks.
This affects usability, breaks trust, and can lead to non-compliance with legal standards like Web Content Accessibility Guidelines (WCAG) and the Americans with Disabilities Act (ADA). Real-device testing also helps catch gesture issues and custom UI failures that simulators miss.
BrowserStack App Accessibility makes testing screen reader compatibility easier by enabling you to test your app’s accessibility across a wide range of real iOS devices. With BrowserStack, you can:
- Test on real iOS devices to verify VoiceOver behavior in actual usage conditions
- Access 3,500+ device combinations to cover different iOS versions and screen sizes
- Check gesture support and focus order using native VoiceOver gestures on real hardware
- Validate dynamic content announcements for live updates, popups, and status changes
- Identify accessibility gaps like missing labels, confusing navigation, or blocked actions
Read More: How to Test Websites with Screen Readers
Conclusion
VoiceOver gives iOS users full control of a device without needing to see the screen, but enabling it is only step one.
The real test is whether your app holds up once VoiceOver is driving the experience: whether buttons are labelled, whether focus moves in the same order, and whether a dynamic update actually gets spoken aloud.
Manual testing on a personal device will catch some of that. It won’t catch all of it, across every iOS version and device your users actually have.
BrowserStack App Accessibility lets you validate VoiceOver behaviour on real hardware at scale, so accessibility gaps get caught before they reach users — not after a lawsuit or a one-star review points them out.










