mirror of
https://github.com/open-webui/computer.git
synced 2026-11-05 01:17:24 +00:00
[GH-ISSUE #223] fix: ask_user panel commits the answer on radio selection, making later options unreachable by keyboard #136
Labels
No labels
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-webui/computer#136
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ThalynLabs on GitHub (Aug 15, 2026).
Original GitHub issue: https://github.com/open-webui/computer/issues/223
What happens
In the plan-mode
ask_userquestion panel, selecting a radio option immediately submits the answer. The panel's own submit control is not what commits it — activating an option is.This makes the options unreviewable for anyone using a keyboard or a screen reader.
Radio groups implement selection follows focus — per the ARIA Authoring Practices radio group pattern (and native HTML radio behaviour), arrow keys move focus and check the option landed on. Combined with submit-on-select, that means:
descriptiontext — the most useful part of the panel — is never heard, because the turn has already resumed.I use VoiceOver on macOS. In practice I cannot browse the choices at all; I can only take whichever option focus lands on first.
Why this is a conformance problem, not just friction
WCAG 2.2 SC 3.2.2 On Input (Level A) — "Changing the setting of any user interface component does not automatically cause a change of context unless the user has been advised of the behavior before using the component." Checking a radio is a setting change; submitting the answer and resuming the agent turn is a change of context. No advisory precedes it.
It also undermines SC 2.1.1 Keyboard (Level A) in effect: the functionality of choosing among options 2..n is not operable via keyboard without irreversibly selecting the options passed through on the way.
Worth noting the radio behaviour on its own is correct and specified — the defect is the coupling of selection to submission.
Suggested fix
Either would resolve it:
role="listbox"/role="option", roving tabindex oraria-activedescendant), where selection does not follow focus and Enter/Space commits. The APG recommends this specifically when a user needs to review options before choosing.Option 1 is likely a few lines and preserves everything else about the component.
Environment
<label><input class="sr-only" type="radio"> …</label>— the visually-hidden-radio pattern itself is fine; the change handler is where the submit happens.@ThalynLabs commented on GitHub (Aug 15, 2026):
Correcting and sharpening the above with an actual keyboard walkthrough, rather than the inference I opened with. The failure is more severe than I described.
Observed, VoiceOver on macOS:
So the consequence is not merely that options can't be reviewed before choosing. Options 2..n cannot be selected by keyboard at all. The only reachable choices are the first radio and the free-text box, and the single arrow keypress that would take you anywhere else commits the answer.
This makes it a direct SC 2.1.1 Keyboard (Level A) failure, not only the 3.2.2 On Input failure in the original report: the functionality of choosing option 2 or 3 is not operable through a keyboard interface.
Two things appear to be wrong together:
Fixing the second alone would restore reviewability; fixing both is needed to make options 2..n selectable at all.
Happy to test a fix against VoiceOver if that's useful.