Add accessibility keyboard navigation toggle (Tab/arrows/typeahead)#2001
Draft
ScottChesworth wants to merge 1 commit intoreaper-oss:masterfrom
Draft
Add accessibility keyboard navigation toggle (Tab/arrows/typeahead)#2001ScottChesworth wants to merge 1 commit intoreaper-oss:masterfrom
ScottChesworth wants to merge 1 commit intoreaper-oss:masterfrom
Conversation
…ialogs, proven in Groove tool
cfillion
reviewed
Feb 6, 2026
Comment on lines
+569
to
+572
| GetClassName(focused, className, sizeof(className)); | ||
| if (!strcmp(className, "ListBox")) | ||
| return false; | ||
| if (!strcmp(className, "Button")) |
Member
There was a problem hiding this comment.
This is only available since REAPER ~6.12 (justinfrankel/WDL@a32de87). SWS supports down to 5.982.
EDIT: Need to double-check on a Mac but ListBox might be SysListView32_LB there? https://github.com/justinfrankel/WDL/blob/1fff3feb1114b576ee5387331e9f5457a72aa723/WDL/swell/swell-wnd.mm#L3845
On Windows there's WC_LISTBOX / WC_BUTTON for these strings.
Comment on lines
+591
to
+592
| const bool ctrlDown = (GetKeyState(VK_CONTROL) & 0x8000) != 0; | ||
| const bool altDown = (GetKeyState(VK_MENU) & 0x8000) != 0; |
Member
There was a problem hiding this comment.
SWELL only has GetAsyncKeyState. BS_TYPEMASK, BS_CHECKBOX, BS_RADIOBUTTON and IsDialogMessage are only available on Windows.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In the Groove tool dialog (and most others), SWS passes keystrokes through to REAPER's main window. That makes sense for most folks who split their input between mouse and keyboard, but for screen reader users, it makes navigation in those dialogs difficult. This PR adds "Enabled deeper keyboard navigation in SWS dialogs (improves accessibility)" in the SWS Options menu. For now I've used the Groove tool dialog as proof of concept, hoping I can extend this wider if the approach I've taken is suitable.
Here are the changes to test in the Groove tool dialog once the new option has been enabled:
FYI I had help from Codex on this. Have been proofing its output best I can and user testing every step along the way. I'll be happy to round up other screen reader users for wider testing too. In particular I'm aware this is all Win32 specific right now and I don't know how SWELL will handle things on Mac. It's easy for me to reach VoiceOver users who can find out though.
For now, I'd like to get feedback before spending any more time on it. All thoughts welcome.