Skip to content

Input May 2025 #318

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 78 commits into from
Aug 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
d88cea8
Add accessibility supported
iadawn May 23, 2025
5cf6490
Merge branch 'main' into glossary-may-2025
iadawn May 26, 2025
d4df1b5
Editorial fixes
iadawn May 26, 2025
86331cc
Add new terms from Q1 2025 work
iadawn May 26, 2025
00c86f6
Editorial fixes for existing terms
iadawn May 26, 2025
81ac12c
add All Content Keyboard Accessible
fstrr May 27, 2025
88570db
Add Input Method Flexibility
fstrr May 27, 2025
983f20b
add Change Keyboard Focus With Pointer Device
fstrr May 27, 2025
1e3c45d
add Gesture Alternative
fstrr May 27, 2025
3ac5863
add essential synonym to essential-exception
fstrr May 28, 2025
795c91e
change notes and links to glossary terms
fstrr May 28, 2025
c961655
fix term identifier
fstrr May 29, 2025
22870af
add keyboard and gestures
fstrr May 29, 2025
4ede141
add bidirectional navigation
fstrr May 29, 2025
a51562f
remove link to glossary
fstrr May 29, 2025
fbca4e0
remove “focus” from definition
fstrr May 29, 2025
4827bce
move incorrectly placed keyboard requirements
fstrr May 29, 2025
9014b01
move bidirectional navigation
fstrr May 29, 2025
d594d1e
add keyboard navigable if responsive
fstrr May 29, 2025
f8475e6
add user control of keyboard focus
fstrr May 29, 2025
b36dc02
Some tidying up
iadawn May 30, 2025
4ff2c4d
Updates from Inputs subgroup
iadawn May 30, 2025
d9eb345
fix typo in filename
fstrr May 30, 2025
7edef59
add physical or cognitive effort content
fstrr May 30, 2025
72cacce
add plural synonym
fstrr May 31, 2025
b963bf4
Merge branch 'glossary-may-2025' into group-input-may-2025
fstrr May 31, 2025
e8338b0
add plural synonym
fstrr May 31, 2025
1d6ff50
Merge branch 'glossary-may-2025' into group-input-may-2025
fstrr May 31, 2025
62644f2
add pointer input
fstrr May 31, 2025
178ebd1
link terms
fstrr May 31, 2025
27936e4
add simple-pointer-input and pointer-speed
fstrr May 31, 2025
4d62930
sort requiements
fstrr May 31, 2025
87fcf0b
add ponter cancellationd and pointer pressure alt
fstrr May 31, 2025
dd42dbc
Merge branch 'main' into group-input-may-2025
fstrr May 31, 2025
aab2826
add new glossary terms
fstrr May 31, 2025
853fa09
Merge branch 'glossary-may-2025' into group-input-may-2025
fstrr May 31, 2025
7026235
add pointer cancellation
fstrr May 31, 2025
9e9660e
add remaining pointer input requirements
fstrr May 31, 2025
925a3a2
added speech and voice input
fstrr May 31, 2025
051f4a8
remove old requirements
fstrr Jun 3, 2025
1256f47
replace pageview with just view
fstrr Jun 4, 2025
6d19ac2
remove gestures section as content moved elsewhere
fstrr Jun 6, 2025
ffdf7c2
add keyboard focus
fstrr Jun 6, 2025
cb703fd
Merge branch 'glossary-may-2025' into group-input-may-2025
fstrr Jun 6, 2025
39e139d
updates to multiple requirements
fstrr Jun 6, 2025
7672757
Merge branch 'main' into group-input-may-2025
iadawn Jun 11, 2025
3e9926f
remove unique-visible-identifier
fstrr Jun 12, 2025
9d3721b
add keyboard focus
fstrr Jun 17, 2025
76088a7
Merge branch 'glossary-may-2025' into group-input-may-2025
fstrr Jun 17, 2025
7802862
further edits
fstrr Jun 17, 2025
ea0264b
reorder guidelines
fstrr Jun 24, 2025
2905c2d
update guidelines
fstrr Jun 24, 2025
9b516a6
initial commit of keyboard interface glossary term
fstrr Jun 26, 2025
2d6c42b
update pointer term
fstrr Jun 26, 2025
7684318
input subgroup updates
fstrr Jun 26, 2025
bb1ad54
add back in glossary term to page
fstrr Jul 2, 2025
cf2acbd
update preserve keyboard focus
fstrr Jul 9, 2025
2cc4737
add comparable keyboard effort
fstrr Jul 9, 2025
27c1365
remove double click
fstrr Jul 9, 2025
f317c42
fix order of comparable keyboard effort
fstrr Jul 9, 2025
10cefa5
add notes to pointer cancellation
fstrr Jul 9, 2025
f6922f1
update pointer cancellations, set of pages views
fstrr Jul 9, 2025
12a9815
delete consistent-pointer-cancellation-entire-conformance-claim
fstrr Jul 9, 2025
f376b11
delete voice identification
fstrr Jul 9, 2025
f37eb5b
initial commit of authenication
fstrr Jul 9, 2025
7d995a7
add authentication, remoce content changes
fstrr Jul 9, 2025
8d74429
remove input method flexibility no exception
fstrr Jul 10, 2025
3aa1bb0
update keyboard focus with pointer device
fstrr Jul 10, 2025
861ce66
format description list
fstrr Jul 16, 2025
16ece1e
Multiple Input subgroup updates
fstrr Jul 16, 2025
2d6c8ed
Fix term status
iadawn Jul 18, 2025
a195c99
multiple input subgroup updates
fstrr Jul 24, 2025
325dff5
Tidy up definitions
iadawn Jul 31, 2025
65d3074
Merge branch 'main' into group-input-may-2025
kfranqueiro Jul 31, 2025
c9623d8
Remove unnecessary synonym (pluralization already handled by ReSpec)
kfranqueiro Jul 31, 2025
221d062
add comparable keyboard effort as an assertion
fstrr Jul 31, 2025
04858e4
delete motion-input.md
fstrr Aug 6, 2025
6a89428
Merge branch 'main' into group-input-may-2025
kfranqueiro Aug 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions guidelines/groups/input-operation.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"children": [
"keyboard-interface-input",
"physical-or-cognitive-effort-when-using-keyboard",
"pointer-input",
"speech-and-voice-input",
"input-operation",
"content-changes",
"target-size",
"keyboard-operation",
"gestures",
"motion-input"
"authentication"
],
"title": "Input / operation"
}
7 changes: 7 additions & 0 deletions guidelines/groups/input-operation/authentication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
children:
- biometric-identification
- voice-identification
---

Provide alternatives to authentication for those who cannot use some authentication methods usable by people without disabilities.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
status: developing
type: foundational
---

Use of a biometric is not the only way to identify or authenticate.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
status: developing
type: foundational
---

Voice is not the only way to identify or authenticate.
9 changes: 0 additions & 9 deletions guidelines/groups/input-operation/content-changes.md

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

11 changes: 0 additions & 11 deletions guidelines/groups/input-operation/gestures.md

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

10 changes: 6 additions & 4 deletions guidelines/groups/input-operation/input-operation.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
---
children:
- concurrent-inputs
- hover-information
- input-control
- change-keyboard-focus-with-pointer-device
- content-on-hover-or-keyboard-focus
- gesture-alternative
- input-method-flexibility
- use-without-body-movement
---

Users can use different input techniques and combinations and switch between them.
Users have the option to use different input techniques and combinations and switch between them.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
status: developing
type: foundational
---

If content interferes with pointer or keyboard focus behavior of the :term[user agent], then selecting anything on the :term[view] with a :term[pointer] moves the keyboard focus to that interactive element, even if the user drags off the element (so as to not activate it).

:::note
An example of this is: a user scrolls a document down six screens, then clicks on a paragraph with their :term[pointer]. The user then presses the <kbd>tab</kbd> key, which moves the focus to the first interactive component after the position on the screen that was clicked, rather than from the previous position, six screens up the document.
:::

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
status: developing
type: foundational
---

When receiving and then removing :term[pointer] hover or keyboard focus triggers additional content to become visible and then hidden, and the visual presentation of the additional content is controlled by the author and not by the :term[user agent], all of the following are true:

Dismissible

: A mechanism is available to dismiss the additional content without moving pointer hover or keyboard focus, unless the additional content does not obscure or replace other content;

Hoverable

: If pointer hover can trigger the additional content, then the pointer can be moved over the additional content without the additional content disappearing;</dd>

Persistent

: The additional content remains visible until the hover or keyboard focus trigger is removed, the user dismisses it, or its information is no longer valid.

:::note
Examples of additional content controlled by the user agent include browser tooltips created through use of the HTML <code class="language-html">title</code> attribute.
:::

:::note
Custom tooltips, sub-menus, and other non-modal popups that display on hover and keyboard focus are examples of additional content covered by this criterion.
:::

:::note
This applies to content that appears in addition to the triggering interactive element itself. Since hidden interactive elements that are made visible on keyboard focus (such as links used to skip to another part of a :term[view]) do not present additional content they are not covered by this requirement.
:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
status: developing
type: foundational
---

Gestures are not the only way of achieving any functionality, except where a :term[gesture] is essential to the functionality.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
status: developing
type: foundational
---

Where functionality, including input or navigation, are achievable using different input methods, users have the option to switch between those input methods at any time.

:::note
This does not mean that all input technologies (pointer, keyboard, voice, gesture) need to be supported in one's content, but if an input modality is supported, it is supported everywhere in the content except where a particular input method is essential to the functionality.
:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
status: developing
type: foundational
---

Full or gross body movement is not the only way of achieving any functionality, except where full or gross body movement is essential to the functionality.

:::note
This includes both detection of body movement and actions to the device (e.g., shaking) that require body movement.
:::
13 changes: 13 additions & 0 deletions guidelines/groups/input-operation/keyboard-interface-input.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
children:
- all-elements-keyboard-actionable
- all-content-keyboard-accessible
- bidirectional-navigation
- conflicting-keyboard-commands
- keyboard-navigable-if-responsive
- no-keyboard-trap
- user-control-of-keyboard-focus
- relevant-tab-order-keyboard-focus
---

Users can navigate and operate content using only the keyboard.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
status: developing
type: foundational
---

All :term[content] that can be accessed by other input modalities can be accessed using :term[keyboard interface] only.

:::note
All content includes content made available via hovers, right clicks, etc.
:::

:::note
Other input modalities include :term[pointing devices], voice and speech recognition, :term[gesture], camera input, and any other other means of input or control.
:::

:::note
The [All Elements Keyboard-Actionable requirement](#all-elements-keyboard-actionable) allows you to navigate to all actionable elements but if the next element is 5 screens down - you also need to be able to access all the content. Also if the content is in expanding sections - you need to not just open them but also access all of the content - not just its actionable elements.
:::

:::note
A menu that opens and closes is an interactive group that consists of an icon or label (which opens and closes the menu - and is therefore an interactive element) and a group of interactive elements inside.
:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
status: developing
type: foundational
---

All elements that can be controlled or activated by :term[pointer], audio (voice or other), gesture, camera input, or other means can be controlled or activated from the :term[keyboard interface].

:::note
Here, and throughout this section, "camera input" refers to user control using a camera as a motion sensor to detect gestures of any type, for example "in the air" gestures. It does not include, for example, a static QR code image on a web page.
:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
status: developing
type: foundational
---

It is always possible to move forward and backward at each point using keyboard navigation.

:::ednote
We are considering making this require that the navigation be symmetrical (ie., if you navigate forward and then backward you always end up back in the same place) but are interested in comments on this.
:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
status: developing
type: foundational
---

Author generated keyboard commands do not conflict with :term[standard platform keyboard commands] or they can be remapped.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
status: developing
type: foundational
---

If the :term[page] / :term[view] uses responsive design, the :term[page] / :term[view] remains fully keyboard navigable.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
status: developing
type: foundational
---

It is always possible to navigate away from an element after navigating to, entering, or activating the element by using a :term[common keyboard navigation technique], or by using a technique for exiting is described on the :term[page] / :term[view] or on a :term[page] / :term[view] earlier in the :term[process] where it is used.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
status: developing
type: foundational
---

Except for skip links and other elements that are hidden but specifically added to aid keyboard navigation, tabbing does not move the keyboard focus into content that was not visible before the <kbd>Tab</kbd> (or <kbd><kbd>Shift</kbd> + <kbd>Tab</kbd></kbd>) key was entered.

:::note
Accordions, dropdown menus, and [ARIA tab panels](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/) are examples of expandable content. According to this requirement, these would not expand simply because they include an element in the tab-order contained in them. They would either not expand or would not have any tab-order elements in them.
:::

:::note
For example, a menu that expands when you tab to it, but then uses arrow keys to navigate in it would pass. But a menu that expands and then requires you to tab through all the newly-visible elements to navigate past it would fail.
:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
status: developing
type: foundational
---

When the keyboard focus is moved, one of the following is true:
- The focus was moved under direct user control;
- A new :term[view] such as a dialog is introduced and focus is moved to that view;
- The user is informed of the potential keyboard focus move before it happens and given the chance to avoid the move;
- The keyboard focus moves to the next item in keyboard navigation order automatically on completion of some user action.

:::note
Examples of where it may be useful to "jump the user to some other location" (after of course asking the user if they want to move there) would be:
- a form message that says "If you answer no, you can skip questions 8 through 15, would you like to skip to question 16"; and
- when a form error is detected on submit and a message says "There is an error on the page, would you like to jump to it" (especially if it also provided information on what the error was).
:::
12 changes: 0 additions & 12 deletions guidelines/groups/input-operation/keyboard-operation.md

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading