Guides and Sample Code


macOS Human Interface Guidelines


VoiceOver and Accessibility

macOS integrates many accessibility features that help people with disabilities or special needs customize their experience.

image: ../Art/VO_welcome_2x.png

As you incorporate support for accessibility into your app, keep the following guidelines in mind.

Focus first on ease of use. An easy-to-use app provides the best experience for all users. To make sure that users who use assistive technologies (such as VoiceOver or a braille display) can benefit fully from your app, you might need to supply some descriptive information about the UI. To learn about the programmatic steps you need to take to supply accessibility information, see Accessibility Programming Guide for OS X.

Don’t override the built-in macOS accessibility features. Users expect to be able to use accessibility features, such as the ability to perform all UI functions using the keyboard, regardless of the app they’re currently using. Users can access these features in the Universal Access and Keyboard panes of System Preferences.

Avoid relying solely on one type of cue to convey important information in your app. For example, although the judicious use of color can enhance the UI, color coding should always be redundant to other types of cues, such as text, position, or highlighting. Allowing users to select from a variety of colors to convey information enables them to choose colors appropriate for their needs. Similarly, it’s best when sound cues are available visually as well. Because macOS allows users to specify a visual cue in addition to the standard audible system alert, be sure to use the standard system alert when you need to get the user’s attention.

Provide keyboard-only alternatives. Many people prefer using a keyboard to using a mouse or a trackpad; others, such as VoiceOver users, need to use the keyboard. Add support for full keyboard access mode to all your custom UI elements. Full keyboard access mode lets users navigate and activate windows, menus, UI elements, and system features using the keyboard alone.

Don’t override keyboard navigation settings. In addition, don’t override the keyboard shortcuts used by assistive technologies. When an assistive technology is enabled, keyboard shortcuts used by that technology take precedence over the ones defined in your app. To learn more about system-defined keyboard shortcuts, see Keyboard Shortcuts.

As much as possible, provide alternatives to drag and drop. Except in cases where drag and drop is so intrinsic to an app that no suitable alternative methods exist—dragging icons in the Finder, for example—there should always be another method for accomplishing a drag-and-drop task.