Retired Document
Important: This document describes the old, key-based accessibility API. The use of this API is discouraged. Use the new, method-based API instead. For more information on the new accessibility API, see Accessibility Programming Guide for OS X.
Introduction to Accessibility Programming Guidelines for Cocoa
All Cocoa applications can and should be accessible to users with disabilities. The process of making an application accessible is called access enabling. In Cocoa applications, accessibility is achieved by user interface classes adopting the NSAccessibility informal protocol. Because standard Cocoa controls and views automatically adopt the NSAccessibility protocol, there is very little you have to do to access enable your application if you rely only on standard control and view objects.
If your application implements custom controls or views, however, you need to provide additional accessibility information to make your application completely accessible.
This topic discusses how Cocoa implements accessibility and describes specific tasks you need to perform to access enable your application.
Who Should Read This Document?
All Cocoa application developers should read this document to learn how to access enable their applications. Even if your application uses only standard Cocoa views and controls, there is some information you need to supply to ensure your application is both completely accessible and provides a good user experience. If you’re new to accessibility or if you’re unsure why your application should be accessible, you should read Accessibility Programming Guide for OS X to learn how applications make themselves accessible to assistive technologies in OS X.
If you’re an assistive application developer, you don’t need to read this document. Instead, you should read Accessibility Programming Guide for OS X to become familiar with the OS X accessibility architecture and learn about the attributes associated with each type of accessibility object.
Organization of This Document
The following articles describe how Cocoa implements accessibility:
Accessibility Objects and the Accessibility Hierarchy describes the accessibility object as it is implemented by the Application Kit. It also describes the accessibility hierarchy that represents an application and discusses how an assistive application interacts with the accessibility objects in your application.
Hit-Testing and Keyboard Focus discusses how an assistive application can access user interface objects by screen position and by keyboard focus.
Accessibility Notifications discusses how an application notifies assistive applications that some change has occurred in the user interface, such as a new window opening.
The following articles describe how to access enable your application:
Access Enabling a Cocoa Application provides guidance on which tasks you may need to perform to access enable your application.
Supporting Attributes describes how to add an attribute to a custom accessible object.
Supporting Actions describes how to add an action to a custom accessible object.
Manipulating the Accessibility Hierarchy describes how to change an accessibility object’s status in the accessibility hierarchy.
See Also
The Accessibility Reference Library contains several documents that cover accessibility.
Getting Started with Accessibility provides a brief introduction to accessibility and describes learning paths you might choose to follow.
Accessibility Programming Guide for OS X describes the OS X accessibility architecture.
NSAccessibility describes the NSAccessibility protocol and its methods and constants.
Accessibility Programming Guidelines for Carbon describes how to access-enable a Carbon application.
Carbon Accessibility Reference describes the functions, data types, and constants used in accessible Carbon applications.
In addition to these documents, Apple maintains a website devoted to accessibility in OS X, with links to more information about compatible assistive technologies:
Copyright © 2004, 2015 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2015-03-09