Skip to content

Rework 2.1.4 Character Key Shortcut understanding - #5336

Open
patrickhlauke wants to merge 20 commits into
mainfrom
patrickhlauke-character-key-shortcuts-rework
Open

Rework 2.1.4 Character Key Shortcut understanding#5336
patrickhlauke wants to merge 20 commits into
mainfrom
patrickhlauke-character-key-shortcuts-rework

Conversation

@patrickhlauke

@patrickhlauke patrickhlauke commented Aug 27, 2026

Copy link
Copy Markdown
Member
  • expand the focus to not be primarily about speech users
  • expand the speech input explainer to match reality a bit better
  • new section about keyboard use with screen readers
  • remove the outdated resources section - in particular, the links to the two context-less youtube videos (with low audio and video quality) that demonstrate the issue with Talon on sites that have since been changed
  • add working example - key event logger

Stretch goals (to discuss with TF):

  • record video demonstrating voice control/speech use on working example
  • record video demonstating SR+keyboard use on working example

Closes #953

Preview:
Diff:

* expand the focus to not be primarily about speech users
* expand the speech input explainer to match reality a bit better
* remove the outdated resources section
@netlify

netlify Bot commented Aug 27, 2026

Copy link
Copy Markdown

Deploy Preview for wcag2 failed.

Name Link
🔨 Latest commit 8a3d58d
🔍 Latest deploy log https://app.netlify.com/projects/wcag2/deploys/6a9d6807818d230008ff215c

@patrickhlauke patrickhlauke self-assigned this Aug 27, 2026
@patrickhlauke
patrickhlauke force-pushed the patrickhlauke-character-key-shortcuts-rework branch from 94f67f4 to 2942012 Compare September 1, 2026 14:31
@patrickhlauke
patrickhlauke marked this pull request as ready for review September 2, 2026 13:36
@patrickhlauke patrickhlauke moved this from In progress to Drafted in WCAG 2.x Sep 2, 2026
<p>A user interacting with a web page or web app that doesn't use single-character shortcuts doesn't have this problem. Inadvertent strings of characters from the speech application are not interpreted as shortcuts if a modifier key is required. A speech user filling in a text input form may find that a phrase that is accidentally picked up by the speech microphone results in stray text being entered into the field, but that is easily seen and undone. The Resources section of this page contains links to videos demonstrating these types of issues.</p>
<p>Speech input users generally work in a single mode where they can use a mix of dictation and speech commands. The user knows to pause before and after commands, and commands are usually at least two words long. So, for instance, a user might say a bit of dictation, such as "the small boat", then pause, and say a command to delete that dictation, such as "Delete Line". In contrast, if the user were to say the two phrases together without a pause, the whole phrase would come out as dictation (i.e., "the small boat delete line").</p>
<p>In most cases, voice control/speech recognition software is "context-aware" – speech is not interpreted as dictation, unless focus is on a form control or field that accepts keyboard input. Otherwise, speech is only interpreted as a command. In addition, even when focus is inside a form control or field that accepts keyboard input, dictation does not generate "faked" synthetic key presses – the spoken text is generally injected directly into the relevant form control/field. Synthetic key presses only happen when a user gives an explicit command, such as "Press X key".</p>
<p>However, there are some voice control/speech recognition programs (such as <a href="https://talonvoice.com/">Talon Voice</a>) that are not "context-aware". All speech is interpreted as either a command or dictation, regardless of where the current focus is. In addition, saying certain keywords is interpreted by some programs as a shorthand for the "Press … key" command, leading to potential unintentional single key presses. Critically, programs that are not "context-aware" may also turn dictation into synthetic key presses, meaning that an unintentionally spoken word can become a sequence of single-key commands if the cursor focus happens to be in the wrong place. Character key shortcuts will be problematic for users of these non-context-aware programs.</p>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reference to Talon Voice: How long will that be valid? Leave out brand name?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the issue here is that it seems Talon is pretty much the only tool out there that behaves this way it seems...this is a way to salvage the whole voice angle, in my view, as none of the other voice control/voice access tools commonly used now have the problem this SC purports to solve...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with Detlev, I would not get as far as naming a specific software here


<h3>Keyboard use with screen readers</h3>
<p>The behavior or screen readers when it comes to keyboard interactions, and whether or not key presses are passed on to web content, varies depending on the specific platform and screen reader used.</p>
<p>On Windows, screen readers such as Jaws, NVDA, and Narrator generally intercept all key presses, as many of the shortcuts to control screen readers use single keys. Key presses are then only passed on to web content depending on the context. For instance, if focus is on a <code>button</code> element, only <kbd>Space</kbd> and <kbd>Enter</kbd> key presses (and a few generic keys, such as <kbd>Tab</kbd>) will be passed to the web content – any other key presses will be "swallowed" by the screen reader. This behavior is overridden in HTML when elements have a <code>role="application"</code>, or are children of an element with that <code>role</code>. In general, character key shortcuts won't be problematic for Windows screen reader users, as it's unlikely that they'd accidentally trigger a shortcut.</p>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good stuff - but the general concern is that all this is fairly specific and might change any time, thereafter being either wrong or needing to be updated. (Will we? How soon?)

I wonder whether acceptance of single keystroks should be linked to the SR mode (browse of forms mode) rather than highlighting role application - not sure. You have done all the research...

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we either get specific, or we generalise and give the wrong impression (as the current understanding does ... it makes it sound like the problem described happens in all voice access/control scenarios, but it's actually only when using niche software). so the same problem may happen here, if we just generalise it as "in some cases this is a problem").

in this case, i'd rather be more specific, than pretending that things are a general issue/problem when they're not.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noting that role="application" is used in frequently-used apps such as gmail, so can seem common.

Comment thread understanding/21/character-key-shortcuts.html Outdated
Comment thread understanding/21/character-key-shortcuts.html Outdated
Comment thread understanding/21/character-key-shortcuts.html Outdated

<h3>Keyboard use with screen readers</h3>
<p>The behavior or screen readers when it comes to keyboard interactions, and whether or not key presses are passed on to web content, varies depending on the specific platform and screen reader used.</p>
<p>On Windows, screen readers such as Jaws, NVDA, and Narrator generally intercept all key presses, as many of the shortcuts to control screen readers use single keys. Key presses are then only passed on to web content depending on the context. For instance, if focus is on a <code>button</code> element, only <kbd>Space</kbd> and <kbd>Enter</kbd> key presses (and a few generic keys, such as <kbd>Tab</kbd>) will be passed to the web content – any other key presses will be "swallowed" by the screen reader. This behavior is overridden in HTML when elements have a <code>role="application"</code>, or are children of an element with that <code>role</code>. In general, character key shortcuts won't be problematic for Windows screen reader users, as it's unlikely that they'd accidentally trigger a shortcut.</p>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A thorough explanation of browse mode vs. focus/forms mode seems necessary to me

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

browser mode vs focus mode does not change how it behaves with regards to passing key events to the page though, so not sure it's necessary?

@detlevhfischer detlevhfischer Sep 4, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As to browse mode, I assumed for a second that things like SR single character shortcuts (e.g. "h" to jump to headings) would not work in forms mode, but it is in fact only when focus is on text input elements or selects that the shortcut is not passed to the AT - with selects even when the character does not match the start of any select option.

@baldino-m baldino-m Sep 4, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well, since the section is about screen reader I believe that this deserves at least a mention. At the same time, browse mode can be turned on manually (not a likely scenario, but it can be done) even when a specific component is currenlty focused

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the shortcut is not passed to the AT

just a quick note that it's the other way around: AT sits between the keyboard and the browser. any keypresses are either consumed by the AT, or passed on to the browser (not the other way around)

Co-authored-by: Baldino Morelli <baldino.morelli@usablenet.com>
Comment thread understanding/21/character-key-shortcuts.html Outdated
Comment thread understanding/21/character-key-shortcuts.html Outdated

<h3>Keyboard use with screen readers</h3>
<p>The behavior or screen readers when it comes to keyboard interactions, and whether or not key presses are passed on to web content, varies depending on the specific platform and screen reader used.</p>
<p>On Windows, screen readers such as Jaws, NVDA, and Narrator generally intercept all key presses, as many of the shortcuts to control screen readers use single keys. Key presses are then only passed on to web content depending on the context. For instance, if focus is on a <code>button</code> element, only <kbd>Space</kbd> and <kbd>Enter</kbd> key presses (and a few generic keys, such as <kbd>Tab</kbd>) will be passed to the web content – any other key presses will be "swallowed" by the screen reader. This behavior is overridden in HTML when elements have a <code>role="application"</code>, or are children of an element with that <code>role</code>. In general, character key shortcuts won't be problematic for Windows screen reader users, as it's unlikely that they'd accidentally trigger a shortcut.</p>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noting that role="application" is used in frequently-used apps such as gmail, so can seem common.

Comment thread understanding/21/character-key-shortcuts.html Outdated
patrickhlauke and others added 4 commits September 4, 2026 16:47
Co-authored-by: Alastair Campbell <ac@alastc.com>
Co-authored-by: Kenneth G. Franqueiro <kfranqueiro@users.noreply.github.com>
Comment thread understanding/21/character-key-shortcuts.html Outdated
Co-authored-by: Bruce Bailey <bruce@bailey4.us>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Drafted

Development

Successfully merging this pull request may close these issues.

Examples for SC 2.1.4 too faint - difficult to discern

6 participants