Changing a control must not auto-submit or navigate
Rule
on-input-context-change· Forms · impact serious · Static + live
Why it matters
A select that submits or navigates the moment its value changes yanks keyboard users away mid-choice: arrowing through the options already fires the change. Only inline onchange/oninput handlers are visible to static analysis — listeners attached by frameworks are not (accepted recall loss), so a clean result here is not proof of conformance.
How to fix
Let the user confirm the choice with a Go/Apply button. If auto-updating is essential, warn the user in text before the control.
Example
<select onchange="this.form.submit()"><option>2023</option><option>2024</option></select>
<select onchange="updateResults(this.value)"><option>2023</option><option>2024</option></select>
Example
<select onchange="window.location = this.value"><option value="/en">English</option></select>
<form action="/lang"><select name="lang"><option value="en">English</option></select><button>Go</button></form>
WCAG success criteria
3.2.2 On Input — Level A
Changing a control’s value (picking an option, typing) must not automatically trigger a change of context unless the user was warned beforehand.
Standards
This rule contributes to the following standards:
WCAG A EN 301 549 Section 508 Trusted Tester
| Standard | Criteria |
|---|---|
| Section 508 | 3.2.2 |
| EN 301 549 | 9.3.2.2 |