OSX Keyboard Shortcuts in Dialogs?

On Windows, every dialog box includes underlined letters that you can activate using the Alt key. I use these "Alt" keyboard shortcuts all the time; I'm missing them as I'm trying to switch to OSX.

On OSX, all I can find is Tab navigation, which requires you to press Tab seven or eight times to get anywhere in most dialog boxes. (And even that is hidden by default: you have to enable "Full keyboard access" in the "Keyboard & Mouse" control panel to be able to Tab between buttons.)

Is there some way I can get something like the Windows Alt accelerators for OSX dialogs? I'm willing to write Automator code, download/purchase software, etc.

Specifically, I'm imagining maybe something where you do some shortcut command and then start typing the name of the button, and hit Enter to push the button...?


Solution 1:

In OSX there's no such thing as the "_" for dialogs like in Windows. However, you have:

esc → defaults to no/cancel

cmd + deldon't save (cmd + d before OS X Lion)

entersave/OK

spacebarclick selected button (use tab to move).

A quick Google search for "osx keyboard shortcuts" will teach you way more than you can memorize in one day, but you should; there are dozens and some are very valuable.

You can always add more/change some existing ones by going to System Preferences -> Keyboard & Mouse -> Keyboard Shortcuts, exactly where you activated "all controls".

But as far as I know, there's no "underscore" thing in OSX.

Solution 2:

In addition to Martín's essential list of shortcuts (which work almost everywhere), you should know that in a File Open or File Save dialog you can press / or ~ to jump straight to a popup sheet that will let you type in a folder path. This is great for if you are a super fast typist, or if you want to go to a hidden folder like ~/.ssh.

That field even does Tab Completion, sort-of—the catch is if there are zero matches, or more than one match, when you press Tab, instead of doing any kind of completion Tab will just jump you out of the text field.

Also, when you're in the midst of quitting an app or closing a window, and there's a dialog saying "Cancel"/"Save"/"Don't Save" you can press D to choose "Don't Save." Obviously Esc and Return will operate the other two buttons, but I use this one all the time when I'm closing something I don't want to save.

Solution 3:

A nice feature that almost replicates the Windows Alt accelerators in an OS X dialog box is to use + + first_letter.

As noted by Louis, using only + first_letter works in some dialogs. For example, + D will choose Don't Save on exiting a file. (This is the same funcionality as first using to highlight Don't Save and then selecting it by clicking space, which works if System preferences --> Keyboard --> Keyboard Shortcuts --> Full Keyboard Access:... is set to All controls as described in previous posts).

However, + first_letter is not universal. For example, in a Save As dialog, + N fails to select New Folder.

But + + N does the trick.

I discovered this feature only recently, so I'm not sure if it is as universal as Windows Alt (which I'm using extensively). But by playing around I seem to be able to select most dialog items that I need. For example, I could use + + T to navigate in the dialog that opens in Microsoft Excel (for Mac) when I do Paste Special, and choose Text from a drop-down menu. So it selects not only buttons, but list items as well.

UPDATE: One limitation, however, compared with Windows Alt, seems to be that it's not possible to press the first-letter key multiple times to move between different objects that share the same first letter. In lists, this can be overcome to some extent by combining the shortcut with the arrow keys .

By the way, OS X has the shortcut ctrl + F2 for accessing the menu bar, but this is particularly inconvenient since it involves pressing fn to activate the F2 functionality. (What's more, others have reported problems with the default shortcut.)

The default shortcut can be re-defined in System preferences --> Keyboard --> Keyboard Shortcuts --> Keyboard & Text Input --> Move focus to the menu bar (it must involve two keys; I'm using + <, which feels familiar from Windows). Once the menu bar apple is highlighted, it is possible to accesss individual menu items by pressing a sequence of the relevant first letters. For example, in Firefox, I can go to File --> Page Setup... with this combo:

+ <, F, , P,

And contrary to dialogs, this functionality does indeed support pressing multiple times to navigate between list items, so that I can access File --> Print like so:

+ <, F, , P, P, (equivalent to + P).

It is actually not even necessary to press the relevant first letter, it's enough to press any letter to highlight the closest list item in alphabetical order (if no result is found, the search continues backwards in reverse order). For example, I can access Edit --> Undo (equivalent to + Z) like this:

+ <, E, , V (rather than the intuitive U).