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

FAQ - Use ZAP with a screenreader #350

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

psiinon
Copy link
Member

@psiinon psiinon commented Mar 3, 2021

C/o https://twitter.com/zersiax/status/1366818505274908676
Original is https://www.dropbox.com/s/na61sia1se31xru/zap%20SR%20docs.md?dl=0 - I've made a few minor edits but otherwise its nearly word for work.
Although it does mention the HUD I've put it under the "Desktop UI" section and have not said its Windows specific.
I've asked the author in the above thread about its applicability to other OSs so we should probably wait for his reply before merging with that change.

Signed-off-by: Simon Bennetts [email protected]

@zersiax
Copy link

zersiax commented Mar 3, 2021

These instructions are specifically for Windows and, to some degree, even screenreader-specific. Java Swing UIs vary wildly in their "quirks" for screenreader users, I'd have to go in with VoiceOver for OS X and Orca on Linux to see what oddities I find and if it even works at all.
Swing long ago decided to do their own thing accessibility-wise rather than adhere to the already existing OS-specific accessibility stacks that were already in place, and while that means it should be accessible everywhere in theory, in practice it just means screenreaders support that particular brand of telling them what to say to varying degrees.
A super small example is that I refer to using tab navigation within most ZAP windows. On OS X you practically never tab navigate through UIs as it rarely works well; you use VoiceOver commands, and I have no idea if those work well in the ZAP UI yet.
Some of these findings, particularly the ones on the HUD, will likely change / get better or worse as the project further develops anyway, so I can always just make separate Prs if:

  • Bugs get fixed that render some of the points discussed here no longer applicable;
  • I learn more about other operating systems.

In my experience though, I would say that Windows with NVDA the way I've described it so far will very likely be the happy path, as that combination gives the most breathing room in terms of the amount of different things you can do in order to make an uncooperative application work well.

kingthorin
kingthorin previously approved these changes Mar 3, 2021
weight: 7
---

ZAP, as well as its add-ons, uses Java Swing for it's user interface. For screenreader users, this means that even though a lot of the user interface components technically work, the experience could be better in places.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it'sits, I didn't check all text yet (there might be other typos).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch

The ZAP UI is, generally speaking, pretty good about tab navigation. Once you land on a place you can tab from, it's generally smooth sailing except for the various gotchas we will outline below. You can tab around the zap UI and use other regular Windows navigation keys, unless:

- You open the program for the first time. Currently, the focus starts in No Man's land after dismissing the dialog regarding session persistence. To fix this, object-navigate (or JAWS cursor) to the quick start tab and mouseClick the Manual Explore button. For NVDA this requires routing the mouse to the object navigation cursor first.
If you cannot tab from this point onwards, alt+tab out and back into the application. You should land on the " safe mode" toolbar button.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If you cannot tab from this point onwards, alt+tab out and back into the application. You should land on the " safe mode" toolbar button.
If you cannot tab from this point onwards, alt+tab out and back into the application. You should land on the "safe mode" toolbar button.


## ZAP HUD

At present, the HUD works reasonably well if you stay in browse mode. Hitting enter on the various graphics will toggle them or interact with them, we recommend going through the HUD tutorial to learn how most things work. The tutorial will refer to the images' contents, their filenames are reasonably clear on what they contain, use that to your advantage.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
At present, the HUD works reasonably well if you stay in browse mode. Hitting enter on the various graphics will toggle them or interact with them, we recommend going through the HUD tutorial to learn how most things work. The tutorial will refer to the images' contents, their filenames are reasonably clear on what they contain, use that to your advantage.
At present, the HUD works reasonably well if you stay in browse mode. Hitting enter on the various graphics will toggle them or interact with them, we recommend going through the HUD tutorial to learn how most things work. The tutorial will refer to the images' contents, their filenames are reasonably clear on what they contain, use that to your advantage.


A few gotchas once again:

- To check the status of the scope tool, break tool etc. look at the text right below the graphic in browse mode. This text will reflect it's current state (on/off, in/out etc.).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- To check the status of the scope tool, break tool etc. look at the text right below the graphic in browse mode. This text will reflect it's current state (on/off, in/out etc.).
- To check the status of the scope tool, break tool etc. look at the text right below the graphic in browse mode. This text will reflect its current state (on/off, in/out etc.).

@zersiax
Copy link

zersiax commented Mar 3, 2021

Just did some testing with Orca (Linux screenreader). While the very basics kinda work, anything involved quickly runs off the rails because the screenreader-specific cursors (to get places tab can't get you to) just flat out do not work in applications like this. So ... in a pinch I guess you can get as far as starting a Manual Explore session, but I would discourage people from doing this unless they really don't have any other options left.

@kingthorin
Copy link
Member

@psiinon do you plan to finish this?

@psiinon
Copy link
Member Author

psiinon commented Sep 22, 2021

In theory yes, but it looks like it needs a significant rewrite :/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

4 participants