Brief Note on Application Keyboard Shortcuts

Identifying keyboard shortcuts for an application is mostly an internationalization problem. It’s also not a new problem. A recent (to me) example is the WordPress Gutenberg team starting to discuss keyboard shortcuts in 2017, addressing what will and won’t work across keyboards for different languages.

A Mac keyboard with a hand contorting its fingers to as it presses Control, Option, Caps Lock, and a fourth finger is reaching for the J.
Sight gag for my old joke that navigating text fields in NVDA and JAWS is just pressing E, but in VoiceOver it’s pressing Caps Lock + Ctrl + Option + + J.

It’s a fascinating thread given all the international participation. It’s also outside the scope of this post.

Instead, this post is to tell you not to stress about what keys a screen reader uses. This is because screen readers have pass-through commands, which tell the screen reader to ignore the next key or combo and pass it through to the application (whether an installed application or the web browser running your application).

Windows desktop screen readers have explicit pass-through commands:

NVDA
NVDA + F2
JAWS
JAWS + 3
Narrator (Microsoft has a poor method of selecting between Win10 and Win11 on that page, so the text link may not work)
Narr + 3

VoiceOver on macOS does as well, and I’m being very careful to qualify this as macOS, not iOS nor iPadOS:

VoiceOver on macOS
VO + Tab

VoiceOver on macOS differs from Windows screen readers by requiring the modifier keys to execute most commands. But if you enable Quick Nav to allow single key use, you may need to turn it off sometimes (which is not a pass-through):

Toggle single-key Quick Nav
VO + Q
Toggle arrow-key Quick Nav
VO + Shift + Q

Orca generally relies on a modifier key except in structural navigation, which you may need to disable (and is not the same as a pass-through):

Toggle structural navigation
Orca + Z

In each case, the screen reader modifier key (NVDA or VO, for example) represents the Caps Lock or Insert (depending on preferences and keyboard layout), and for VoiceOver are the Ctrl + Opt keys combined.

This, of course, assumes the screen reader audience for your application knows they exist. Not all screen reader users are expert screen reader users (imagine the same breakdown as with the general public and their computers). But this is stuff you would include in documentation and training (because you have documentation, right?) while also telling your developers and QA folks so they don’t file unnecessary bugs.

Update: 22 January 2026

James Scholes told me that VoiceOver on macOS does indeed have a pass-through command. I updated the post accordingly. I didn’t do my usual strikes to show the changes, mostly because it was getting unwieldy to read (I moved the Orca section to after macOS).

No comments? Be the first!

Leave a Comment or Response

  • The form doesn’t support Markdown.
  • This form allows limited HTML.
  • Allowed HTML elements are <a href>, <blockquote>, <code>, <del>, <em>, <ins>, <q>, <strong>, and maybe some others. WordPress is fickle and randomly blocks or allows some.
  • If you want to include HTML examples in your comment, then HTML encode them. E.g. <code>&lt;div&gt;</code> (you can copy and paste that chunk).