![]() |
|
| Product | |
| Support | |
| Everything Else | |
| Preview Release | |
| Full Keyboard Access Issues in OS X Helix | |
| What is Full Keyboard Access? |
OS X provides a mechanism known as Full Keyboard Access to allow keyboard control of all interface elements: checkboxes, radio buttons, popup lists and buttons. Collectively, these items are referred to as Controls. In the Mac OS X built-in help we read: “… With Full Keyboard Access, you use the Tab key, arrow keys, and space bar to move to and select or activate items on the screen … You can use your keyboard to select … items in windows and dialogs. Selected items are highlighted. You can specify whether you want to use the keyboard to select only text boxes and lists in a window, or all the controls in the window …” |
| How Classic Helix works |
Classic Helix has always allowed a user to control checkboxes and radio buttons from the keyboard — even though the Classic Mac OS never provided such a feature. When a checkbox/radio button has focus in Classic Helix, you can use the arrow keys and the various true/false values (1/0, T/F, Y/N, and any specified custom values) to toggle those controls. Pressing the delete key while a control has focus deletes the value from that control. |
| Conflicting Specifications |
These two specifications — Helix’s original spec and the new Mac OS X spec — conflict with each other, and as a result, attempting to use Full Keyboard Access to tab into controls can cause unexpected behavior in Helix. (In Preview Release 6.1.2, Helix can also crash because of this conflict. That is resolved in Preview Release 6.1.3.) For OS X native Helix to work most reliably, you must currently disable Full Keyboard Access setting that allows focus for ‘All Controls.’ This prevents Helix from attempting to focus on checkboxes, radio buttons, and popup menus, but it makes tabbing from field to field much more reliable. It is our intention to address this specification conflict in a future Helix release. The remainder of this technote discusses the various settings available in Mac OS X, how to determine which is currently active on your computer, and how to set them to avoid Full Keyboard Access related crashes in Helix. |
| Setting the Keyboard Shortcut Preferences |
On the right is a picture of the Keyboard Shortcuts panel in the Keyboard & Mouse window of System Preferences. You get to this panel by…
Once you have reached the Keyboard Shortcuts window, look all the way to the bottom of the window, where the main Full Keyboard Access setting is found. Make certain that the Text boxes and lists only radio button is selected. In the middle of the window is a scrollable list containing dozens of keyboard shortcuts. In the section titled Keyboard Navigation (pictured) uncheck the Move betweeen controls or textboxes and lists shortcut to avoid the possibility of accidentally changing this setting. Note! The objective here is not to activate/deactivate the shortcut. The real objective is to set Full Keyboard Access to Text boxes and lists only. Simply disabling the shortcut is not enough! You must make sure Full Keyboard Access is set as shown in this image. After confirming the correct settings, close the System Preferences window. |
| Full Keyboard Access Issues |
When the All controls option is selected, you can expect this behavior from Helix:
Starting with Helix 6.1.3, a warning dialog (pictured at right) appears when Helix is first launched if your Full Keyboard Access settings are such that they will conflict with Helix. This dialog includes a checkbox that allows you to suppress it in the future, but we strongly discourage you from doing that. |
| Testing for Full Keyboard Access |
You can also test your system’s Full Keyboard Access setting via the Terminal application (in the OS X Utilities folder). Launch Terminal and enter the following line: defaults read -g AppleKeyboardUIMode When you press Return, Terminal responds with a value that indicates the current status of Full Keyboard Access. Val Settings Helix is most cooperative when the setting is 0 or 1. We also created a free AppleScript application that shows your current settings. Download it by clicking here. |
| Watch here for updates |
This technote will be updated as subsequent Preview Releases are released to keep you up-to-date on the current status of this issue. |
| Document History |
July 15, 2008: Initial technote, describing the situation in version 6.1.2 (070) January 6, 2009: Update, describing the situation in version 6.1.3 (092) |