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


A view might contain icons or drawn text that, to end users, appear and function as separate items. But because these components are not implemented as instances of UIView, they are not automatically accessible to users with disabilities. Therefore, such a container view should implement the UIAccessibilityContainer methods to supply accessibility information about these components to assistive apps such as VoiceOver.

A view that implements the UIAccessibilityContainer informal protocol uses the UIAccessibilityElement method init(accessibilityContainer:) to create an accessibility element to represent each non-view component that needs to be accessible to users with disabilities. Note, however, that the container view itself is not an accessibility element because users interact with the contents, not with the container. This means that a container view that implements the UIAccessibilityContainer methods must set to false the isAccessibilityElement property of the UIAccessibility informal protocol.

The order of accessibility elements within the container view should be the same as the order in which the represented elements are presented to the user, from top-left to bottom-right.


Providing Information About Accessibility Elements

func accessibilityElementCount() -> Int

Returns the number of accessibility elements in the container.

func accessibilityElement(at: Int) -> Any?

Returns the accessibility element at the specified index.

func index(ofAccessibilityElement: Any) -> Int

Returns the index of the specified accessibility element.

var accessibilityElements: [Any]?

An array of the accessibility elements in the container.

See Also



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

Supporting VoiceOver in Your App

Learn how to make your iOS app more accessible to users who are blind or have low vision by adding VoiceOver support.