Accessibility Techniques

Accessibility Techniques/Demos

Free · Designed for iPad. Not verified for macOS.

Learn how to build accessible iOS apps by seeing the same component done right and done wrong, side by side. Accessibility Techniques is a working reference of 89 SwiftUI techniques. Every one ships a good and a bad example you can test yourself with VoiceOver turned on, so you hear the difference a proper accessibility label makes and what breaks when focus is not managed. Each technique maps to the WCAG 2.2 success criteria it satisfies. What's inside • 89 techniques in a searchable, alphabetical index • Good and bad examples side by side, each with a Details note explaining exactly why it passes or fails • Coverage of VoiceOver, Voice Control, Dynamic Type, Dark Mode, Reduce Motion, Increase Contrast, Smart Invert, and more • Written documentation for every technique, linked to the relevant WCAG criteria and Apple's developer docs • A companion watchOS app Who it's for Developers, designers, and QA who need to settle a question quickly, verify a real VoiceOver announcement before shipping, or show a teammate why a pattern fails. Open source The full SwiftUI source is on GitHub, so you can read how each example is built and copy what you need. The project also includes a11y-check, a free static analysis tool that scans your own Swift code for accessibility issues — 43 rules across 23 WCAG 2.2 criteria. https://github.com/cvs-health/ios-swiftui-accessibility-techniques Issues, suggestions, and contributions welcome.

  • This app has not received enough ratings or reviews to display an overview.

New technique pages • Accessibility Custom Content — attach extra details to an element so VoiceOver can offer them under the More Content rotor, without lengthening the element's name. Demonstrated with a seat map where a seat's window, middle, or aisle position exists only in the layout. • Web View Dynamic Type — make text inside a WKWebView scale with Dynamic Type. • Motion Actuation — offer an alternative to a shake gesture for people who cannot shake the device. New examples on existing pages • Drag & Drop — accessible .draggable() and .dropDestination(), plus what breaks without an accessibility action. • Pickers — avoiding unexpected context changes when a control's value changes. • Videos — why auto-playing audio is a barrier. • Alerts — what goes wrong when focus is not returned to the trigger after dismissal. • Accessibility Sort Priority — how misused sort priority reorders what VoiceOver reads. Also in this release • New Explore by Touch prototype reproducing a tab bar that VoiceOver cannot reach by touch, with an in-page breakdown of the three causes. • Tabs now set a unique navigation bar title per tab. • Fixed sample video URLs that had stopped loading. • The Simulator's Hardware > Shake menu now triggers the Motion Actuation demo.

The developer, PaulJAdam.com, indicated that the app’s privacy practices may include handling of data as described below. For more information, see the developer’s privacy policy .

  • Data Not Collected

    The developer does not collect any data from this app.

    Privacy practices may vary based, for example, on the features you use or your age. Learn More

    The developer indicated that this app supports the following accessibility features. Learn More

    • Supported Features

      • VoiceOver

      • Voice Control

      • Larger Text

      • Dark Interface

      • Differentiate Without Colour Alone

      • Sufficient Contrast

      • Reduced Motion

      • Captions

      • Audio Descriptions

    Provider
    • Paul Adam
    Size
    • 7.7 MB
    Category
    • Developer Tools
    Compatibility
    Requires iOS 17 or later.
    • iPhone
      Requires iOS 17 or later.
    • iPad
      Requires iPadOS 17 or later.
    • Mac
      Requires macOS 14.0 or later and a Mac with Apple M1 chip or later.
    • Apple Vision
      Requires visionOS 1.0 or later.
    • Apple Watch
      Requires watchOS 10.6 or later.
    Languages
    • English
    Age Rating
    4+
    Copyright
    • © 2023-2026 CVS Health and/or one of its affiliates