Accessibility for AppKit
Make your AppKit apps accessible to everyone who uses macOS.
Overview
Making your app accessible means making it usable by everyone. By designing your app with accessibility in mind, you make it possible for everyone to enjoy your app. For more information, see Accessibility.
AppKit controls and views come with built-in accessibility, providing an accessible user experience by default. Typically, you don’t need to do extra work to enable the standard accessibility features.
In some cases, you might want to modify the default values to better represent your app, to provide additional context, or to modify the user’s flow through the app. AppKit makes these customizations straightforward, involving a few lines of code or Interface Builder adjustments as you define your user interface. For more information about customizing accessibility for AppKit elements, see NSAccessibilityProtocol.
If your app contains custom user interface elements that subclass NSView, enhance the accessibility of those elements using the role-based protocols in Custom Controls. If your app contains custom user interface elements that don’t inherit from NSView or one of the other AppKit classes with built-in accessibility, make those elements accessible by subclassing NSAccessibilityElement.
If you build your app with SwiftUI, see Accessibility modifiers.
Topics
Essentials
AppKit Elements
Custom View Subclasses
Custom Elements
Accessibility Types
NSAccessibility.ActionNSAccessibility.AnnotationAttributeKeyNSAccessibilityAnnotationPositionNSAccessibility.AttributeNSAccessibility.FontAttributeKeyNSAccessibilityOrientationNSAccessibility.OrientationValueNSAccessibility.ParameterizedAttributeNSAccessibility.RoleNSAccessibilityRulerMarkerTypeNSAccessibility.RulerMarkerTypeValueNSAccessibility.RulerUnitValueNSAccessibility.SortDirectionValueNSAccessibilitySortDirectionNSAccessibility.SubroleNSAccessibilityUnits