Logo for tanaschita.com

Overview on Accessibility Nutrition Labels for iOS development

Get an overview of what Accessibility Nutrition Labels are and how to support them.

28 Jul 2025 · 5 min read

At WWDC25, Apple introduced Accessibility Nutrition Labels. These labels appear on the App Store and give users a summary of which accessibility features an app supports.

As developers, we can declare if our app supports specific accessibility features such as VoiceOver, Dynamic Type etc. In this article, we'll go through exisiting Accessibility Nutrition Labels and how to support them.

Let's jump in.

Sponsorship logo
Architecture & Design Patterns for iOS
This book is a practical guide to essential architectural principles and design patterns for iOS development. It covers strategies for building maintainable apps with Swift and SwiftUI, including dependency injection, navigation, common patterns, and modularization.
LEARN MORE

VoiceOver

VoiceOver is a screen reader, which helps users navigate through the app without seeing the screen. For native UI elements, SwiftUI already provides VoiceOver support out of the box. But in many cases, we still need some manual work to improve the Voiceover experience, for example by providing appropriate accessibilityLabels and traits for custom controls, grouping views, and more.

To learn more about supporting Voiceover accessibility, check out this article on supporting VoiceOver in SwiftUI.

Voice Control

Voice Control is an iOS accessibility feature that allows users to control their device and interact with apps entirely by voice. It's especially helpful for users with reduced mobility or dexterity, enabling them to navigate, tap buttons, scroll, and dictate text using only their voice.

When Voice Control is enabled, users can speak commands to interact with UI elements, and the system overlays numbers or names on tappable elements that users can reference in their commands. Most of the work to make an app accessible to Voice Control overlaps with VoiceOver support, ensuring all interactive elements have clear labels and are reachable through accessibility navigation.

Larger Text

On iOS devices, users can increase text size globally in the devices settings to make texts more visible and comfortable to read. We can support this in our app by supporting Dynamic Type and optimize our apps to be readable with large size settings.

To learn more, check out this article on how to support Dynamic Type in SwiftUI.

Dark Interface

Dark Interface support helps users with light sensitivity to reduce discomfort when using an app. If our app isn’t dark by default for all common tasks, we can support this feature by adding Dark Mode support.

To learn more, check out this article on how to support dark mode in SwiftUI.

Differentiate Without Color Alone

Supporting this feature ensures, that the app doesn't exclude users who may not be able to perceive all colors. While colors are important for a good UX experience, to include more users, we can add additional methods to communicate something to a user, like text and icons.

The best way to test if our app supports this feature is by activating the Grey Scale Filter on an iOS Device in settings Accessibility -> Display & Text Size -> Color Filters -> Grayscale.

Sufficient Contrast

The goal of this feature is to support low-vision users. We can use the Color Contrast Calculator tool which can be opened through Xcodes's Accessibiltiy Inspector and check if our values pass the contrast test.

To learn more, check out this article on supporting sufficient contrast accessibility with Xcode's Color Contrast Calculator.

Reduced Motion

The goal of supporting the Reduced Motion setting is to support users who are sensitive to visual motion. Motion sensitivity can cause discomfort such as nausea, dizziness, or headaches, especially when animations include scaling, spinning, or rapid movement.

Users can enable this setting in the iOS Settings app under Accessibility → Motion → Reduce Motion. SwiftUI provides the accessibilityReduceMotion environment value, which we can use to check whether Reduced Motion is enabled.

To learn more, check out this article on supporting Reduced Motion accessibility setting in SwiftUI.

Captions

Captions provide a text-based alternative to spoken content, supporting users who are deaf or hard of hearing. To support this feature, we can ensure that our video content includes caption tracks, for example by using .srt files or embedding caption metadata directly in the media and reflect users settings.

On iOS, system video players like AVPlayerViewController automatically support captions when available in the media file.

Users can enable system-wide captions in the iOS Settings under AccessibilitySubtitles & Captioning. To check if the user has enabled captions we can use UIAccessibility.isClosedCaptioningEnabled. To respond to changes at runtime, we can observe UIAccessibility.closedCaptioningStatusDidChangeNotification via NotificationCenter. As of iOS 18, there is no SwiftUI environment value for this setting.

Audio Descriptions

Audio descriptions provide spoken narration of visual content for users who are blind or have low vision. These descriptions typically explain important visual information, such as actions, settings, or scene changes.

To support this feature, we can include separate audio tracks with descriptive narration, and ensure our media player allows users to select those tracks if available. Apple's AVPlayer supports audio description tracks out of the box, provided they are embedded in the media asset.

Sponsorship logo
Preparing for a technical iOS job interview
Preparing for a technical iOS Job Interview with over 300 questions & answers. Covering Swift & Objective-C, SwiftUI & UIKit, Combine, HTTP Networking, iOS File System, Core Data, Concurrency with async/await, Security, Automated Testing, Dependency Management, AI & Machine Learning and more.
LEARN MORE
Sponsorship logo
Architecture & Design Patterns for iOS
This book is a practical guide to essential architectural principles and design patterns for iOS development. It covers strategies for building maintainable apps with Swift and SwiftUI, including dependency injection, navigation, common patterns, and modularization.
LEARN MORE
Sponsorship logo
Become a sponsor of tanaschita.com
By publishing an article on different iOS topics every week, tanaschita.com is constantly growing in the developer community and may provide a great audience for you as a sponsor.
CLICK TO LEARN MORE

Newsletter

Image of a reading marmot
Subscribe

Like to support my work?

Say hi

Related tags

Articles with related topics

accessibility

swiftui

ios

Supporting Reduced Motion accessibility setting in SwiftUI

Learn how to respect system settings for reduced motion to improve usability for motion-sensitive users.

14 Jul 2025 · 3 min read

Latest articles and tips

© 2026 tanaschita.com

Privacy policy

Impressum