<!--
{
  "documentType" : "article",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/uiaccessibility-protocol",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "UIAccessibility"
}
-->

# UIAccessibility

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

## Discussion

The `UIAccessibility` informal protocol provides accessibility information about an app’s user interface elements. Assistive apps, such as VoiceOver, convey this information to users with disabilities to help them use the app.

Standard UIKit controls and views implement the `UIAccessibility` methods and are accessible to assistive apps by default. This means that if your app uses only standard controls and views, such as [`UIButton`](/documentation/UIKit/UIButton), [`UISegmentedControl`](/documentation/UIKit/UISegmentedControl), and [`UITableView`](/documentation/UIKit/UITableView), you need only supply app-specific details when the default values are incomplete. You can do this by setting these values in Interface Builder or by setting the properties in this informal protocol.

The [`UIAccessibilityElement`](/documentation/UIKit/UIAccessibilityElement) class, which represents custom user interface objects, also implements the `UIAccessibility` informal protocol. If you create a completely custom [UIView](https://developer.apple.com/library/archive/releasenotes/iPhone/RN-iPhoneSDK/index.html#//apple_ref/doc/uid/TP40007428-CH1-SW18) subclass, you might need to create an instance of [`UIAccessibilityElement`](/documentation/UIKit/UIAccessibilityElement) to represent it. In this case, you’d support all the `UIAccessibility` properties to correctly set and return the accessibility element’s properties.

## Topics

### Supporting basic accessibility

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/isAccessibilityElement>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityLabel>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityValue>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityHint>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityTraits>

[`UIAccessibilityTraits`](/documentation/UIKit/UIAccessibilityTraits)

Constants that describe how an accessibility element behaves.

### Defining accessibility text and language

[Speech attributes for attributed strings](/documentation/UIKit/speech-attributes-for-attributed-strings)

Apply attributes to text in an attributed string to modify the pronunciation of that text.

[Text attributes for attributed strings](/documentation/UIKit/text-attributes-for-attributed-strings)

Apply attributes to text in an attributed string to convey extra information about the text.

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityHeaderElements>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityAttributedHint>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityAttributedLabel>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityLanguage>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityTextualContext>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityUserInputLabels>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityAttributedUserInputLabels>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityAttributedValue>

### Configuring behavior

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityCustomRotors>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityElementsHidden>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityRespondsToUserInteraction>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityViewIsModal>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/shouldGroupAccessibilityChildren>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityDirectTouchOptions>

[`UIAccessibility.DirectTouchOptions`](/documentation/UIKit/UIAccessibility/DirectTouchOptions)

Constants that configure how VoiceOver produces audio for direct touch areas.

### Handling notifications

[Notification names](/documentation/UIKit/notification-names)

The names of notifications that the accessibility system generates.

[Notification dictionary keys](/documentation/UIKit/notification-dictionary-keys)

Handle notifications with keys in the user info dictionary.

[`UIAccessibility.Notification`](/documentation/UIKit/UIAccessibility/Notification)

An accessibility notification that an app can send.

[`post(notification:argument:)`](/documentation/UIKit/UIAccessibility/post(notification:argument:))

Posts a notification to assistive apps.

### Navigating elements

  <doc://com.apple.documentation/documentation/UIKit/uiaccessibilitycontainer>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityActivationPoint>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityFocusedUIElement>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityFrame>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityHitTest(_:)>

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityNavigationStyle>

[`UIAccessibilityNavigationStyle`](/documentation/UIKit/UIAccessibilityNavigationStyle)

Constants that describe how to navigate an object’s elements with an assistive app.

  <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class/accessibilityPath>

[`zoomFocusChanged(zoomType:toFrame:in:)`](/documentation/UIKit/UIAccessibility/zoomFocusChanged(zoomType:toFrame:in:))

Notifies the system when the app’s focus changes to a new location.

[`UIAccessibility.ZoomType`](/documentation/UIKit/UIAccessibility/ZoomType)

The types of system Zoom that can be in effect.

[`assistiveTouch`](/documentation/UIKit/UIGuidedAccessAccessibilityFeature/assistiveTouch)

The AssistiveTouch accessibility feature.

### Supporting types

[`AXArrayReturnBlock`](/documentation/UIKit/AXArrayReturnBlock)

[`AXAttributedStringArrayReturnBlock`](/documentation/UIKit/AXAttributedStringArrayReturnBlock)

[`AXAttributedStringReturnBlock`](/documentation/UIKit/AXAttributedStringReturnBlock)

[`AXBoolReturnBlock`](/documentation/UIKit/AXBoolReturnBlock)

[`AXContainerTypeReturnBlock`](/documentation/UIKit/AXContainerTypeReturnBlock)

[`AXCustomActionsReturnBlock`](/documentation/UIKit/AXCustomActionsReturnBlock)

[`AXCustomRotorsReturnBlock`](/documentation/UIKit/AXCustomRotorsReturnBlock)

[`AXNavigationStyleReturnBlock`](/documentation/UIKit/AXNavigationStyleReturnBlock)

[`AXObjectReturnBlock`](/documentation/UIKit/AXObjectReturnBlock)

[`AXPathReturnBlock`](/documentation/UIKit/AXPathReturnBlock)

[`AXPointReturnBlock`](/documentation/UIKit/AXPointReturnBlock)

[`AXRectReturnBlock`](/documentation/UIKit/AXRectReturnBlock)

[`AXStringArrayReturnBlock`](/documentation/UIKit/AXStringArrayReturnBlock)

[`AXStringReturnBlock`](/documentation/UIKit/AXStringReturnBlock)

[`AXTextualContextReturnBlock`](/documentation/UIKit/AXTextualContextReturnBlock)

[`AXTraitsReturnBlock`](/documentation/UIKit/AXTraitsReturnBlock)

[`AXUITextInputReturnBlock`](/documentation/UIKit/AXUITextInputReturnBlock)

[`AXVoidReturnBlock`](/documentation/UIKit/AXVoidReturnBlock)

[`UIAccessibility`](/documentation/UIKit/UIAccessibility)

A namespace for accessibility symbols for UIKit apps.

## See Also

  <doc://com.apple.documentation/documentation/Accessibility>

[Accessibility for UIKit](/documentation/UIKit/accessibility-for-uikit)

Make your UIKit apps accessible to everyone who uses iOS and tvOS.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)