.. | ||
README.md | ||
WindowsTerminal.jcf | ||
WindowsTerminal.JKM | ||
WindowsTerminal.JSS |
Windows Terminal Access
Why?
Microsoft announced in 2019 the new Microsoft Terminal which will replace the old Conhost solution in everyday use.
Advantages of MS Terminal
It has a high number of advantages. Very personalizable, works as a normal window which makes easier to support accessibility, multitab support, extended mark mode, customizable keyboard commands, profiles and more.
The problem
MS Terminal not supported the communication with screen readers first. After that Microsoft introduced UIA support, NVDA followed it and now supports it well however JAWS users can not use the Terminal.
The following problems might occurs in JAWS in the everyday usage
- Randomly readed lines
- When reading with JAWS cursor, the window and text jumping and focus might be lost
- On SSH sessions, randomly announced informations, not work with ncurses apps and other issues which makes it very unconfortable
Behind the problem
The JAWS script that built in J2025 uses a method that grabs the text from Terminal and with a timer make comparison which updates on defined events. Problem with this is that ncurses-based APPS (E.G. nano, VI, Pico) writes to their GUI to screen with characters which causes that JAWS detects a redraw on every character change (delete, insert). It is not good. UIA is available, but JAWS still uses the own development.
Freedom Scientific until 2025-03-30 does not fix the problem so Terminal unconfortable.
Issues related to this
The fix
My script - based on Freedom's code - fixes this problem by adding the UIA support and removing the old, text scanning way.
Features
- Support UIA, make the terminal and ncurses apps usable
- Fix UIA announcements to work with specified punctuation level and try to follow the line endings in the announcements to avoid the announcing of special chars with disabled punctuation level.
- Turn off the every screen item auto-read feature and read only the changed content
- Prevent announcing unneccessary information (honour the keyboard echo setting)
- Support the auto-completion feature
- Support UIA only in Terminal (and let other events, E.G. volume changes to handle the default script)
- Turn on (temporarily) and off the indentation echo feature in Terminal with JAWSKEy+Shift+i command. Supported in text editors (Nano, Vim) and command outputs (E.G.
kubectl ... -o yaml
orargocd ... -o yaml
).
Known issues and todo
- Try to detect prompt and turn it's announce off when navigating on the command history (up and down arrow).
- Ability to temporarily disable UIA for a while to avoid too large amount of text, E.G. using mtr or top, where content changing randomly
- Saying bad characters when try to mark text in mark mode. Workaround is to mark only lines with CTRL+up-down arrow and press CTRL-SHIFT-c to copy. Do not mark single characters or partialy section of lines.