weaveworks / scope

Monitoring, visualisation & management for Docker & Kubernetes

Home Page:https://www.weave.works/oss/scope/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Terminal is not accessible with screen readers

alper061 opened this issue · comments

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.

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.

I figured out how to do:
<script> var term = new Terminal({ screenReaderMode: true }); term.open(document.getElementById('terminal')); term.write('Hello from \x1B[1;3;31mxterm.js\x1B[0m $ ') </script>
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.