R – List of de facto standard keyboard shortcuts for Windows apps


Let's say I'm developing a new desktop application for Windows. Is there a list somewhere that I can consult (either from Microsoft or a 3rd party) of keyboard shortcuts that all Windows applications should support?

(Note: When I say "all Windows applications" here, I really mean "all Windows applications where a particular keyboard shortcut makes sense." For example, a standard "Begin debug session" shortcut might make sense across IDE applications such as Visual Studio and Eclipse, but not for other types of applications such as Notepad or Firefox. Also, it might not make sense for certain specialized applications that have their own complete custom sets of keyboard shortcuts, such as vi, to follow some of the standard conventions followed by other applications.)

For example, I would argue that where it makes sense, Windows applications should support the following keyboard shortcuts, because they are de facto standards that most other applications support (just a partial list):

From anywhere:

  • F1 – Show Help
  • Alt + F4 – Close application

While editing text:

  • Ctrl + A – Select all text (in current field, if applicable)
  • Ctrl + Home / End – Move caret to start/end of current field
  • Shift + [any navigation] – Select text between the previous caret position and the new caret position

While an item that can be edited or renamed is selected:

  • F2 – Rename or edit the current item

While a child window or tab has the focus in a multi-window / multi-tab application:

  • Ctrl + F4 – Close the current window/tab
  • Ctrl + W – Close the current window/tab
  • Ctrl + Tab / Ctrl + Shift + Tab – Activate next/previous window/tab

And so on. (Again, these are just partial lists — I think many more de facto standard shortcuts exist.)

So: Is there a more complete list of these types of de facto standard keyboard shortcuts for Windows applications, that can be used by developers as a starting point for determining the keyboard shortcuts that a new application being developed should support?

If a similar list of conventions for mouse behavior were available as well, that would be ideal. (e.g. double-left-click word = select word)

Best Solution

Guidelines for Keyboard User Interface Design. It contains recommendations for creating keyboard interfaces and contains, towards the bottom of the article, a list of standard shortcut keys that applications should support.