I’m really surprised! After years of experience with different Windows and Linux versions it’s getting normal for me to open contextual menus with Shift+F10 or the special context key if a mouse is not available. But yesterday while doing some work on bug 403602 I noticed that there is nothing for OS X? What about handicapped people who aren’t able to use a mouse or even use a screen reader? How do they access the context menu?
I asked several people who are still working on OS X for a longer period of time. But no one was able to give me a hint. So I started searching the web. I got this nice shortcut overview but no system wide shortcut is given. Now, while writing this post, I found this HIG document from Apple. It’s quiet interesting but once again a keyboard shortcut isn’t mentioned.
I’ll stop searching right now and hope that someone, who reads my post, could help me. I would be deeply grateful. Thanks!
The official Apple position, I think, is that a context menu (a ‘shortcut menu’ in Apple-speak) should only ever contain shortcuts to commands already expressed elsewhere. So instead of selecting text, then right-clicking and choosing ‘copy’, a user could select the text then choose ‘copy’ from the edit menu (note that on OS X, the menus are still usable while you have a dialog open, unlike Windows or Linux).
Some applications bend the rules a bit and have shortcut-menu commands that aren’t also in the main menu (for example, Firefox has things like “open frame in new tab”), but they should at least be so obscure that nobody would ever actually *need* them.
The key command is ctrl-5 (on the numeric pad).
To use it, you have to turn on “Mouse Keys” in the Universal Access -> Mouse & Trackpad preference pain. This allows you to navigate the mouse pointer with the numeric pad. (5 is left click and ctrl-click is the standard operator for getting the context menu.)
I still haven’t understood how to open app menus using the keyboard in OS X… Is it possible?
Yeah, as Screwtape said, Apple’s position is that the context menu shouldn’t be *necessary* to complete a task, i.e. you can still access the features it provides through other means.
Opening app menus is easy: ctrl-F2. If you use a laptop, you might have to hold down the fn button, depending on what settings you have.
The key command for that (and just about everything) is changeable in the Keyboard & Mouse system preference pane under the “Keyboard Shortcuts” tab. Note, to do this you must have “Full Keyboard Access” on, a setting that is also available from the same pane and tab.
Since Firefox has *chosen* to put things in context menus that aren’t also in main menus (which IMO is perfectly reasonable), shouldn’t Firefox also provide a shortcut for opening the context menu? Early versions of Mozilla used Ctrl+Space, but Firefox doesn’t have to use the same shortcut.
Thank you all for the comments. I read again the HIG from Apple and like it was already stated by Screwtape contextual menus should only display item specific shortcuts which are already included in the menu bar. But as Jesse told Firefox don’t follow this spec. The simplest fix would be to get crtl-space to work again because it was broken while changing to Cocoa widgets. Let’s try to get it back. Ongoing work is handled in bug 357540.
Samuel, I can’t get the keyboard navigation to work. Your specified steps are curiously not available in my German version.
yep, i agree it’s a frustrating thing.
And I am also embarassed for those apple funs that, as soon as you point out a lack or a missing feature in their favourite system, they try to convince you that it is because of apple “weltanshaung”: so silly…
Anyway i had the same problem, after searching around i found out that there is a way to have contextual menu on keyboard, but only enabling the whole Universal Access stuff for Mouse & Trackpad.
After enabling it, you can use some keys to emalute the mouse and – in particular – “ctrl + numpad 5” emulate right click.
If you have a laptop like me, you should use the fn key and keyboard letter “i” instead of “numpad 5”, so: “fn + ctrl + i”.
Waiting for Apple to introduce it in his future (already great) machines: all modern apps make great uses of contextual menus, MS Windows has got a dedicated key for this and “Shift + F10” is also commonly and historically accepted.
Well, ctrl+5 isn’t the best solution. The context menu opens at the current position of the mouse. I expect to see it for the currently focussed control. It’s a bit odd to scroll the mouse pointer to the desired position first. I still like the Windows version of popping up the context menu.