Implement NVUI accessibility shortcuts and navigation enhancements#20566
Implement NVUI accessibility shortcuts and navigation enhancements#20566Diogo1457 wants to merge 1 commit into
Conversation
|
I would appreciate a clearer explanation of how these changes improve the existing workflow. At the moment, it is not entirely clear to me what Shift+S and Shift+C are intended to do or how they fit into the current navigation model.
I also have some concerns about the proposed keyboard shortcuts. Alt+Home is commonly used by browsers to open the home page, and Alt+Left Arrow / Alt+Right Arrow are standard browser shortcuts for back and forward navigation. Because of this, I am not sure whether using these key combinations within the interface could lead to conflicts or unintended behavior.
|
Thanks for the feedback. Just to clarify, we are not proposing Alt+Left Arrow or Alt+Right Arrow. The proposal uses Ctrl+Left Arrow and Ctrl+Right Arrow, specifically to avoid conflicts with the standard browser back/forward shortcuts. Regarding Shift+S and Shift+C: The reason for choosing these shortcuts was simply that they are located close to the existing Shift+A (previous move) and Shift+D (next move) shortcuts, allowing related analysis actions to remain grouped together and easily reachable. As for Alt+Home, we have not noticed any conflicts while focus is on the board, but if there are concerns about browser compatibility or platform-specific behavior, we are open to changing that shortcut to something else. |
|
Thanks for the clarification.
From my perspective, I am not fully convinced that remapping these shortcuts is necessary. Users may already be familiar with the existing G and Shift+G workflow, and introducing Shift+S and Shift+C could create overlap or confusion, especially since C is already used for another function. I do not see a clear usability gain that outweighs the cost of changing established shortcuts.
Regarding navigation shortcuts, would it be possible to consider using Ctrl+Up Arrow and Ctrl+Down Arrow instead of Alt+Home and Alt+End? These combinations might feel more consistent with directional navigation and could potentially reduce conflicts with browser or system-level shortcuts. Currently, they just move me across the board just like the arrows do alone.
Thanks so much for the effort.
|
Thanks for the feedback. Using Ctrl+Up Arrow and Ctrl+Down Arrow instead of Alt+Home and Alt+End is a good suggestion. We can replace the proposed shortcuts with those instead, as they seem more intuitive for navigation and avoid potential browser or system conflicts. Regarding Shift+S and Shift+C, the intention was not to replace the existing Shift+G and v shortcuts. They would simply be additional shortcuts for the same actions, mainly because they are located closer to Shift+A and Shift+D. That said, if there is no clear usability benefit and they feel unnecessary or potentially confusing, we can certainly remove them from the proposal. The primary goal is to improve accessibility and efficiency without adding complexity or redundant shortcuts. Thanks again for taking the time to review and provide feedback. |
Updates in the Latest CommitBased on the latest adjustments and feedback from @ikrami1, here is a quick summary of what has changed from the previous iteration:
|
This commit aggregates several accessibility improvements for the Non-Visual User Interface (NVUI), focusing on enhanced keyboard navigation, efficiency, and screen-reader support. Key changes include: * Implemented `Shift+H` to announce a contextual help string directly from the board's command documentation. * Implemented `help` input command to read a contextual help string from the relevant input commands. * Upgraded the `F` (flip board) handler to a global binding so users can change perspective from anywhere in the application. * Added advanced board traversal controls (`Ctrl+ArrowUp`, `Ctrl+ArrowDown`, `Ctrl+ArrowLeft`, `Ctrl+ArrowRight`) that were not originally mentioned in the issue but were decided to be implemented for better navigation. * Configured `Ctrl+ArrowDown` and `Ctrl+ArrowUp` to jump to the start and end of the board state. * Configured `Ctrl+ArrowLeft` and `Ctrl+ArrowRight` to allow jumping backward and forward by multiple moves (6/2). * Added shortcuts `9` and `0` to quickly check pocket pieces/reserves in Crazyhouse mode. * Created and expanded comprehensive unit tests to verify the behavior, edge cases, and case sensitivity for every single new shortcut. For example, a screen-reader user can now use `Ctrl+ArrowLeft` to skip back multiple moves to review the position, and press `Ctrl+ArrowUp` to immediately jump to the end of the board. Closes lichess-org#17712 Co-authored-by: Diogo Lobo <diogo.lobo@tecnico.ulisboa.pt>

Closes #17712: additional shortcuts
This PR delivers a comprehensive set of accessibility upgrades for the Non-Visual User Interface (NVUI). Originally intended only for analysis, the scope was expanded during development to cover active game mode (round mode), ensuring unified navigation across Lichess.
Changes
Shift+Hto announce a contextual help string directly from the board's command documentation.helpinput command to read a contextual help string from the relevant input commands.F(flip board) handler to a global binding so users can change perspective from anywhere in the application.9and0to quickly check pocket pieces/reserves in Crazyhouse mode.Ctrl+ArrowUp,Ctrl+ArrowDown,Ctrl+ArrowLeft,Ctrl+ArrowRight) - while these were not explicitly requested in the initial issue, they were added to give a nice touch and further improve match navigation.Ctrl+ArrowDownandCtrl+ArrowUpto jump to the start and end of the board state, andCtrl+ArrowLeft/Ctrl+ArrowRightto skip backward/forward by multiple moves (6/2).Testing
Manually tested by:
Shift+H.helpcommand directly into the command line to verify the contextual output.Ffrom different non-board areas of the application to confirm the global scope of the layout flip.9and0during a Crazyhouse game to ensure pockets/reserves are announced correctly.Ctrl+ArrowUp,Ctrl+ArrowDown, and multi-move skipping viaCtrl+ArrowLeft/Ctrl+ArrowRight.Demo / Video (Outdated with previous shortcuts)
A short video demonstrating the new features and explaining the changes:
Watch the video