---
title: Accessibility for AppKit
framework: appkit
role: collectionGroup
role_heading: API Collection
path: appkit/accessibility-for-appkit
---

# Accessibility for AppKit

Make your AppKit apps accessible to everyone who uses macOS.

## Overview

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

- [Integrating accessibility into your app](accessibility/integrating-accessibility-into-your-app.md)
- [Accessibility design for Mac Catalyst](accessibility/accessibility_design_for_mac_catalyst.md)

### AppKit Elements

- [NSAccessibilityProtocol](appkit/nsaccessibilityprotocol.md)
- [NSAccessibility](appkit/nsaccessibility-swift.struct.md)

### Custom View Subclasses

- [Custom Controls](appkit/custom-controls.md)
- [Accessibility Functions](appkit/accessibility-functions.md)

### Custom Elements

- [NSAccessibilityElement](appkit/nsaccessibilityelement-swift.class.md)

### Accessibility Types

- [NSAccessibility.Action](appkit/nsaccessibility-swift.struct/action.md)
- [NSAccessibility.AnnotationAttributeKey](appkit/nsaccessibility-swift.struct/annotationattributekey.md)
- [NSAccessibilityAnnotationPosition](appkit/nsaccessibilityannotationposition.md)
- [NSAccessibility.Attribute](appkit/nsaccessibility-swift.struct/attribute.md)
- [NSAccessibility.FontAttributeKey](appkit/nsaccessibility-swift.struct/fontattributekey.md)
- [NSAccessibilityOrientation](appkit/nsaccessibilityorientation.md)
- [NSAccessibility.OrientationValue](appkit/nsaccessibility-swift.struct/orientationvalue.md)
- [NSAccessibility.ParameterizedAttribute](appkit/nsaccessibility-swift.struct/parameterizedattribute.md)
- [NSAccessibility.Role](appkit/nsaccessibility-swift.struct/role.md)
- [NSAccessibilityRulerMarkerType](appkit/nsaccessibilityrulermarkertype.md)
- [NSAccessibility.RulerMarkerTypeValue](appkit/nsaccessibility-swift.struct/rulermarkertypevalue.md)
- [NSAccessibility.RulerUnitValue](appkit/nsaccessibility-swift.struct/rulerunitvalue.md)
- [NSAccessibility.SortDirectionValue](appkit/nsaccessibility-swift.struct/sortdirectionvalue.md)
- [NSAccessibilitySortDirection](appkit/nsaccessibilitysortdirection.md)
- [NSAccessibility.Subrole](appkit/nsaccessibility-swift.struct/subrole.md)
- [NSAccessibilityUnits](appkit/nsaccessibilityunits.md)

## See Also

### User Interactions

- [Mouse, Keyboard, and Trackpad](appkit/mouse-keyboard-and-trackpad.md)
- [Menus, Cursors, and the Dock](appkit/menus-cursors-and-the-dock.md)
- [Gestures](appkit/gestures.md)
- [Touch Bar](appkit/touch-bar.md)
- [Drag and Drop](appkit/drag-and-drop.md)
