weaveworks / scope

Monitoring, visualisation & management for Docker & Kubernetes
https://www.weave.works/oss/scope/
Apache License 2.0
5.84k stars 708 forks source link

Terminal is not accessible with screen readers #3840

Open alper061 opened 3 years ago

alper061 commented 3 years ago

Hi!

What you expected to happen?

I tried to use the terminal feature with my screen reader software. I think it will work, because terminal is text based, and my screen reader can interpret it.

What happened?

Not worked, screen reader can't read the terminal output text. Because the output is not in text format The output is on a canvas / image. And screen reader can't interpret it. I can run an OCR software, but its not a reliable solution.

How to reproduce it?

Try the terminal feature with jaws for windows, or nvda screen reader software.

Anything else we need to know?

I used jaws for windows as my screen reader. But nvda will work too. The solution is replace the terminal image output to text instead, or add an option to switch on text output instead the image/canvas mode.

Versions:

latest, but not relevant

Logs:

Not relevant.

bboreham commented 3 years ago

Thanks for your report.

Scope's terminal is implemented using the xterm module, and according to its description, "Screen reader support can be turned on using the screenReaderMode option". So, if someone can figure out exactly how to do that, and check it still works, we can merge that change.

alper061 commented 3 years ago

I figured out how to do: ``

`` For example in JavaScript. I tested with my screen reader (jaws for windows) and it worked, the output was read perfectly.

I thinking how to implement in Scope. I don't know if i switch screenReaderMode on, the ui how changes. I see two options:

  1. Switch on the option by default in terminal, if the change not changes the UI.
  2. If the option changes the terminal ui negatively, i thinking an accessibility mode option to settings, and if switched on, the terminal instance will replaced with another instance with screenReaderMode enabled.