Make your app more accessible to users with disabilities.


First Steps


A set of methods that provide accessibility information about views and controls in an app's user interface.


A set of methods that view subclasses use to make subcomponents accessible as separate elements.



An informal protocol that provides a way to find out whether an assistive technology, such as VoiceOver, is focused on an accessible element.

protocol UIAccessibilityIdentification

Methods that associate a unique identifier with elements in your user interface.

protocol UIAccessibilityReadingContent

Methods to implement on an object that represents content that is intended to be read by users, such as a book or an article.

protocol UIAccessibilityContentSizeCategoryImageAdjusting

Methods to determine when to adjust images for different content size categories.




A set of methods that accessibility elements can use to support specific actions.

class UIAccessibilityCustomAction

A custom action to be performed on an accessible object.


class UIAccessibilityElement

Encapsulates information about an item that should be accessible to users with disabilities, but that isn’t accessible by default.

protocol UIScrollViewAccessibilityDelegate

A set of methods you can implement to provide accessibility information for a scroll view.

protocol UIPickerViewAccessibilityDelegate

A set of methods you can implement to provide accessibility information for individual components of a picker view.


protocol UIAccessibilityContainerDataTable

Methods that convey information about the contents of a table.

protocol UIAccessibilityContainerDataTableCell

Methods that provide the location of a cell in a table.

enum UIAccessibilityContainerType

Constants indicating the type of content stored in a data-based container.



class UIAccessibilityCustomRotor

A context-sensitive function that helps Voice Over users find the next instance of a related element.

class UIAccessibilityCustomRotorItemResult

A target element referenced by a custom rotor.

class UIAccessibilityCustomRotorSearchPredicate

The search parameters that help determine the next matching custom rotor item result.

Drag and Drop Support

class UIAccessibilityLocationDescriptor

An accessibility descriptor for a specific geometric point of interest within a view, for use by assistive technologies.



Notification Names

Contains the names of notifications generated by the accessibility system.


func UIAccessibilityConvertFrameToScreenCoordinates(CGRect, UIView)

Converts the specified rectangle from view coordinates to screen coordinates.

func UIAccessibilityConvertPathToScreenCoordinates(UIBezierPath, UIView)

Converts the specified path object to screen coordinates and returns a new path object with the results.

Convenience Functions

func UIAccessibilityFocusedElement(String?)

Returns the element that is currently focused by the specified assistive technology.

func UIAccessibilityHearingDevicePairedEar()

Returns the current pairing status of MFi hearing aids.

struct UIAccessibilityHearingDeviceEar

Constants that specify how a hearing device is being used.

func UIAccessibilityRegisterGestureConflictWithZoom()

Warns users that application-specific gestures conflict with the system-defined Zoom accessibility gestures.

func UIAccessibilityRequestGuidedAccessSession(Bool, (Bool) -> Void)

Transitions the app to or from Single App mode asynchronously.

func UIAccessibilityZoomFocusChanged(UIAccessibilityZoomType, CGRect, UIView)

Notifies the system that the app’s focus has changed to a new location.


func UIAccessibilityIsAssistiveTouchRunning()

Returns a Boolean value indicating whether the system preference for AssistiveTouch is enabled.

func UIAccessibilityIsVoiceOverRunning()

Returns a Boolean value indicating whether VoiceOver is running.

func UIAccessibilityIsSwitchControlRunning()

Returns a Boolean value indicating whether Switch Control is enabled.

func UIAccessibilityIsShakeToUndoEnabled()

Returns a Boolean value indicating whether the system preference for Shake to Undo is enabled.

func UIAccessibilityIsClosedCaptioningEnabled()

Returns a Boolean value indicating whether closed captioning is enabled.

func UIAccessibilityIsBoldTextEnabled()

Returns a Boolean value indicating whether bold text is enabled.

func UIAccessibilityDarkerSystemColorsEnabled()

Returns a Boolean value indicating whether darken colors is enabled.

func UIAccessibilityIsGrayscaleEnabled()

Returns a Boolean value indicating whether grayscale is enabled.

func UIAccessibilityIsGuidedAccessEnabled()

Returns a Boolean value indicating whether the app is running in Guided Access mode.

func UIAccessibilityIsInvertColorsEnabled()

Returns a Boolean value indicating whether inverted colors is enabled.

func UIAccessibilityIsMonoAudioEnabled()

Returns a Boolean value indicating whether system audio is set to mono.

func UIAccessibilityIsReduceMotionEnabled()

Returns a Boolean value indicating whether reduce motion is enabled.

func UIAccessibilityIsReduceTransparencyEnabled()

Returns a Boolean value indicating whether reduce transparency is enabled.

func UIAccessibilityIsSpeakScreenEnabled()

Returns a Boolean value indicating whether speaking the screen is enabled.

func UIAccessibilityIsSpeakSelectionEnabled()

Returns a Boolean value indicating whether speaking the selection is enabled.

See Also

User Interface

Views and Controls

Present your content onscreen and define the interactions allowed with that content.

View Management

Manage your interface using view controllers and facilitate navigation around different screens of content.

System View Controllers

Use the built-in UIKit view controllers to pick images, edit videos, share content, print files, and much more.

Drag and Drop

Bring drag and drop to your app by using interaction APIs with your views.

Animation and Haptics

Provide feedback to users using view-based animations and haptics.

Windows and Screens

Provide a container for your view hierarchies and other content.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software