Enabling Full Keyboard Access On The Mac

This post originally appeared on the Yahoo! Accessibility blog.

Full keyboard access isn't enabled by default in Mac OS. Often this leaves developers thinking there is something wrong with the implementation of keyboard access for a site or application, when in fact it is just a matter of changing a few system and browser preferences.

Full Keyboard Access Explained

In the context of browsers on the Mac, the various "full keyboard access" preferences affect the behavior of the Tab key. With the default settings applied (full keyboard access disabled), the Tab key moves focus between a subset of controls. This subset varies between browsers on the Mac:

Browser Default Tab Key Access
Safari
  • Most form controls requiring text input or selection
  • Custom controls made focusable via the tabindex attribute
Firefox
  • All form controls
  • Custom controls made focusable via the tabindex attribute
Chrome
  • All form controls
  • Custom controls made focusable via the tabindex attribute

Enabling On the Fly

Given the default settings on the Mac, how do keyboard users navigate and interact with controls that aren't in the default Tab flow?

Safari provides the Option key as a modifier for Tab. Pressing Option + Tab will extend access to include links. Additionally, Mac OS provides the global Ctrl + F7 keyboard shortcut which toggles the ability to access to all controls via the Tab key. Together these shortcuts can provide a nice usability affordance; they give keyboard users more options with respect to how to navigate a page or application.

For users of Firefox, switching the behavior of the Tab key is as easy as it is for Safari. Unlike Safari, Firefox provides access to all controls but links by default. The Ctrl + F7 shortcut can be used to extend access to include links.

Chrome follows Firefox providing access to all controls but links by default, but doesn't honor Ctrl + F7. To modify the behavior of the Tab key, the user has to navigate into preferences.

Enabling via Preferences

Rather than change full keyboard access on the fly, it is possible to make full keyboard access the default.

Firefox

Firefox relies on the Keyboard settings in System Preferences. Changing these preferences enables full keyboard access to not just Firefox, but all applications.

  1. Go to Keyboard in System Preferences in OS X
  2. Find the "Full Keyboard Access" section at the bottom of the dialog
  3. Check the "All Controls" radio button

You can also press Ctrl + F7 to change this preference.

Keyboard Preferences in Mac OS

Safari

  1. Go to Safari > Preferences > Advanced
  2. Check the "Press Tab to highlight each item on a webpage" checkbox

Preferences dialog in Safari

Google Chrome

  1. Go to Chrome > Preferences > Under the Hood
  2. Check the "Pressing Tab on a webpage highlights links, as well as form fields" checkbox

Under the Hood Preferences in Google Chrome