In a mouse driven desktop application, with a ribbon style interface and which has no menubar, what is the best way for users to learn about the shortcuts and accelerators which can help a user work more efficiently.

My first instinct is that tooltips on hover over the buttons in the ribbon should show the accelerator in the information shown, so as to aid incremental discovery. But is that enough? I'd like to consider a multi-channel approach and introduce other mechanisms to increase learnability, in which case what other mechanisms would best help?

Obviously including them in the help documentation is another route to discovery, (and including a printer friendly cheat sheet), but I'm looking for in-software solutions.

[EDIT] Comments on some answers below.

The modeless intelligent non-disruptive, out-of-the-way notification that neither appears the first time, nor every time after the first time seems to me to provide the best balance.

Rahuls tip about a quick notification early on that there are even shortcuts available is great and undo/redo shortcuts might be a good example to teach this by. The simple use of ? to bring up the shortcut lists to browse is nice.

The use of tooltips on Alt or Ctrl is a good idea (where appropriate), although I believe a second or so delay may be necessary so they did not popup immediately every time you used Ctrl+Z or Alt-Tab. This would work nicely for ribbon interfaces.

Gnats observation of a synchronized symmetry of mouse action in drawing window and keyboard command window below is very common in the CAD industry where there can be literally thousands of commands to be used. It also reminded me that in Pro/Engineer, users can customise and manage multi-key commands called mapkeys to access functionality from the keyboard, eg *csb* = *C*reate *S*olid *B*lend. This is a great example of one area where keyboard shortcut functionality should be designed in from day one (Rahul's tip below).

  • @Gary Depends on the context of the app - in some apps you may become an expert only by using the keyboard. Top of mind example: World of Warcraft
    – Rahul
    Commented Jul 26, 2011 at 15:13
  • See my question here the command palette is a great way to learn shortcuts or the search option in the help menu, like osx
    – Vijay
    Commented Jan 24, 2020 at 13:00

6 Answers 6


You could try to approach this with an, "tell them about better ways to do what they are doing when they do it" approach. For example, if I am selecting text and clicking bold, that is fine, but if I do that over and over maybe have a modeless (non disruptive, out of the way) notification that could say something like, "Did you know you can press ctrl-b to bold selected text?"

As long as the notification wasn't obtrusive, didn't pop up all of the time, and was intelligent about the times it did show up, then I think that would be a really positive way for users to begin to familiarize themselves with the shortcuts of the application.

  • 3
    Sounds fair. But it's worth noting that users must be provided with a way to turn off this sort of feedback.
    – gef05
    Commented Jul 26, 2011 at 13:53
  • 4
    Definitely. The notification could have a small button on the bottom that says, "Turn off these notifications." Also, as I said in the answer, they would have to be smart about when they showed. I know ctrl-b bolds text but sometimes I will still click the little button because its there. I wouldn't want to see that notification every time I clicked the button, just when I did it a lot where the shortcut could save me some time. Commented Jul 26, 2011 at 13:57
  • 25
    Clippy? Is that you? Commented Jul 26, 2011 at 16:56
  • 5
    haha - Ctrl+D -> It looks like you're trying to wipe your hard disk - would you like me to do that automatically for you...whiiirrrrr Commented Jul 26, 2011 at 17:28
  • 3
    @Matt, from what I can tell Google+ took an interesting approach here: you can either dismiss one of those pop-ups or click "I get it" and it'll never bother you with that particular class of notifications again. So with that approach, if your reaction to the ctrl-b reminder is "not now I'm busy" just dismiss it; if it's "I know that now", you could turn that off while still being told later about ctrl-s. Commented Jul 26, 2011 at 21:41

If I were you, I would add tooltips like on Microsoft Excel 2010 and add help page with a list of shortcuts (something like this). I think that should be enough.

enter image description here
Screenshot of russian Microsoft Excel, displaying tooltip when hovering over bold icon.

  • 4
    Many Adobe CS products use a similar approach. Hover over a tool and you get 'Lasso Tool (L)'. Also, power users will likely be looking for these, especially in a desktop app, so just making the shortcuts available somewhere may have a very positive effect. Commented Jul 26, 2011 at 15:03

To facilitate the discovery of shortcuts you can provide information of some shortcuts when the CTRL key is pressed.

In this way, when the user uses a basic shortcut (e.g., CTRL+C to copy) small tooltips can appear over the ribbon to indicate that more shortcuts are available.

Another option to announce the availability of shortcuts is to indicate them in feedback messages ("the image has been deleted, press CTRL+Z to undo").

Edit. Office 2010 uses a similar approach for shortcuts. They use the ALT key which makes shortcuts difficult to discover (compared to the use of CTRL key). I paste an example below to illustrate how PowerPoint shows shortcuts to navigate through the tabs and to trigger actions:

PowerPoint shows keyboard shortcuts on ALT key press

  • 1
    Of note - you don't have to hold the key down. Alt switches to shortcut mode, so you can press one key at a time.
    – mdkess
    Commented Jun 13, 2013 at 13:54

I don't design desktop applications so I don't have much experience with options there, but I can give you some examples that might inspire.


I've also always liked how Gmail does keyboard shortcuts. They're very simple, not requiring you to learn and use multiple keys at the same time and you can pop open a pane displaying all of them just by typing "?".

World of Warcraft

Blizzard have also done a lot of thinking about shortcuts in World of Warcraft. The game starts you off by teaching you that pressing 1 attacks, but clicking works too. So you're multi-modal from the start and can develop a preference to your liking. They're consistent about displaying which keys activate certain commands in the user interface, often by displaying a particular letter in bold/yellow to remind you. And like Gmail, they've kept shortcuts simple, using most of the keyboard's letters and numbers for core functionality. It's possible to create more complex shortcuts through customisation but immediate play is possible just by pressing "1" and "q", for instance.

My experiences

We've thought a bit about this in our product Handcraft. Since it's a code editor, your hands are on the keys most of the time so it's convenient to be able to do things with the keyboard from an ease of use and productivity point of view. But one of our priorities with the editor is to remain "uneditor-ey" when compared with IDEs like Visual Studio. So our goal is to keep the screen very clean and focused. As such we don't want keyboard tips and mouseovers everywhere.

One of the ways we approached the keyboard shortcut issue is with little tips dotted around the experience that you discover after you interact with something with the mouse:

enter image description here

Key takeaways

  • Incremental discovery, like you mentioned
  • Discovery from standard mouse-based use
  • An easily accessed cheat sheet with what you're looking for available at-a-glance
  • Teach the user that there are two ways to approach key functionality right from the start and let them decide how to progress
  • Build keyboard shortcuts into as much of the core feature set as possible so you as to effect maximum exposure, increasing the likelihood of users engaging with shortcuts
  • 4
    I love the tips, that is pretty along the lines of my concept. I think making it intelligent enough that it only gave them to you when it was appropriate is key. Also, MS Excel does something with the singe key shortcuts, you just have to press the alt key first and then they map all of the visible buttons to number and letter keys. office-watch.com/articlefiles/… Commented Jul 26, 2011 at 16:05

I haven't yet figured how to apply similar trick particularly to keyboard shortcuts but to me the most thrilling way of "converting" novice users from mouse to general keyboard/command-line interaction was one I've seen in some old version (13? 14?) AutoCAD.

In that version, there was a large pane one could 'paint on' using mouse and menus and another, smaller 'text edit' like pane below that was showing and allowing to input/edit commands that matched actions performed with mouse.

The effect was just incredible. Just think of it - you (typical sloooow newbie) painfully moving mouse trying to pick the correct pixel for the center of your circle, then painfully click through a dozen of menus to set desired radius and line width and after you're finally done you see in that pane below something like
circle center(112, 27) radius(88) line(7) (syntax isn't exact, too much time passed and I don't remember its details).

Now, guess what? next time you wanted to move your circle few pixels or make the line a bit wider / narrower, you didn't even try to use mouse - you just went to that smaller window and edited it like
circle center(118, 24) radius(88) line(9)... and next time you wanted to draw a new circle, again, you just typed stuff in that pane below - simply because it was so obviously easier than with mouse. Real magic

That worked like a charm and not only to me but even to my teenager daughter (I was not using AutoCAD myself, just helping her with some homework).


The best I've used is cryp.sr. ALL the editing in this is done using the keyboard. So in the top bar there is just one '?' symbol which lists all the shortcuts.

This is great for shortcut obsessives like me who want to learn all the possible shortcuts - not just the obvious ones :)

enter image description here

enter image description here

  • That link is dead. Is this the same project as crisp.com? Commented Feb 12, 2021 at 21:42
  • @JoshuaFrank No - it was a simple list creater program. You just created lists and sublists.
    – icc97
    Commented Feb 15, 2021 at 18:01
  • Is the project online anywhere now? Commented Feb 16, 2021 at 2:08
  • @JoshuaFrank This is about all that is left I think: twitter.com/crypsr
    – icc97
    Commented Feb 16, 2021 at 11:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.