Repository navigation
Improve screen reader accessibility with accessible mode and keyboard navigation #17754
thienautran
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I propose adding accessible mode, F6 navigation between the main areas of T3 Code, and arrow navigation in the Threads sidebar. These would help keyboard and screen reader users move around the web and desktop apps without tabbing through every control. Accessible mode should be part of the initial implementation so later accessibility features can use the same setting.
VS Code already implements this approach. The documentation and source show how it works:
For T3 Code, I propose the following keyboard behavior. The area order adapts VS Code's approach to T3 Code's layout.
The proposed F6 order is the Threads sidebar, the conversation, the message input, then any open panels. Include the terminal when it is visible. Skip hidden areas. If a panel is maximized, include only the areas still available.
When you return to an area, focus should return to the control you last used. If that control is gone, focus should move to the area's default starting point. If a dialog is open, F6 must not move focus outside it.
Sidebar arrow keys should apply only while the row list has keyboard focus. When someone is searching or renaming a thread, arrows must keep moving the text cursor. Moving focus between rows should leave the current conversation open until Enter activates another thread. Screen readers should announce each row's name, whether it is the current thread, and whether a group is expanded or collapsed.
Screen readers should announce the name of the area you enter. A visible focus indicator should show keyboard users where they are. Users should be able to change the area-navigation shortcuts in Settings. Where a browser uses F6 for its own navigation, provide another shortcut that works inside T3 Code.
Accessible mode should be available in Settings and the command palette from the start:
The first use of accessible mode would be short navigation hints for the sidebar and workspace areas. It should also give later features, such as reading chat responses or terminal output, a shared way to check whether screen reader features are enabled.
Store the preference for the client someone is using. A browser and the desktop app can connect to the same remote server while needing different settings. Where automatic detection is unavailable, users should be able to choose On. Changing the mode should take effect without restarting the app.
Moving between chat messages and subagent threads would come in later changes.
Screen reader testing should cover NVDA, JAWS and VoiceOver where possible, on both web and desktop.
These screen readers are also listed in VS Code's screen reader documentation.
All reactions