Files
antigravity-skills-reference/skills/hig-technologies/references/voiceover.md

10 KiB
Raw Blame History

title: "VoiceOver | Apple Developer Documentation" source: https://developer.apple.com/design/human-interface-guidelines/voiceover # VoiceOver VoiceOver is a screen reader that lets people experience your apps interface without needing to see the screen. A sketch of the VoiceOver icon. The image is overlaid with rectangular and circular grid lines and is tinted blue to subtly reflect the blue in the original six-color Apple logo. By supporting VoiceOver, you help people who are blind or have low vision access information in your app and navigate its interface and content when they cant see the display. VoiceOver is supported in apps and games built for Apple platforms. Its also supported in apps and games developed in Unity using Apples Unity plug-ins. For related guidance, see Accessibility. ## Descriptions You inform VoiceOver about your apps content by providing alternative text that explains your apps interface and the content it displays. Provide alternative labels for all key interface elements. VoiceOver uses alternative labels (which arent visible onscreen) to audibly describe your apps interface. System-provided controls have generic labels by default, but you should provide more descriptive labels that convey your apps functionality. Add labels to any custom elements your app defines. Be sure to keep your descriptions up-to-date as your apps interface and content change. For developer guidance, see Accessibility modifiers. Describe meaningful images. If you dont describe key images in your apps content, people cant use VoiceOver to fully experience them within your app. Because VoiceOver helps people understand the interface surrounding images too, such as nearby captions, describe only the information the image itself conveys. Make charts and other infographics fully accessible. Provide a concise description of each infographic that explains what it conveys. If people can interact with the infographic to get more or different information, make these interactions available to people using VoiceOver, too. The accessibility APIs offer ways to represent custom interactive elements so that assistive technologies can help people use them. For guidance, see Charts. Exclude purely decorative images from VoiceOver. Its unnecessary to describe images that are decorative and dont convey useful or actionable information. Excluding these images shows respect for peoples time and reduces cognitive load when they use VoiceOver. For developer guidance, see accessibilityHidden(_:), accessibilityElement, and isAccessibilityElement. ## Navigation Use titles and headings to help people navigate your information hierarchy. The title is the first information someone receives from an assistive technology when arriving on a page or screen in your app. Offer unique titles that succinctly describe each pages content and purpose. Likewise, use accurate section headings that help people build a mental model of each pages information hierarchy. Specify how elements are grouped, ordered, or linked. Proximity, alignment, and other visible contextual cues help sighted people perceive the relationships between elements. Examine your app for places where relationships among elements are visual only. Then, describe these relationships to VoiceOver. VoiceOver reads elements in the same order people read content in the their active language and locale. For example, in US English, this is top-to-bottom, left-to-right. In the ungrouped example below, VoiceOver describes each image before moving on to the captions. In the grouped example, VoiceOver describes each image with its respective caption. An illustration of the top portion of an iPhone. The UI onscreen shows two images. On the left is a basket of mangoes, and on the right is a basket of artichokes. There are captions beneath the images that read 'Mangoes come from trees that belong to the genus Mangifera' and 'Artichokes come from a variety of a species of thistle.' The images and captions are all contained within a single VoiceOver frame. Ungrouped related elements make it hard for VoiceOver to accurately describe the UI. An X in a circle to indicate incorrect usage. An illustration of the top portion of an iPhone. The UI onscreen shows two images. On the left is a basket of mangoes, and on the right is a basket of artichokes. There are captions beneath the images that read 'Mangoes come from trees that belong to the genus Mangifera' and 'Artichokes come from a variety of a species of thistle.' Just the image of mangoes and its caption are contained within a single VoiceOver frame. Grouped related elements help VoiceOver accurately describe the UI. A checkmark in a circle to indicate correct usage. For developer guidance, see shouldGroupAccessibilityChildren. Inform VoiceOver when visible content or layout changes occur. People may find an unexpected content or layout change confusing because it means their mental map of the content is no longer accurate. Its crucial to report visible changes so VoiceOver and other assistive technologies can help people update their understanding of the content. For developer guidance, see AccessibilityNotification. Support the VoiceOver rotor when possible. People can use an interface element called the VoiceOver rotor to navigate a document or webpage by headings, links, and other content types. You can help people navigate content in your app by identifying these elements to the rotor. The rotor can also bring up the braille keyboard. For developer guidance, see AccessibilityRotorEntry (SwiftUI), UIAccessibilityCustomRotor (UIKit), and NSAccessibilityCustomRotor (AppKit). ## Platform considerations No additional considerations for iOS, iPadOS, macOS, tvOS, or watchOS. ### visionOS Be mindful that custom gestures arent always accessible. When VoiceOver is turned on in visionOS, apps and games that define custom gestures dont receive hand input by default. This ensures people can explore the interface using their voice, without an app responding to hand input at the same time. A person can opt out of this behavior by enabling Direct Gesture mode, which disables standard VoiceOver gestures and lets apps process hand input directly. For developer guidance, see Improving accessibility support in your visionOS app. ## Resources #### Related Accessibility Inclusion #### Developer documentation Accessibility VoiceOver Supporting VoiceOver in your app #### Videos Writing Great Accessibility Labels Tailor the VoiceOver experience in your data-rich apps VoiceOver efficiency with custom rotors ## Change log Date| Changes
---|---
March 7, 2025| New page.