Figment.so
Mac hostingWebsite hostingGuidesHow to usePricing

WCAG 2.2 Audit Checklist for Safari on macOS

Recommendation: work the 30-row checklist below against Safari on macOS, capture one evidence screenshot per criterion, and export the filled table as a dated PDF. For a defensible audit, run it on a Mac that has working audio for VoiceOver and a real, up-to-date Safari — a Figment M-series Mac (from $95/month; physical plan, exact chip, RAM and macOS confirmed in the quote) is the practical fit. Figment's $29 virtual Intel macOS runs Safari and Accessibility Inspector, but has no audio and no GPU acceleration, so VoiceOver listening steps and some rendering-dependent focus checks are better done on the M-series plan.

WCAG 2.2 is the current W3C Recommendation, first published 5 October 2023 and revised 12 December 2024 — see the W3C WCAG 2.2 Recommendation for the authoritative text. It adds nine success criteria over WCAG 2.1. Several of them — Focus Not Obscured, Dragging Movements, Target Size, Accessible Authentication — have Safari-specific behaviour that automated tooling will not catch on its own. This checklist walks through 30 criteria with one Safari-scoped test method per row, one evidence screenshot per row, and a Status column you fill in and export as a dated PDF.

New WCAG 2.2 criteria relevant to Safari

The nine criteria added in WCAG 2.2, with the ones that need hands-on Safari testing marked ★:

CriterionLevelWhy it matters on Safari
2.4.11 Focus Not Obscured (Min) ★AASticky headers and cookie banners regularly obscure the focus ring
2.4.12 Focus Not Obscured (Enh)AAAStricter: the entire focused component must stay visible
2.4.13 Focus Appearance ★AAADefault Safari focus rings may not meet area and contrast thresholds
2.5.7 Dragging Movements ★AASortable lists, sliders and carousels often use drag-only pointer APIs
2.5.8 Target Size (Minimum) ★AAMeasure CSS box model in Web Inspector against the 24×24 CSS px rule
3.2.6 Consistent HelpAHelp mechanism position tested across several pages
3.3.7 Redundant EntryARepeat-step forms should not re-ask for the same data
3.3.8 Accessible Authentication (Min) ★AACAPTCHA alternatives; test with VoiceOver
3.3.9 Accessible Authentication (Enh)AAAStricter: no cognitive function test at all

Safari-specific test setup

Before you start the audit, configure Safari and macOS so keyboard tests behave correctly:

  1. Enable full keyboard access. In Safari Settings → Advanced, turn on "Press Tab to highlight each item on a webpage." Without this, Tab skips most non-form interactive elements in Safari.
  2. Turn on VoiceOver. ⌘F5. The VoiceOver modifier is VO = Control+Option. Open the Web Rotor with VO+U and use Left/Right arrows to switch between Headings, Links, Form Controls and Landmarks.
  3. Open Accessibility Inspector. Spotlight (⌘Space) → "Accessibility Inspector." Use the Audit tab for automated checks, the hover inspector for the accessibility tree, and the contrast tool for 1.4.3. Apple documents the tool at Accessibility Inspector.
  4. Open Web Inspector. Enable Develop menu in Safari Settings → Advanced, then Develop → Show Web Inspector → Elements. Use the box model readout for 2.5.8 Target Size and 2.4.13 Focus Appearance measurements.

Note on audio: VoiceOver speech is the primary evidence for Non-text Content (1.1.1), Link Purpose (2.4.4), Label in Name (2.5.3) and Accessible Authentication. Figment's $29 virtual Intel macOS has no audio device; if you use it for the audit, capture the VoiceOver caption panel in screenshots instead of relying on spoken output, or run those rows on an M-series plan.

The 30-point audit table

Fill the Status column with Pass / Fail / NA. ★ marks criteria new in WCAG 2.2.

IDLevelCriterionSafari test methodExpected resultScreenshotStatus
1.1.1ANon-text ContentVoiceOver on each image; VO+Right to walk; watch caption panelAlt text announced; decorative images silentevidence/1.1.1.png
1.3.1AInfo and RelationshipsVO+U → Headings; Accessibility Inspector hierarchySemantic roles correct; headings nested logicallyevidence/1.3.1.png
1.3.4AAOrientationSafari Responsive Design Mode → portrait and landscapeContent usable in both orientationsevidence/1.3.4.png
1.4.1AUse of ColorSystem Settings → Accessibility → Display → Colour Filters → GreyscaleNo information carried by colour aloneevidence/1.4.1.png
1.4.3AAContrast (Minimum)Accessibility Inspector → Audit tabNormal text ≥4.5:1; large text ≥3:1evidence/1.4.3.png
1.4.4AAResize Text⌘+ to 200% zoomNo text clipped or overlappingevidence/1.4.4.png
1.4.10AAReflowResponsive Design Mode → 320 CSS px wideNo horizontal scroll at 320 pxevidence/1.4.10.png
1.4.11AANon-text ContrastWeb Inspector: measure control vs backgroundUI component contrast ≥3:1evidence/1.4.11.png
1.4.12AAText SpacingInject bookmarklet: letter 0.12em, word 0.16em, line 1.5, paragraph 2emNo content clipped or hiddenevidence/1.4.12.png
1.4.13AAContent on Hover or FocusHover tooltip; press Esc; move pointer onto tooltipDismissible, hoverable, persistentevidence/1.4.13.png
2.1.1AKeyboardTab through all interactive elements; activate with Enter/SpaceOperable by keyboard aloneevidence/2.1.1.png
2.1.2ANo Keyboard TrapEnter modals; try Shift+Tab and EscFocus always escapableevidence/2.1.2.png
2.1.4ACharacter Key ShortcutsTest any single-character shortcutsCan be disabled or remappedevidence/2.1.4.png
2.4.1ABypass BlocksTab from first elementSkip link visible and functionalevidence/2.4.1.png
2.4.2APage TitledRead Safari tab title on each pageDescriptive, unique per pageevidence/2.4.2.png
2.4.3AFocus OrderTab across page; trace orderMatches visual/reading orderevidence/2.4.3.png
2.4.4ALink PurposeVO+U → Links rotor; read each in isolationEach link unambiguous out of contextevidence/2.4.4.png
2.4.6AAHeadings and LabelsVO+U → Headings; inspect form labelsHeadings meaningful; labels match controlsevidence/2.4.6.png
2.4.7AAFocus VisibleTab through pageVisible focus indicator on every elementevidence/2.4.7.png
2.4.11 ★AAFocus Not Obscured (Min)Tab near sticky headers and floating footersAt least part of focus visibleevidence/2.4.11.png
2.4.13 ★AAAFocus AppearanceWeb Inspector: measure outline area; contrast checkArea ≥ perimeter × 2px; contrast ≥3:1evidence/2.4.13.png
2.5.3ALabel in NameVoiceOver on labelled controlsAccessible name contains visible label textevidence/2.5.3.png
2.5.7 ★AADragging MovementsIdentify drag UIs; test single-pointer alternativeAlternative pointer path existsevidence/2.5.7.png
2.5.8 ★AATarget Size (Minimum)Web Inspector box model on each control≥24×24 CSS px or adequate spacingevidence/2.5.8.png
3.1.1ALanguage of PageView source; check <html lang>Correct BCP 47 tag; VoiceOver voice matchesevidence/3.1.1.png
3.2.6 ★AConsistent HelpCompare help mechanism on 3+ pagesSame relative order on each pageevidence/3.2.6.png
3.3.7 ★ARedundant EntryMulti-step form; revisit earlier stepPrior data auto-populated or not re-askedevidence/3.3.7.png
3.3.8 ★AAAccessible Authentication (Min)Attempt login; look for cognitive testAccessible alternative, or no CAPTCHAevidence/3.3.8.png
4.1.2AName, Role, ValueAccessibility Inspector hover on controlsCorrect role, state and nameevidence/4.1.2.png
4.1.3AAStatus MessagesTrigger toast/validation; listen with VoiceOverAnnounced without focus changeevidence/4.1.3.png

Capturing one evidence screenshot per criterion

Take a region screenshot (⌘⇧4) immediately after completing each test step. Name the file to match the Screenshot column (evidence/1.1.1.png, etc.) and store them in audit-YYYY-MM-DD/evidence/. Dated folders make cross-release comparison trivial:

diff -rq audit-2026-10-01/evidence audit-2026-11-10/evidence

For VoiceOver rows, enable the VoiceOver caption panel (VoiceOver Utility → General → Show captions) so spoken output is visible in the screenshot, not only audible.

Exporting the filled table as a dated PDF

Add a document header above the table in the Markdown file before export:

**Audit report:** WCAG 2.2 — Safari on macOS
**Date:** 2026-11-10
**Auditor:**
**Product version:**
**macOS / Safari version:**
**Scope:** [URL or component list]
**Conformance target:** WCAG 2.2 Level AA

Then produce a PDF. Either option works; pick what you already have:

# Option A: pandoc with a LaTeX engine
brew install pandoc basictex
pandoc audit-report.md \
  --from gfm \
  --pdf-engine=xelatex \
  -V geometry:margin=2cm \
  -o "Safari-WCAG22-Audit-$(date +%Y-%m-%d).pdf"

# Option B: print from Safari
# Render the Markdown in a viewer, then File → Print → Save as PDF.
# Set the Print dialog header/footer to include the date.

Picking the Mac: short price-and-fit comparison

Entry monthly prices as listed on each vendor's current pricing page (hardware is not identical across rows — read the quote before deciding):

OptionEntry priceWhat you get
Figment virtual Intel macOS$29/mo2 vCPU, 8 GiB RAM, 80 GiB disk; no audio, no GPU; browser-console access
Figment M-series (physical)from $95/moRequest a quote for exact chip, RAM, disk and macOS version
CloudMac M4, 16 GB / 256 GB$99.99/moMonthly; the 256 GB row shows Reserve now, 512 GB/1 TB are Fully reserved
CloudMac M4 annual$999/yr ≈ $83.25/mo$141/yr less than 12 × $95; 256 GB row the same reservation note
MacStadium M2.S$109/mo8 GB / 256 GB; support and network included; 99.99% uptime claim on page
MacStadium M4.S$149/mo16 GB / 256 GB

Two notes on this table so nobody has to re-derive them: $999 ÷ 12 = $83.25/month, and 12 × $95 − $999 = $141/year. CloudMac's annual is cheaper than Figment's unspecified M-series entry on an annual horizon; the gap narrows or reverses once you want the specific managed CI work Figment's $249 Managed Build Mac includes (one M-series Mac, CI setup, backups, monitoring, 30 minutes monthly support). For a one-off accessibility audit with no CI, the lowest cheap-and-correct option is often a single month on any of these — just confirm audio and live Safari before you commit, and read each vendor's tax, setup and term as shown in its own offer.

Running the audit on Figment

Install only Xcode (for Accessibility Inspector) and the browser under test. Disable all extensions. Pin the macOS and Safari version in your header block so successive audits are directly comparable. Screenshots taken on a machine with nothing else running capture the page state cleanly without stray windows leaking into the region capture.

Request a configuration at /mac-hosting/start or compare plans at /mac-hosting.


Subscribe for Figma design and website publishing guides.


Figment.so

Contact

Twitter

Website pricing

Compute index

About

Privacy

Terms