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
screen reader support #317
Comments
I have just installed NVDA. I'm not sure how much such a visual tool like wxGlade can improve on accesibility. The main issues when starting seem to be:
I'm currently changing the overall window layout from using 3 frames to a single frame with splitters. After that, I would also like to implement some more keyboard options. E.g. when an empty slot is selected, press '+' or something like that to add a widget. |
Yes, I know about sizer. But I have no idea how would I add frame or GUI element. please help me to get started. Those unlabeled buttons really sucks!
|
Maybe you want to try text buttons. For this you would need to replace the function I'm currently re-designing wxGlade to use a single window with splitters instead of the three separate frames. Then I would also like to add a context menu and keyboard shortcut to add a widget into the currently selected slot (via a popup window). This would probably work better for you as you would not need to navigate too much between the windows. For this pop-up window, it's easier to switch to text buttons as it can occupy more space on the screen.
|
P.S.: It's probably better, you search for this line: Then replace it with this one: This will omit the redundant string 'Edit'. |
thanks a lot! it works. I noticed those issues which you mentioned. but at least, now, I am able to design GUI. please let me know when you are done with modification of wxGlade. |
The I'm not sure how usable the Properties window is for you as NVDA does not know about the structure.
|
Yes, you are right. NVDA doesn’t know about structure in properties of control. However, NVDA object navigation helps me to get my work done. It’s annoying. But I have no any option.
Best wishes for your great work
|
hello, I tried to do this also, got the buttons to speak their labels, but I can't place them on slots using the keyboard. I tried clicking the buttons then the slot, copy pasting and even simulating mouse dragging with the keyboard, nothing seemed to work. I'm running Version 0.9.1 on Python 2.7.16 and wxPython 4.0.4, win 10 x64.
Thanks |
I will have a look. Currently there is no way not to use the mouse. |
Please check out the branch NEW_STRUCTURE.
This should enable text buttons instead of icons. |
Great, it works! Since then, I found the problem in my code, I had to use ToggleButton instead of button and I made it work too, but it's better to be able to control it from config options. |
The only thing that I see in your linked code is that always a spacer is placed between linked elements. This is not required or common, as usually a border is used for this. wxGlade is a bit special when creating the labels in P.S.: I'm assuming you're talking about the Properties panel of wxGlade itself, not your code. |
Ok, I found the issue, and it is really strange. It all happens because you first create text controls in init, and create static textsts in do_layout, after the text controls. Even though they are added in the correct order in the sizer, NVDA sees them in the order you actually instantiate the objects. Just moved the static text to init and it works. I think it will work if you change the creation order.
Thanks.
|
Probably NVDA is checking the IDs of the widgets and assumes a StaticText with ID x and a TextCtrl with ID x+1 to be linked. With the StaticText being created in do_layout, the IDs are no longer adjacent. I don't have a time frame for this change yet. |
I have moved the new code generation to the top of my list. |
oops, sorry about that. I was asking whether there is any issue I can subscribe to in order to get notified when you'll implement that. thanks.
|
I think something went wrong when posting or sending the comment... |
oops, sorry about that. I was asking whether there is any issue I can subscribe to in order to get notified when you'll implement that. thanks. |
I will post it here. |
A very, very first version is online in the branch NEW_CODEGEN. Maybe it does work already for you. |
I'm trying out and I'll let you know how it goes! |
Ok, I've checked out the new codegen branch. I'm able to add gui element and remove them easily. right now, the windows that lets change the various property of any gui element is inaccessible. I. E. when I press F3 to go to properties, the fields name are not announced. NVDA just says, "edit " |
Instead of NVDA+SHIFT+M you should be able to add the widget to the slot by just hitting Enter. With F3 you only get to the panel. You can then move on using Tab to move to a specific field or Ctrl-Tab/Ctrl-Shift-Tab to move to another notebook tab. I also see that the "Name" in Windows Inspect is displayed for generated code now, but still not for wxGlade. |
OK, if I use a P.S.: I think that on Windows I can use StaticText in |
OK, I'm now using StaticText. It will take some time until I upload the commits as I need to do some more testing. |
thanks, the generated UI's are now indeed being read by NVDA! The properties window doesn't worry me so much, as I can get to the corresponding label using object navigation. Rather, the thing concerning me is adding events. Pressing add or insert doesn't seem to trigger any UI action visible to NVDA, and it doesn't read that grid either. The only thing it does is show me an edit control when pressing space, but I don't know what to type into it. |
Grid is probably no Windows control, but something painted by wx itself. For grid based properties like the Events, it would probably be possible to add an edit dialog to allow editing events line by line. |
actually, the list in the toolbar editor seems to work, I guess it's a standard listbox control |
So, the best solution would probably be to add an option "Use list instead of grid". Unfortunately, the implementation of It's probably also time to add an "Accessability" tab in Preferences... |
@adil-s : I have just updated the tree navigation. When using the up/down arrow keys inside the tree widget, the nodes should no longer be expanded. |
I've tested out the improvements and it works perfect. I think, now only the event editing needs little fixing. |
OK, the problems with events that I see:
Please note that currently there's no point in removing events. If you don't enter a handler name or delete the handler name, no handler will be created. Removing will be more interesting in a future version where I plan that you can add e.g. all mouse events in one go. Then it will make sense to save events without handlers and to manually remove unused events. What ist the situation with the palette when selecting the widget to add? You can focus it with F4, but you still need to move through the buttons all one after the other, right? Or does NVDA offer shortcuts here? I could imagine that some of these options would improve situation a lot:
|
you're right about event editing. |
I have just uploaded changes to implement basic keyboard navigation in the palette. Please try for a few days and give feedback whether the up/down navigation make sense as it is. It will currently remain in the column. E.g. down arrow will move from ToggleButton to Choice. I could change this to jump to the first column, i.e. TextCtrl. Currently you have to use the mouse or the space bar to activate a button. I could change this such that Enter also does activate and at the same time jumps to the tree section. I had a look also at the grid property editor for events etc. |
Sorry if this is a really long, but I hope it will be helpful. NVDA log on a button which is read correctly: frame button. On another button that is labeled correctly: Dialog button The logs on the first checkbox in the interface: The logs on the same checkbox, when checked: As we can see, on the labels that are beeing read out correctly, everyone of them have a name property set, so checkboxes should also have the name attribute set in order to make NVDA read it correctly. as I was developing my apps, static text elements are not beeing read by NVDA unless screen review mode is beeing used, you can't even focus them with NVDA if you really wanted to, unless you set focus programatically. So, it would be very appreciated if you set a name value on each checkbox that appears on interface. |
Please try wxPython 4.0.3. At least for Python 3.7 32 bit that solved the problem. There's not much that I could do on this. If you confirm that for Python 3.6 the problem is also solved by using 4.0.3, I will add at least a note to the accessibility configuration page. I will also post on the related thread on wxPython discuss: https://discuss.wxpython.org/t/screen-readers-not-reading-field-labels-in-wx-python-4-0-4/34439/2 |
hello! i will update my python installation and give it a try on at least python 3.7. i'll let you know how it goes. BEFORE that, i'll try to test a 4.0.3 of wxpython on the same installation of python. |
Leave Python 3.7. Just replace your wxPython with 4.0.3. That's less work and would be more interesting for me as it would make me more confident when adding a version check to wxGlade. I've posted a detailed description on the wxPython discuss site. Maybe Robin finds the time to look into or maybe he just finishes 4.1 which also seems to fix the issue. |
Hello! I have tested the wxglade with wxpython 4.0.3 and, it works perfectly! The strange thing is, that the name attribute is beeing set automatically in 4.0.3, but issue persists in 4.0.4 and up. That is really strange. I have no idea what is the issue, but in fact, it works. It would be nice if someone there from wx community looks at this issue and fixes it in later versions. |
BTW, probably a quick fix would be to package a whole project with pyinstaller and ship a wxpython 4.0.3 with it (just for ease of usability), or place this package in the project directory, because when a script tries to import it, it first will try to use the modules from the directory and then from the system directory. Besides, there is another option, to use virtualenv and install necessary version of wxpython in there and call wxglade from that environment. Once issue is fixed from wxpython side, this workaround will not be necessary anymore. |
I have added a warning to the accessibility dialog. A wxPython 4.1 version will be out in the next days. Adding a Creating installers is /not/ a quick fix. It's a major effort and there's no point to have incompatible wxPython versions. |
Hi, |
At some point I may add support for a FilePickerCtrl, but this is a low priority (I never used this myself). It would be nice to have some kind of wizard to generate code for FileDialog, DirDialog and MessageDialog, but it's unlikely that I will do this. |
In the last weeks I have updated the master thread a lot. Right now I have also updated the grid property editor, i.e. the editor for e.g. Events, Notebook tabs etc. While collecting feedback and bug reports, my focus will be on updating the documentation and improving usability on some points. Please also give note if there are ways to improve the accessibility of the documentation, especially the screenshots. Do Alt-Texts help? Regards, |
Dietmar,
I’m feeling brave, and will do some testing on this.
As to the documentation, providing helpful alt text may not be possible, as the alt text will need to be very long to be of benefit. I’ll look through the documentation, and if there are points where I feel more explanation might be helpful, I’ll let you know,
David.
From: Dietmar Schwertberger <notifications@github.com>
Sent: 28 July 2020 20:35
To: wxGlade/wxGlade <wxGlade@noreply.github.com>
Cc: davidkreynolds <david@dkreynolds.plus.com>; Comment <comment@noreply.github.com>
Subject: Re: [wxGlade/wxGlade] screen reader support (#317)
In the last weeks I have updated the master thread a lot.
The updates are the base for a future 1.0 release. The changes are mainly internal to make the structure more maintainable and extensible. This needs a lot of testing on different platforms. On Windows I have not noticed problems.
The Class name, Base class and Instance class properties are slightly different and not yet finalized.
Right now I have also updated the grid property editor, i.e. the editor for e.g. Events, Notebook tabs etc.
The updates are mainly related to the accessibility option "Show editors for Grid Properties" and should improve the synchronisation between these editors and the associated grid control.
If you are very brave, you may start testing.
While collecting feedback and bug reports, my focus will be on updating the documentation and improving usability on some points.
Please give note if there are accessibility issues to be fixed or improved.
Please also give note if there are ways to improve the accessibility of the documentation, especially the screenshots. Do Alt-Texts help?
I need to renew the screenshots anyway.
Regards,
Dietmar
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub <#317 (comment)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/AD4CGCBZ44S455VYCO7KFKLR54R67ANCNFSM4E5WEGSA> . <https://github.com/notifications/beacon/AD4CGCB7NKDKWMEGTFZH7Q3R54R67A5CNFSM4E5WEGSKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOE6TLA2Y.gif>
|
Work on features for 1.0 is finished. Documentation is updated. |
Hi! You need to stay in the text controls above the grid. That's why they are there when you have enabled "Show editors fro Grid Properties". |
"grid" is absorbed by the rest of the keyboard presses, except for the arrows, when the arrows are pressed, NVDA is silent, you can only find out which element is selected, you can only copy ctrl+c and listen to the contents of the clipboard. You can live with this if you know the keys for focusing on other sections of the window, or by pressing CTRL+TAB, but still I decided to say this, since the usual TAB/SHIFT+TAB NVDA focus gets stuck and does not exit |
Dietmar,
When screen reader support is running, couldn’t you gray out that table so that we don’t get in there by mistake. Only a suggestion, and I recognize that there may be a knock on effect when doing this,
Best,
David.
From: Dietmar Schwertberger <notifications@github.com>
Sent: 19 January 2021 20:37
To: wxGlade/wxGlade <wxGlade@noreply.github.com>
Cc: davidkreynolds <david@dkreynolds.plus.com>; Comment <comment@noreply.github.com>
Subject: Re: [wxGlade/wxGlade] screen reader support (#317)
Hi!
You need to stay in the text controls above the grid. That's why they are there when you have enabled "Show editors fro Grid Properties".
When you are in these controls, you can move from line to line with the up/down arrow keys.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub <#317 (comment)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/AD4CGCENYQ6FTQ7QXLBLOWLS2XUP3ANCNFSM4E5WEGSA> . <https://github.com/notifications/beacon/AD4CGCFETHGNZMYLQXYVA63S2XUP3A5CNFSM4E5WEGSKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFV6FUWY.gif>
|
Well, I will do whatever can reasonably be done. Greying out is not so nice as e.g. I'm using the grid as well as the separate editors. |
@DietmarSchwertberger grid view is not compatible with screen readers in any gui tool. Perhaps hiding it while the screen reader is active would be a good solution. |
OK, I have modified the REV_1.0 and master branches accordingly. Please test and provide feedback. |
Dietmar,
Point taken. Yes, if you could manage that, it would be great. I tend to get a bit trigger happy with the tab key at times…
Thanks,
David.
From: Dietmar Schwertberger <notifications@github.com>
Sent: 19 January 2021 21:31
To: wxGlade/wxGlade <wxGlade@noreply.github.com>
Cc: davidkreynolds <david@dkreynolds.plus.com>; Comment <comment@noreply.github.com>
Subject: Re: [wxGlade/wxGlade] screen reader support (#317)
Well, I will do whatever can reasonably be done.
Would it help to stop Tab from moving into the grid? E.g. when the cursor is in the "Handler" text control and the user presses Tab, don't move to the grid but call wx.Bell instead?
Greying out is not so nice as e.g. I'm using the grid as well as the separate editors.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub <#317 (comment)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/AD4CGCBSFGMNVPKRI7DYLVDS2X2ZJANCNFSM4E5WEGSA> . <https://github.com/notifications/beacon/AD4CGCC3FAG26FTDR3QDZ6LS2X2ZJA5CNFSM4E5WEGSKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFV6M4YA.gif>
|
Dietmar,
Will do,
Thanks for changing this,
David.
From: Dietmar Schwertberger <notifications@github.com>
Sent: 19 January 2021 21:54
To: wxGlade/wxGlade <wxGlade@noreply.github.com>
Cc: davidkreynolds <david@dkreynolds.plus.com>; Comment <comment@noreply.github.com>
Subject: Re: [wxGlade/wxGlade] screen reader support (#317)
OK, I have modified the REV_1.0 and master branches accordingly.
Please test and provide feedback.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub <#317 (comment)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/AD4CGCHWWD2RO4SPEAPSUBTS2X5O3ANCNFSM4E5WEGSA> . <https://github.com/notifications/beacon/AD4CGCGZJQ6TXJGSVEQHMF3S2X5O3A5CNFSM4E5WEGSKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFV6PYWI.gif>
|
There has to be another way out. If you hide it, then how do you look through the list of events at the elements and the list of headers at "list ctrl" and manage it?
|
@adil-s @alekssamos @davidkreynolds @alekssamos @vortex1024 @SeanTolstoyevski @Menelion @ashleygrobler04 |
I have just download wx Glade and tried using it with NVDA (an open source screen reader) on windows 10. but the screen reader support was very poor. it feels like there is not any accessibility implementation.
if it is possible, I request you to add this feature.
The text was updated successfully, but these errors were encountered: