-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prototype improved a11y buffer view #4340
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some lint issues:
/home/vsts/work/1/s/src/browser/AccessibilityManager.ts
333:50 warning Strings must use singlequote @typescript-eslint/quotes
/home/vsts/work/1/s/src/browser/TestUtils.test.ts
143:110 warning Expected a comma @typescript-eslint/member-delimiter-style
143:151 warning Unexpected separator (;) @typescript-eslint/member-delimiter-style
316:110 warning Expected a comma @typescript-eslint/member-delimiter-style
316:151 warning Unexpected separator (;) @typescript-eslint/member-delimiter-style
/home/vsts/work/1/s/src/browser/Types.d.ts
147:91 warning Expected a comma @typescript-eslint/member-delimiter-style
/home/vsts/work/1/s/src/browser/Viewport.ts
283:98 warning Expected a comma @typescript-eslint/member-delimiter-style
✖ 7 problems (0 errors, 7 warnings)
0 errors and 7 warnings potentially fixable with the `--fix` option.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One more lint issue
fixed the lint issue, will add that |
Hi, I wonder what is the current status of this? It seems that on ToT, the old a11y tree based on list elements is gone, but the new thing (based on contexteditable element?) is also not ready? I am not able to use the screen reader on the terminal any more. |
@JasonXJ the situation is vscode should be much better now, for other xterm.js embedders we also brought back the old a11y tree. |
I got some feedback that the current navigation mode isn't very intuitive. This explores adding a different element, accessible via shift+tab (which will by default skip the terminal) that when focused fills a contenteditable element with the content of the buffer. This allows easy traversal using a screen reader and also selection.
An issue I'm currently hitting is when this element is created, NVDA can freeze for 15-60 seconds I'm guessing to update its model of the DOM. I tried caching the scrollback elements but that actually ends up worse when running
tree
as it doesn't do any debouncing, even if optimized it will probably add a noticeable delay between output and announcing. Capping the output to 100 is a workaround for this, it's not ideal though. A monaco instance may be a way to fix this problem, at least within VS Code.I also thought we could leverage shell integration here in VS Code by exposing some delegate on the API that takes care of constructing the DOM elements, that way we could logically split up the buffer into command/output.
cc @meganrogge