This guide doesn't repeat the general user guide. Instead it walks through each task in the order VoiceOver reads the screen, names every control exactly as VoiceOver announces it, says what you should hear at each step, and is honest about the parts of the app that are visual by nature.

If something here doesn't match what you hear, tell us: info@accessibleresources.com. Reports from screen reader users are how this app gets better.

Ce guide existe aussi en français.

1. Before you start

You need an iPhone or iPad with VoiceOver on (triple-click the side button if you've set that up, or ask Siri to turn on VoiceOver). The Mac has its own app, which works differently — see section 10. Check you have version 9.2.1 or later: it is the version this guide describes, and 9.1 and 9.2.1 between them fixed the problems VoiceOver users reported (section 12). The app's labels follow your device language; the names in this guide are the English ones.

This walkthrough uses only standard VoiceOver gestures:

VoiceOver gestures used in this guide
GestureWhat it does
Swipe right / left with one fingerMove to the next / previous item
Double-tapActivate the selected item
Swipe down / up with one fingerMove through the rotor's current setting (for example, from heading to heading inside a web page)
Rotate two fingersChange the rotor setting (Headings, Links, Form Controls, Actions…)
Two-finger scrub (a Z shape)Go back or dismiss
Three-finger swipe up / downScroll a list or page
Touch and hold, then dragOnly used in the Contrast tool's exploration mode — see section 7
Nothing you audit leaves your device. Audits, contrast checks and focus scans all run locally. You don't need an account to use the app, and signing in is optional at every point.

2. First launch: sign-in, tour, plans

  1. Sign in, or skip. The first screen offers a Sign in with Apple button and, below it, a Skip sign in button. An account only syncs your report details (organisation name and contact) across devices. You can skip it and sign in later from Settings.
  2. The tour. Three short pages introduce the tools: Audit any website, Check colour contrast instantly and See the focus order. Each has a button at the bottom to continue.
  3. One optional question. What brings you here? lists a few options. Choosing one is optional; it only tunes which tips you see.
  4. The plans screen. The app is a subscription with a free trial. The plans screen lists the tiers as selectable cards, a start button, then Restore purchases, Privacy Policy and Terms of Use as small buttons at the bottom. If you already subscribe on another device signed into the same Apple ID, double-tap Restore purchases. Prices are read from the App Store and announced on the cards.
Replay any of this later: Settings → Replay welcome tour. Settings also has Restore purchases as its own row, and a Support ID row to quote if you ever email us about a purchase.

3. The main screen, in VoiceOver order

Swiping right from the top-left corner, you meet these controls in this order:

  1. Settings button (top left).
  2. The tool switcher — a segmented control with three segments: Audit, Contrast and Focus Order (on iPhone the last one is shortened to Focus). VoiceOver announces the selected one with selected.
  3. Change source button (top right). It opens a menu: Web URL, Camera, Gallery, Live.
  4. The URL field, announced as Enter URL to audit, followed by a menu button with Back, Forward, Reload and Create Report. On iPad, Back, Forward, Reload and Create Report are also separate buttons beside the field.
  5. On iPad, the floating results card comes next, straight after the toolbar. Its title is a heading. The card has a Hide results card button, and its Actions rotor offers Move to top left, Move to top right, Move to bottom left and Move to bottom right.
  6. The loaded web page. VoiceOver reads it as ordinary web content: use the rotor to jump by headings, links or form controls exactly as you would in Safari.
  7. On iPhone, the results panel at the bottom. Its contents change with the selected tool — the sections below describe each.
Reaching the results panel. When an audit finishes, VoiceOver moves to the results title and announces the count. To get back there later, set the rotor to Headings and swipe to the results title, for example Results (23). Still on version 8.0.2? There VoiceOver stays where it was, and on iPad the card comes after every element of the web page; update the app, or tap once with four fingers on the lower half of the screen and swipe left into the card.

4. Load a website

  1. Double-tap Change source, then Web URL. A sheet opens with a text field labelled Website address and the keyboard up (version 9.2.1; before that the field had no label and VoiceOver read its placeholder).
  2. Type the address. You can leave out https://. Press Return on the keyboard to load it.
  3. While the page loads VoiceOver hears Loading…. When it finishes the sheet closes and you are back on the main screen with the page in place.

You can also type straight into the Enter URL to audit field on the main screen and press Return.

If you hear

Error: Could not load URL, followed by the reason the page didn't load. Check the spelling first. If you left out https:// and the secure connection failed, the app has already tried plain http:// for you — some older public-sector sites only answer on http. In version 8.0.2 it didn't retry, so type http:// in front of the address yourself.

The site refused a secure connection. It may have moved to a new address, or its certificate may be broken. — this is the site, not your connection. It usually means the address you have is an old one that now points at a server which no longer answers to that name; Safari fails on it too. Search for the site's current address and try that. Public archives and government services move more often than you'd think. (Version 9.2.1; older versions said check your internet connection for this case.)

5. Run an audit and read the findings

The Audit tool runs axe-core, the same automated rules engine professional accessibility teams use, against the loaded page. It checks things like missing alternative text, buttons and links with no name, form fields with no label, insufficient colour contrast, wrong ARIA and heading structure. It does not check everything — section 6 explains what it can and cannot prove.

  1. With a page loaded, select the Audit segment.
  2. The results panel announces Setting up audit… and then Performing audit…. On most pages this takes a few seconds.
  3. When it finishes, the panel's title becomes Results followed by the total in brackets, for example Results (23). A clean page says Congrats! No issues found. VoiceOver moves to this title by itself and announces the count (in version 8.0.2 it didn't — see section 3).

Navigating the findings

The findings are a list three levels deep. Each level is a table you swipe through and double-tap into:

  1. Severity. Rows named Critical, Serious, Moderate and Minor, most severe first, each followed by the number of rule categories it contains. Double-tap one.
  2. Rule category. Rows named by the rule, in axe's own words — for example Images must have alternative text or Buttons must have discernible text — each with the number of elements affected. Double-tap one.
  3. Each affected element, one page at a time. Swipe right through: the target (a CSS selector pinpointing the element), the HTML of the element itself, a plain-language summary of what's wrong and how to fix it, and a More information link to the full rule documentation. When there are several elements, the navigation bar has buttons to move between them.

Use the two-finger scrub to go back up a level. The Share results button in the results navigation bar is where you export — next section.

On iPhone the results panel can be made taller or shorter: sighted users drag its Results bar. With VoiceOver, select that bar, set the rotor to Actions and choose Taller results or Shorter results; each step moves it by about a third of the screen, and the app remembers the height (version 9.2.1).

If you hear

Timed out waiting for result — the engine did not report back within 30 seconds. Double-tap Reload in the menu beside the URL field and select Audit again. Very large or script-heavy pages can take longer than the app allows. If it happens every time on one site, send us the address and we will look at it.

Error setting up audit., followed by the engine's own reason — the page stopped the engine from running. Sites that forbid scripts they don't own can't be audited from within the app.

These status messages are spoken as they change, so you don't need to move to the panel to hear them (version 8.0.2 only showed them).

6. Turn findings into evidence for a web team

A common reason to use this app is to show a web team something you experience but can't point at: a sort arrow on a table column that VoiceOver never announces, a menu that opens with no name, a form that reads as text field with nothing else. Here is how to turn that into a report they can act on.

Export the findings as text

  1. On the results panel, double-tap Share results.
  2. Choose Summary (text) for the severity counts and top issues, or All findings (text) for every element with its selector, HTML and fix. Spreadsheet (CSV) gives the same as a file for a developer's tracker. Audit report (PDF) opens the report builder (section 9).
  3. The iOS share sheet opens. Send it by Mail, Messages, save it to Notes, or copy it.

The text exports are fully readable with VoiceOver, and they contain the element's HTML. That HTML is the evidence: a developer can search their code for it.

What an automated finding does and doesn't prove

Take the unspoken sort arrow. What the audit finds depends on how it was built:

  • If the arrow is an image with no alternative text, or a button or link with no text, the audit catches it — expect a Critical or Serious finding such as Images must have alternative text or Buttons must have discernible text, with the exact element. That finding is objective proof.
  • If the arrow is drawn with CSS (a background image or a decorative character) on an element that isn't a button at all, axe cannot know it was meant to be interactive. No finding will appear. That's not a clean bill of health — it's the limit of automated testing, and the app's PDF report says so in its What this scan covers — and what it can't section.

For the second case, pair the audit with the Focus Order tool: if the arrow can't be reached with the Tab key, it isn't in the focus order, and the tool's count of tab stops for that table will show it. A finding plus a focus-order export plus your own description of what VoiceOver says is a complete, constructive report.

Wording that lands with web teams: quote the rule name, paste the HTML from the finding, say which WCAG success criterion it fails (the More information link names it), and describe what VoiceOver announced instead of what you expected. The audit's summary text already contains the first three.

7. Check colour contrast without seeing the colours

The Contrast tool compares two colours and reports whether the pair passes WCAG. Sighted users drag two pickers over the page. With VoiceOver there are two ways to work, and the first needs no dragging at all.

Method 1: type the colours

Use this when you know the colours — from a style guide, a designer, or a colour a developer gave you.

  1. Select the Contrast segment. The results panel appears.
  2. Swipe to the two colour buttons. Each is announced by its current hex value, for example #FFFFFF. The first is the text colour, the second the background.
  3. Double-tap the first. An alert titled Change hex value opens with a text field containing the current value. Select all, type the new value such as #575757, then double-tap OK.
  4. Repeat for the second colour.
  5. Swipe to the results. The panel's title reads the ratio, for example Contrast: 7.0:1, and the results group reads the verdicts: Text: Pass AA, Pass AAA. Large text: Pass AA, Pass AAA.

If a pair fails, double-tap Suggestions in the panel's navigation bar. It lists computed alternatives that pass, grouped as AAA compliant (7:1), AA compliant (4.5:1) and AA for large text (3:1), each read as a hex value. Double-tap one to apply it and hear the new result.

The hex field is labelled Change hex value, with #RRGGBB as its placeholder. In version 8.0.2 it had no label and VoiceOver read only the value, for example #FFFFFF, text field.

Method 2: explore the page by touch

Use this to sample colours from the actual page or a screenshot. It relies on touch, so it's most practical if you have some usable vision or a sighted colleague alongside.

  1. With the Contrast segment selected, swipe to the page area. It is announced as Web source (or Source image for a screenshot or photo) with the hint Double tap to enable VoiceOver exploration mode.
  2. Double-tap. VoiceOver announces the screen change and the hint becomes Touch to explore image. Double tap to leave VoiceOver exploration mode. In this mode VoiceOver passes your touches straight through to the page.
  3. Touch and drag on the page: the nearest picker follows your finger, and the results update live. Swipe to the results panel to hear the new ratio and verdicts.
  4. Double-tap the page area again to leave exploration mode and return to normal VoiceOver navigation.

Sharing a contrast result

The share button on the Contrast panel offers Add to Report (keeps the reading for the report in section 9), Share as Text, Share Screenshot and Open in Browser. The text version reads the two hex values, the ratio and the pass/fail verdicts. Double-tapping a colour swatch copies its value to the clipboard; the app confirms with a message such as Copied HTML color to clipboard.

8. The Focus Order tool

This tool works out the order a keyboard user tabs through a page and draws it on the page as numbered dots and connecting lines. The drawing is visual. What VoiceOver gets from it:

  • The count. Select the Focus Order segment (Focus on iPhone). The panel announces Calculating focus order and then the total, for example 14 tab stops, followed by any warnings such as infinite scrolling or sticky elements. Zero stops on a page with visible buttons is itself a finding: the panel says so and cites WCAG 2.1.1.
  • The export. The panel's Export focus order map button offers Full-Page Image and Full-Page PDF. Sighted colleagues can read the numbered map; for a web team it shows exactly where focus jumps. Rerun focus order scan repeats the scan after the page changes.
  • Element details (role, accessible name, ARIA label, tab index, selector and HTML for each stop) open when a dot on the page is tapped. Reaching a specific dot by touch is hard without sight; the numbered map export and the audit findings are the reliable route to the same information.

9. Build a report and an accessibility statement

  1. Run the tools you want evidence from: the audit, any contrast readings you kept with Add to Report, and a focus-order scan.
  2. Double-tap the menu button beside the URL field and choose Create Report (on iPad, the Create Report button beside the field).
  3. The Report Builder opens. Its first field is Subject / URL (what this report covers). Below it, switches for Audit (AxeCore), Colour contrast and Focus order, then a Preview & Export button.
  4. On the preview screen, fill in Organisation name and Contact email or page, then export the PDF with the share button.
  5. From the same screen, Open Accessibility Statement generates a self-assessed statement from your results in your choice of 17 languages. You can copy it as text, download it as HTML, or share it as a link.
Field labels: the subject, organisation and contact fields each have a permanent label, so you hear which field you're in even after you've typed. In version 8.0.2 they were announced by their placeholder only; if you're still on it, the order is subject, organisation, contact.

10. On a Mac

The Mac App Store installs the native Accessibility Checker for Mac, which is a different app from the one this guide describes. Instead of the three-tool screen, it has a Safari extension that audits the page you're viewing, a Reports Hub window for projects and audit rounds, and a menu-bar contrast checker. The Mac app help covers all of it. The extension's popup is an ordinary web page with a tab list (Audit, Tab Order, Contrast, About), so VoiceOver reads it like any other page in Safari.

  • Your subscription: one purchase covers iPhone, iPad and Mac. The surest way to carry it across is the app account: in Settings on the iPad (or iPhone) choose Sign in with Apple, then do the same in the Mac app's Settings with the same account. The plan follows the account the moment both are signed in; no restore is needed.
  • If you prefer Restore purchases (in the Mac checker's Settings menu): it only finds the subscription when the App Store on the Mac is signed into the same Apple ID that bought it. A different Apple ID, including a family member's, is the usual reason it finds nothing.
  • Still not recognised? Email us the Support ID from Settings on each device (section 13) and we will link them by hand.

11. Troubleshooting

Error: Could not load URL
Listen to the reason that follows it, and check the spelling. The app already retries plain http:// when you leave out the scheme; if the site still won't load, it may be down or blocking the app.
Timed out waiting for result
Reload and audit again. If one site does this every time, tell us the address.
Error setting up audit.
The page's security policy blocked the engine. It can't be audited from within the app.
The site refused a secure connection. It may have moved to a new address, or its certificate may be broken.
The address is out of date or the site's certificate is wrong; Safari cannot open it either. Find the site's current address (search for its name) and load that instead.
No previous purchases found, or Pro works on the iPad but not on the Mac
Sign in with the same app account on both devices from Settings (section 10); the plan follows the account. Restore only works when the Mac's App Store uses the Apple ID that bought the plan. If neither helps, send us both devices' Support ID.
The audit finished but I can't find the results
VoiceOver moves to them when the audit finishes; if you've moved away since, rotor to Headings and swipe to Results (N). If VoiceOver didn't move there by itself, check the app is version 9.1 or later.
The plans screen keeps appearing
Some tools are part of the paid plans; the app shows the plans screen when you first use one. Use Restore purchases if you already subscribe, or close it to continue with the free tools.
I can't find a control this guide mentions
Make sure the right tool segment is selected — the results panel's controls change with the tool. On iPad, the card may be hidden: look for Hide results card, which becomes a show button.

12. What changed in versions 9.1 and 9.2.1

Version 9.2.1 (November 2026) answers the reports VoiceOver users sent after 9.1:

  • When a site refuses a secure connection, the failure page says so and VoiceOver announces the reason, instead of blaming your internet connection.
  • The Website address field on the Choose Source sheet and in the Web URL dialog has a permanent label and a hint; the two colour pickers are named Foreground colour picker and Background colour picker.
  • The results panel's height can be changed from the Results bar: Taller results and Shorter results in the Actions rotor.
  • With Increase Contrast on, the audit result rows get a solid outline and heavier titles, and the contrast grid's headings and levels are bolder.
  • Navigating the page after an audit (a link, a search, a new address) no longer closes the app.

These fixes came directly from VoiceOver users' reports on version 8.0.2, and shipped in version 9.1 in September 2026:

  • When an audit finishes, VoiceOver moves to the results title and announces the count. The status messages Setting up audit…, Performing audit… and Timed out waiting for result are spoken as they change.
  • On iPad the floating results card is read straight after the toolbar, before the web page, and its title is a heading you can reach from the Headings rotor.
  • Bare addresses that fail over https are retried over http, and the load error announces the actual reason instead of a generic message.
  • When the audit engine fails, the reason is announced instead of a generic time-out.
  • The hex colour field, the URL field, the report subject and the organisation and contact fields all have permanent VoiceOver labels.
  • Purchases follow your app account: sign in with the same account on an iPhone and an iPad and the subscription is recognised on both without a restore.
  • Settings has a Support ID row. If you write to us about a purchase, include it and we can find your subscription straight away.
  • With Increase Contrast on in iOS Accessibility settings, option and plan cards get solid outlines instead of hairline grey.

Thank you to everyone who reported these — keep them coming.

13. Getting help

Email info@accessibleresources.com, or use Send feedback in the app's Settings. Tell us the device, the site you were checking and what VoiceOver said — that is enough for us to reproduce it. If you run a user group and want a walkthrough of a specific site's results, say so; we're glad to help you make the case to its web team.