-
Notifications
You must be signed in to change notification settings - Fork 280
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
Improve accessibility #1308
Improve accessibility #1308
Conversation
@benoit-pierre, this is great!
|
80e72d7
to
a9afb1a
Compare
OK.
I already did set an accessible name for the dictionary table, but for some reason, NDVA or Narrator don't read it, unless you move focus inside the table (with the arrow keys). Orca does correctly say the name when focusing the table (after tabbing to it).
I'm not sure I understand your point, what do you mean by "to f1 and the press a letter"?
Isn't that the standard behavior for a combo box? One thing I've noticed, is that in the Orca settings window, when focusing a combo box after tab-key navigation, the screen reader will read both the label and the combo box current value, but for example in Plover's configuration dialog, after focusing the "Dictionaries display order" combo box, the screen reader will read the associated label and the description, but not the current value. Same issue with NVDA, but Narrator does read the current value too. Anyway, I've now gone over all widgets, accessibility should be better. Some things still seem far from optimal. For example, take the "Add translation" dialog: there's no feedback when entering the stroke/translation, and you can't focus the two labels reporting on existing mappings. |
I go to key named f1 and then I press a letter.
In fact, this is the standard behavior of combo boxes, but maybe I'm missing something, since I don't know the right way to use this dialog. I'll test this pr and may provide more feedback. Also, I may search NVDA issues in its repo in case there's some problem with these widgets. Thanks |
NVDA 2020.4, on Windows 10, is reading the value for me. this is a copy of feedback in Spanish:
I note an extra word: "abajo" (down). In the add translation dialog, I can read the text entered by me for strokes and for translation, but I cannot focus the current mappings. |
You're right, I got it wrong, NVDA works, Orca does not. No idea if it's a configuration issue, or a problem with Qt itself on Linux. |
OK. About the issue produced when pressing tab when the dictionary table is reached, not read on Windows, I have used NVDA+f1 to read developer info for the table object, and it appears as not focusable. Seems to be presented as a container, in case this helps. |
I think the issue with tables (not just the dictionaries table, but with others too) is a Qt bug: https://bugreports.qt.io/browse/QTBUG-91029. It's marked as fixed in 5.15.4, but we're using 5.15.2. Unfortunately, I'm not sure we'll get an update (no more open source updates for the LTS branch, commercial only). Another issue I've noticed, is that when activating one of the tools, like the lookup dialog, NVDA will announce things twice. It looks like this one is a NVDA bug: nvaccess/nvda#12035. |
Thanks for this investigation! Anyway your changes make Plover to be more accessible than previously. Another possibility would be, since Plover and NVDA use Python, to create an NVDA add-on to use WX, invoking Plover methods, in case there is a library to send messages from another application to Plover. Or, in case this is not possible, maybe document how to perform certain tasks? For example, I use git grep searching in the repo to see if a translation is contained in my system. This is a rudimentary method (make a search in the plugin repo with github grep), and if there is a better method it can be documented. Cheers |
91d52af
to
65a3b68
Compare
I've rewritten the suggestions widget, which is used both by the suggestions tool and the lookup tool (for displaying the results): it's now a list, so you can navigate the lookup results / suggestions with the arrow key. I've also tried something; each entry in the list as a custom accessible text with the strokes written differently: each stroke letters are space separated to force the screen reader to spell each stroke (with a verbatim
That would basically mean rewriting the UI to use WX: no thanks. Sorry, but we switched from WX to Qt for a reason.
I've changed the dialog to use 2 text edits for the existing mappings, please test. |
What about the paper tape? Would using a list like the new suggestions widget be better? |
I think this may not be very useful, since screen reader users can choose if they would like to spell sequences of characters and it takes more space in braille displays, so, depending on the line lenght and the number of cells of the display, maybe required to perform mor scroll pressing the corresponding buttons on the braille device. Anyway, I can use properly the add translation and lookup dialog. Thanks so much! Definitely, when applicable, for example in the paper tape dialog, it's better to use list instead of the current readonly edit box. Thanks |
Right, makes sense.
OK, what should the accessible text for each entry be: the same string as for the display, or the RTFCRE representation for each stroke? Right now, I've chosen the later. |
Can you explain what's the difference, or provide an example or steps to reproduce? Thanks |
The paper tape as 2 display modes, do we want the accessible text to reflect those or not? In raw mode, the accessible text will be the same anyway (the stroke RTFCRE representation), but in "Paper" mode, it might be more useful to still use the RTFCRE representation for the accessible text (which does not mean there's no point in using the "Paper" mode, as it still would be of use when using the save function to ensure the output is formatted a certain way). |
I understand. Then I think we should use just the RTFCRE representation. I suppose that the display may not have sense for screen readers, or may consume extra spaces. The important thing is that, for example if we need to ask a question on mailing list or in the chat and someone request to provide the contents of the paper tape to give help, we aren't limited and can perform the task. |
65a3b68
to
be135ce
Compare
Agreed. OK, done, I think this is ready for review. |
be135ce
to
4128999
Compare
Hello, I cannot focus the paper tape. Also, the dialog to select font is not properly read by NVDA, though it's usable. Here's developer info about the papertape containing text. I have reached it with object navigation of the screen reader, which is not the ideal way and is intended to reach objects that cannot be read with the system cursor.
|
Why not? I have no such issue.
That's the list header, which you can ignore, and is not supposed to be focusable. It's also only shown when the style is set to "paper tape". Previously it was a separate label, but I've switched to use the list header to improve the alignment with the list entries. The list entries themselves are focusable, and navigable using the arrow keys on my side (both with Orca and NVDA).
It does behave weirdly. Unfortunately, it's also a standard dialog provided by Qt, so I don't know what we can do about it (I really don't want to have to recreate it). |
Not sure. I'll restart my computer and try again. |
I will test later or tomorrow. My computer Windows is being updated. When you merge this PR, if there are widgets that cannot improved here, I may try to create an app module to use Plover with NVDA, for example, trying to read the state of dictionaries, checked or not checked, when pressing space over an item without needing to use arrow keys, and for the select font dialog. App modules can be created to improve access to applications with the screen reader, ideally to fix issues that cannot be addressed in the original program. Really your work here is excellent. Thanks. |
For the dictionaries widget, now that I know how to set the accessible text of a list item, we could just use that. |
Ensure navigating table-like options keep the current focused row visible.
No need for a dedicated UI file when the whole widget is just a text edit.
adfffc7
to
247d4ea
Compare
Updated on top of #1332: the dictionaries widget now uses a list too. |
Great, hope these accessibility improvements can be available for the next stable release or before. This is amazing! |
Great, thanks. |
Summary of changes
Partially address:
Supersede #1293.
For now, it's only a partial pass on the main windows, and parts of the configuration dialog:
@nvdaes: is this a step in the right direction? Please provide feedback (focusing on those 2 dialogs), and we'll iterate until its satisfactory before doing a full pass on the rest of the application.
Some potential issues I've already identified:
[label]: [setting]
.Pull Request Checklist