Skip to content

Add semantics to the a11y buffer through shell integration #173067

@Tyriar

Description

@Tyriar

We now have a new more accessible buffer view, we could shell integration to add semantics to the buffer such that terminal commands can be navigated via header tags and it's split up into sections. To do this, xterm.js could delegate the creation of the elements to VS Code as it doesn't have knowledge about shell integration.

For example the DOM structure could be:

<h2>command 1</h2>
<div>command 1 output</div>
<h2>command 2</h2>
<div>command 2 output</div>
...
<h2>last command</h2>
<div>
  command 1 output
  <div tabindex="0">cursor line</div>
</div>

The special line for the cursor is an idea to help the screen reader announce the cursor line first when entering the mode. This could be any line though, we should leave it up to vscode where to position the focused line. A non-screen reader example is ctrl/cmd+up to navigate between commands and then shift+tab to enter keyboard selection at that line, instead of scroll resetting.

Metadata

Metadata

Assignees

Labels

accessibilityKeyboard, mouse, ARIA, vision, screen readers (non-specific) issuesinsiders-releasedPatch has been released in VS Code Insidersterminal-shell-integrationShell integration infrastructure, command decorations, etc.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions