isXander / isXander/YetAnotherConfigLib

Can't use keyboard/controller to press Reset Buttons (accessibility)

Open Beginner friendly
#343 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
155
Forks
68
PR merge metrics
No merged PRs in 30d

Description

When navigating a YACL config screen using Tab on a keyboard (or a controller via Controlify), I can't trigger the "reset to default" button on individual option rows. The button receives the visual focus when tabbed to, but pressing Space or Enter (or 'A'/Cross on a controller) does nothing. And I think Controlify maps gamepad button activation directly to these standard keyboard focus events, so it breaks the ability for controller users to reset individual options, too.

Repro steps

  1. Open any mod configuration screen built with YACL that has options capable of being reset.
  2. Change a setting so that its value is different from the default (which enables the small reset icon button on the right).
  3. Use the Tab key to navigate through the UI until the small Reset button for that option is focused.
  4. Press Space or Enter.

Expected:
The setting reverts to its default value, like as if the reset button was clicked on.

Actual:
Nothing happens. The key press is swallowed and the setting doesn't change.

My AI says

"Because OptionEntry#keyPressed hardcodes the event routing to return widget.keyPressed(event);, it drops all KeyEvents meant for the resetButton. This means any accessibility tools or controller mods (specifically Controlify's ScreenOp system) that rely on dispatching synthetic ENTER/SPACE KeyEvents to the focused element will silently fail. Controller users are completely unable to press the reset button."

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at OptionEntry#keyPressed and inspect how key events reach the focused resetButton. Reproduce the issue on a YACL configuration screen with a changed option, then verify that Space, Enter, and controller activation reset the option to its default value while mouse clicking continues to work.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
accessibility
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.