Skip to content
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

[Accessibility] Terminal a11y buffer is not automatically updated #172582

Closed
jooyoungseo opened this issue Jan 26, 2023 · 13 comments · Fixed by #176413 or #178093
Closed

[Accessibility] Terminal a11y buffer is not automatically updated #172582

jooyoungseo opened this issue Jan 26, 2023 · 13 comments · Fixed by #176413 or #178093
Assignees
Labels
bug Issue identified by VS Code Team member as probable bug insiders-released Patch has been released in VS Code Insiders on-release-notes Issue/pull request mentioned in release notes terminal-accessibility Issues related to the terminal help widget, accessibility buffer, or navigation mode verified Verification succeeded
Milestone

Comments

@jooyoungseo
Copy link

CC @meganrogge

Reproducible Steps

  1. Load NVDA.
  2. Open terminal.
  3. Change directory to anywhere having lots of files and sub-directories.
  4. Type ls -1
  5. As soon as typing ls -1, press Shift+Tab to focus in the terminal a11y buffer.
  6. Press Ctrl+End to go to the end of the buffer and see if it reflects the last file name of the ls command: It is not actualy.
  7. Press Tab to terminal input and Shift+Tab to come back to a11y output buffer: This time the last line of the buffer reflects the the last item on the screen.

Expected Behavior

The terminal a11y buffer needs to get updated automatically without manual focus refresh.

System Info

Version: 1.75.0-insider (system setup)
Commit: 07d6f5b
Date: 2023-01-26T05:23:05.014Z
Electron: 19.1.9
Chromium: 102.0.5005.194
Node.js: 16.14.2
V8: 10.2.154.23-electron.0
OS: Windows_NT x64 10.0.22621
Sandboxed: Yes

@meganrogge meganrogge self-assigned this Jan 26, 2023
@meganrogge meganrogge added bug Issue identified by VS Code Team member as probable bug terminal-accessibility Issues related to the terminal help widget, accessibility buffer, or navigation mode labels Jan 26, 2023
@meganrogge meganrogge added this to the February 2023 milestone Jan 26, 2023
@Tyriar
Copy link
Member

Tyriar commented Jan 26, 2023

Performance isn't a concern but since it's an edge case I think it makes sense to listen for buffer changes and refresh it. We will probably need to append and not replace though

@jvesouza
Copy link

Another problem encountered is that if I type some text in the accessibility buffer, it is no longer updated. It seems that the problem only happens if the text is typed very close to the last line of the buffer. I tried to reproduce the problem by typing a text at the beginning of the buffer but I couldn't.
To reproduce try the following steps:

  1. Run some commands in the VSCode terminal.
  2. Press the shift+tab keys and explore the accessibility buffer using the arrow keys. Note that the executed commands result are present as expected.
  3. Move the cursor to the last line of the buffer and type any garbage.
  4. Press tab and run more commands in the terminal.
  5. Press the shift+tab keys and explore the accessibility buffer.

In my environment the result of the commands executed in step 4 are not present in the accessibility buffer, only the commands executed in step 1 are shown.

@steverep
Copy link

steverep commented Mar 6, 2023

Please treat this as a significant bug and not an "edge case". It's currently impossible to review the log of any running task or command until the task completes or the shell prompt is returned. That eliminates access to many common things like:

  • man pages
  • python or node in interactive mode
  • logs of significant builds or test suites
  • development watch tasks

@meganrogge
Copy link
Contributor

@steverep this is a plan item for the March iteration IE we plan to tackle it soon

@meganrogge
Copy link
Contributor

Repro:

  1. Run while sleep 1; do echo "Hi"; done
  2. Focus the accessible buffer, focus the terminal, focus the accessible buffer again
  3. 🐛 it doesn't update

meganrogge added a commit that referenced this issue Mar 7, 2023
@vscodenpa vscodenpa added unreleased Patch has not yet been released in VS Code Insiders insiders-released Patch has been released in VS Code Insiders and removed unreleased Patch has not yet been released in VS Code Insiders labels Mar 11, 2023
@joyceerhl joyceerhl added the verified Verification succeeded label Mar 22, 2023
@joyceerhl
Copy link
Collaborator

This still repros for me on Windows (without Narrator enabled):

  1. Enable "editor.accessibilitySupport"
  2. Run ls
  3. Shift+Tab while step 2 is running
  4. 🐛 accessible buffer contents are incomplete

If I click away from the VS Code window and then click back into it, the accessible buffer updates

@joyceerhl joyceerhl added verification-found Issue verification failed and removed verified Verification succeeded labels Mar 22, 2023
@meganrogge meganrogge removed the verification-found Issue verification failed label Mar 22, 2023
@meganrogge meganrogge removed this from the March 2023 milestone Mar 22, 2023
@meganrogge meganrogge added this to the April 2023 milestone Mar 22, 2023
@meganrogge meganrogge reopened this Mar 22, 2023
@vscodenpa vscodenpa removed the insiders-released Patch has been released in VS Code Insiders label Mar 22, 2023
@meganrogge
Copy link
Contributor

this is false when I'm typing in the editor. this should instead check if the accessible buffer is visible, which it did originally

@meganrogge meganrogge modified the milestones: April 2023, March 2023 Mar 22, 2023
@vscodenpa vscodenpa added unreleased Patch has not yet been released in VS Code Insiders insiders-released Patch has been released in VS Code Insiders and removed unreleased Patch has not yet been released in VS Code Insiders labels Mar 23, 2023
@joyceerhl joyceerhl added verified Verification succeeded and removed verified Verification succeeded labels Mar 23, 2023
@joyceerhl
Copy link
Collaborator

This still repros for me with the latest insiders.

@joyceerhl joyceerhl added the verification-found Issue verification failed label Mar 23, 2023
@meganrogge
Copy link
Contributor

@joyceerhl a gif would be helpful

update.mov

@joyceerhl
Copy link
Collaborator

terminal.mp4

(in the recording above, at about the 6 second mark I click out of the terminal and back in, and that apparently forces an update)

@meganrogge
Copy link
Contributor

can you repro if you start with a new terminal, don't run clear? i'm trying exactly what you show and not seeing an issue - in the latest insider's (as of 2 hours ago)

@Tyriar
Copy link
Member

Tyriar commented Mar 23, 2023

I can repro but it's quite difficult, there's probably some race condition where output occurs before the listener is registered. I suggest we action this as part of the _getContent testing/refactoring

@meganrogge
Copy link
Contributor

Considering this verified because it works in most cases and we will have a TPI next iteration to test the improvements we plan to make

@meganrogge meganrogge added verified Verification succeeded on-release-notes Issue/pull request mentioned in release notes and removed verification-found Issue verification failed labels Mar 23, 2023
@github-actions github-actions bot locked and limited conversation to collaborators May 8, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Issue identified by VS Code Team member as probable bug insiders-released Patch has been released in VS Code Insiders on-release-notes Issue/pull request mentioned in release notes terminal-accessibility Issues related to the terminal help widget, accessibility buffer, or navigation mode verified Verification succeeded
Projects
None yet
7 participants