Cash App Nick Entin May 20, 2020

Making iOS Accessibility Testing Easy

Article Summary

Cash App's engineering team just open-sourced their solution to one of iOS development's most frustrating problems: testing accessibility without the manual grind.

Traditional accessibility testing on iOS is broken. Unit tests give false positives, UI tests don't reflect real user behavior, and manual testing is inconsistent. Cash App built AccessibilitySnapshot to fix this with snapshot testing principles.

Key Takeaways

Critical Insight

Cash App turned accessibility testing from a manual, time-consuming process into automated snapshot tests that catch regressions before they ship.

The article reveals why accessibility APIs behave so counterintuitively and how that shaped their testing approach.

About This Article

Problem

iOS accessibility testing has real problems. Unit tests give false positives because accessibility depends on where views sit in the hierarchy. UI tests also interact with apps differently than actual users do, so they don't reliably measure real accessibility.

Solution

Nick Entin's team at Cash App built AccessibilitySnapshot. It applies snapshot testing to accessibility by creating visual snapshots that show accessibility elements and list descriptions in the order VoiceOver reads them.

Impact

The framework catches accessibility regressions in existing test suites right away. It speeds up iteration cycles because accessibility APIs can be confusing. Changing properties doesn't always give you the results you expect, and this tool cuts through that confusion.