VoiceOver reads the screen aloud and lets people use the iPhone without seeing it. This script gives you the gestures and a fixed order of checks, so a pass takes about 15 minutes and produces comparable results. For the short version of the idea, see a 10-minute screen reader test.
Turn it on
- Settings > Accessibility > VoiceOver. Add VoiceOver to the Accessibility Shortcut (triple-click the side button) so you can switch it on and off quickly. Menu names can vary by iOS version.
- Use headphones or lower the volume. Do not rely on the screen: look away or enable the screen curtain once you are comfortable.
Gestures you need
- Swipe right / left: next / previous element.
- Single tap: select and read the element under your finger.
- Double-tap: activate the selected element.
- Three-finger swipe up / down: scroll.
- Two-finger swipe from the bottom up or a "Z" shape with two fingers: back or dismiss in many places (verify on your iOS version).
- Rotor (twist two fingers): jump by headings, links or other element types.
The script
- Reading order. On each main screen swipe right from the top. Does the order match the visual and logical order? A skipped or reversed element is a finding.
- Labels. Every button and icon needs a spoken name that says what it does. "Button" or a file name like "icon_3" is a finding.
- Role and state. Does it say "button", "switch, on", "selected"? Toggles that do not announce state leave users guessing.
- Headings. Use the rotor to jump by headings. If nothing is found, long screens are hard to navigate.
- Images. Meaningful images need a description; decorative ones should be skipped.
- Forms. Each field announces its purpose. Errors must be spoken, not only shown in red. Try submitting an empty form.
- Custom controls. Sliders, custom tabs, carousels and gestures-only actions are the usual failures. Check that each can be operated by swipe and double-tap.
- Focus after change. When a sheet, alert or new screen opens, does VoiceOver move there? When it closes, where does focus land?
- Dynamic updates. Loading indicators, toasts and error messages should be announced.
- Complete one task. Pick your main flow (sign up, search, buy) and finish it with VoiceOver only. Where you get stuck is the top bug.
Record
For each finding: screen, element, what was spoken, what should be spoken. Mark whether a task is blocked.
This script checks accessibility behavior; it is not a certification. Next, run Dynamic Type and dark mode passes.
Get outside feedback
AppReviewX gives you private, structured feedback from other developers, one credit per feedback you write. New accounts start with 0 credits.
Hub: iOS app testing guide. Related: iPad layout testing, permission prompts.