DEV.co
Open-Source Testing · cashapp

AccessibilitySnapshot

AccessibilitySnapshot is a Swift testing framework that lets iOS developers add regression tests for app accessibility by snapshotting the accessibility hierarchy. It integrates with existing snapshot testing frameworks (SnapshotTesting or iOSSnapshotTestCase) to catch accessibility regressions before release.

Source: GitHub — github.com/cashapp/AccessibilitySnapshot
648
GitHub stars
84
Forks
Swift
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorycashapp/AccessibilitySnapshot
Ownercashapp
Primary languageSwift
LicenseApache-2.0 — OSI-approved
Stars648
Forks84
Open issues30
Latest release0.11.0 (2026-05-06)
Last updated2026-07-07
Sourcehttps://github.com/cashapp/AccessibilitySnapshot

What AccessibilitySnapshot is

AccessibilitySnapshot provides snapshot-based regression testing for iOS accessibility hierarchies, supporting both VoiceOver, Switch Control, and Voice Control scenarios. It offers pluggable backends (SnapshotTesting, iOSSnapshotTestCase), visual indicators for activation points, and both Swift and Objective-C APIs.

Quickstart

Get the AccessibilitySnapshot source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/cashapp/AccessibilitySnapshot.gitcd AccessibilitySnapshot# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Accessibility Regression Prevention in Continuous Integration

Integrate into CI/CD pipelines to automatically detect when accessibility properties (labels, hints, traits, activation points) change unexpectedly across app updates, preventing accessibility regressions from reaching production.

Accessibility Compliance Validation for SwiftUI and UIKit Apps

Enable product teams to verify accessibility conformance across both legacy UIKit and modern SwiftUI codebases, ensuring consistent VoiceOver and Switch Control support as features are added or refactored.

Screen Reader and Assistive Technology Testing at Scale

Provide developers with a low-friction way to test accessibility without manual testing of every screen reader scenario; captures the full accessibility tree, reducing reliance on manual QA for accessibility validation.

Implementation considerations

  • Requires Xcode 13.2.1+ and iOS 13.0+ minimum deployment target; verify app baseline compatibility before adoption.
  • Snapshot files must be committed to source control; establish team conventions for diff review, update cadence, and false-positive triage to avoid snapshot-fatigue.
  • Integration depends on chosen snapshotting backend (SnapshotTesting or iOSSnapshotTestCase); default backend has no transitive dependencies, but switching to FBSnapshotTestCase requires additional setup.
  • Activation point visualization requires manual interpretation; snapshots show expected activation areas but do not validate gesture recognition or touch response behavior at runtime.
  • Test target must have a host application; cannot run in library-only test contexts, limiting some modularization strategies.

When to avoid it — and what to weigh

  • Android or Cross-Platform Mobile Development — AccessibilitySnapshot is iOS-only (Swift/Objective-C). Android apps or cross-platform projects (React Native, Flutter) requiring unified accessibility testing need alternative tools.
  • Runtime Accessibility Performance Profiling Required — This framework focuses on hierarchy regression testing, not runtime performance metrics or accessibility event timing. If you need performance profiling of accessibility systems, consider supplementary tools.
  • Manual Visual Accessibility Inspection Workflows — AccessibilitySnapshot automates snapshot comparison but does not replace manual inspection by accessibility specialists or users with disabilities. Teams expecting fully automated WCAG/ADAAG compliance should combine this with additional review.
  • Projects Not Using Snapshot Testing Infrastructure — Requires pre-existing snapshot testing setup (SnapshotTesting or iOSSnapshotTestCase). If your test suite does not use snapshot testing, onboarding friction increases significantly.

License & commercial use

Apache License 2.0 (Apache-2.0): permissive OSI-approved license permitting commercial use, modification, and distribution with attribution. No GPL-style copyleft or commercial license required.

Apache 2.0 is a permissive, OSI-approved license that explicitly permits commercial use for both proprietary and open-source projects, with no license fee or separate commercial agreement required. However, you must retain Apache 2.0 license notices and disclaimers in derivative works. Review the full Apache 2.0 text for indemnification and warranty disclaimers applicable to your use case.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitGood
Assessment confidenceHigh
Security considerations

Snapshot files stored in source control may contain sensitive accessibility metadata (e.g., field labels, hints from internal or restricted-access screens). Teams handling PII or regulated data should review snapshot content before committing. Framework runs within test host application context; inherits platform sandbox and does not introduce new attack surface. No known security advisories reported.

Alternatives to consider

XCUITest with Accessibility Assertions

Built into Xcode; provides query-based accessibility testing without additional dependencies. Trade-off: more verbose assertion code, slower execution, less visual feedback than snapshots.

Playbook (PlaybookAccessibilitySnapshot)

Component-driven testing approach with native AccessibilitySnapshot support; better for design systems and multi-variant testing. Trade-off: requires adoption of Playbook framework, not a retrofit to existing test suites.

Manual Accessibility Audits with Screen Readers

Gold-standard for comprehensive accessibility validation using actual assistive technology. Trade-off: time-intensive, not automatable in CI/CD, requires specialized expertise.

Software development agency

Build on AccessibilitySnapshot with DEV.co software developers

AccessibilitySnapshot integrates with your existing test infrastructure to catch accessibility regressions automatically. Learn how to add accessible app testing to your CI/CD pipeline.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

AccessibilitySnapshot FAQ

Can I use AccessibilitySnapshot without SnapshotTesting?
Yes. AccessibilitySnapshot supports two backends: SnapshotTesting (default) and iOSSnapshotTestCase (FBSnapshotTestCase). You can also use AccessibilitySnapshotCore alone for custom snapshotting logic. Choose the backend that matches your existing test infrastructure.
Does AccessibilitySnapshot test real assistive technology (VoiceOver, Switch Control)?
No. AccessibilitySnapshot snapshots the accessibility hierarchy (properties like label, hint, trait, activation point) that assistive technologies would read. It does not simulate or run actual VoiceOver or Switch Control interactions. Manual testing with real assistive technology is still required for comprehensive validation.
What happens when I update my app and accessibility properties change?
Snapshot comparisons will fail, and you will be prompted to review and approve the changes. If changes are intentional, re-record the snapshot; if unintentional, fix the accessibility properties. This workflow is similar to visual snapshot testing.
Can I use AccessibilitySnapshot in production code or only tests?
AccessibilitySnapshot is test-only. It depends on XCTest and is designed for test targets with host applications. It cannot be linked into production app binaries.

Work with a software development agency

DEV.co helps companies turn open-source tools like AccessibilitySnapshot into production software. Our software development services cover the full lifecycle — architecture, web development, integration, and maintenance — delivered by software developers and web developers who ship. Engage our software development agency to implement or customize it for your open-source testing stack.

Strengthen Your iOS Accessibility Testing

AccessibilitySnapshot integrates with your existing test infrastructure to catch accessibility regressions automatically. Learn how to add accessible app testing to your CI/CD pipeline.