-
Notifications
You must be signed in to change notification settings - Fork 423
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
Automation and Screen Reader Support #113
Comments
@brandon: Thanks for your contributions. I think they are quite helpful. I am not very familiar with the procedures but maybe we should try pushing On Mon, Feb 9, 2015 at 2:28 PM, Brandon notifications@github.com wrote:
|
Hello, I have been talking to the developer of pyGUI and he said that the way pyGUI is made, it is inextricably linked with the event and native graphics. But if we wished to use pyGUI, it seems as if we will need to run kivy inside pyGUI. |
@frastlin Last year, I participated in Kivy's GSoC (http://kivy.org/docs/gsoc.html) where they involved student interns to work on project ideas like these. Maybe we can include this idea as a part of the proposal for 2015. |
That would be awesome! I think that if it were a GSoC project, the goal should be to create a library that any application can call to register their widget types. There is not currently anything like this out there and that excludes screen readers and automated testing from working on any apps made with Tkinter, pygame, Ogre, pyglet, panda 3d, blender, Kivy and basically any library that uses a drawing surface like OpenGL. |
@tshirtman / @brousch ping! |
OK, I'm doing some more google searching and I found
Here is one PyUIA autimation that uses IronPython |
I've looked at this a lot more, and I'm going to ping a bunch of people I know some of whom make me look like a novice. |
Kivy has a limited number of widgets and most deal with the basic edit field, menu bar, applications menu, button and label. |
wxWidgets basically dodges the whole accessibility problem by using the native widgets on each platform. |
Some conversation on Twitter got me looking at this again. Should this issue be filed against a different project? Looking at how things are split, it looks like this touches multiple sub-projects. |
Good day, I am a blind user and startup programmer in python. For the statement on blind people hate android I would disagree. I found android easier to use then iPhone. I want to write a app for android that can do ocr of images and more but using python kivy is about the only solution I found. So it would be great if a solution can be found. Do kivy have a option or flag that can describe the button or label when moving your finger over it like wx python have a option to include a description for widgets? I googled and could not found anything. If kivy is more accessable I could not found any documentation about it or how to do it. Thank you |
@blindguydiy This library uses direct rendering to graphics for it's controls if I remember properly, the upshot of which is that simple accessibility properties such as those you are hoping for require a full accessibility implementation, an effort on the order of 5000 lines or more. if you are looking for a reasonably blind accessible way to do mobile app development--iOS, Android, or both--I'd suggest React Native. It's not tied to an IDE, they have accessibility built in, and your app will work on both iOS and Android. I am not aware of a Python UI library which is both accessible and supports mobile. |
@camlorn Kivy's pyjnius project has already solved the problem of implementing JNI interfaces from Python. So that specific problem is not a barrier to implementing Android accessibility in Kivy. I saw the Bountysource link on this issue, and have pitched in $1000 out of my own pocket. That may barely make a dent in the problem, but it's what I can afford personally. I'll also be happy to offer advice to anyone who steps up and works on this problem, particularly for the Windows implementation, but I can't do the work myself, at least not now. |
We could use pyWinAPI (specifically IRawElementProviderSimple) for implementing automation features on Windows; on Linux, there's PyGObject with Atk.GObjectAccessible and Atk.ObjectFactory. I should have a working prototype within a week, starting with Windows |
It seems to me that the work of implementing platform accessibility APIs belongs in the main Kivy project, not Plyer, since it needs to be an integral part of the UI framework. See also kivy/kivy#5836. |
Tricky. There’s a huge platform specific part to it, too (i.e. plyer, or
pyjnius/pyobjus)
…On Sun, Jun 16, 2019 at 10:55 AM Matthew Campbell ***@***.***> wrote:
It seems to me that the work of implementing platform accessibility APIs
belongs in the main Kivy project, not Plyer, since it needs to be an
integral part of the UI framework.
|
I'm a newcomer to Kivy, so anything I say about project structure should be taken with a grain of salt. But there is already a precedent for using pyjnius and pyobjus directly within the main Kivy package for things that are integral to the UI -- specifically, the clipboard. |
Good day. Well from the accessibility between android and iPhone in South Africa I found a lot of blind people I know are going over to the android system for they have much more free accessibility apps. But that a side. I will have a look at React Native, but feel still there must be some way to make kivy accessibility. I am developing on windows and trying on android to make a accessibility app for free for people like me. For I know how it feels that you have to pay for what a seeing person can do for free just looking at a document or product. There is apps available out there but cost a few bucks. For some reason people think the blind community is very rich, lol. But if you take a small figure like 300000 out of those 300000 only realy 50000 blind users can really afford the accessibility apps and assistive gadgets. That is why I feel like that at least in the computer world of today that all programs should at least be some accessibility conscious. To give access to all information to all across the board and not excluding a minority because of a disability. But will look around to see if I can find some other solution. What happened to the papi pygame from 2008. Just saw they tried to do some accessibility with pygame. |
It's 2023, and there doesn't appear to be any update on Kivy being compatible with screen readers on either Windows or Android. |
For anyone interested in this, the current tracking issue is kivy/kivy#8596 |
I posted
On the main Kivy issue page
But I realized this is the place I should post.
There are quite a few libraries that create accessible widgets for Linux Windows and OS X:
WXPython
PyGUI
Easy GUI
What they do is use pywin32, pyatspi and I believe coco for IOS.
The native designation is what we are after. If an app can be run through automation scripts, then only labeling needs to be done to make it completely accessible.
Kivy seems to be very much based off of pointer access and on mobile platforms this is OK (Although being able to flick from object to object is optimal), but on Windows, Linux and Mac, the mouse is almost never used. In the current Kivy setup, I can't even click a button with the enter key. So along with native widget support, Kivy will need to add keyboard handling to their desktop apps.
The two libraries above that seem to be the best are WXPython and pyGUI.
WXPython is quite an active library, but it is quite a large library and is perhaps a little over-kill for what is needed here. It is, however, the most accessible of all the options above. (There are not that many bugs and it is much more stable).
pyGUI is a lot smaller and I have not really played too much with it, but the examples I ran were kind of buggy, but they worked to some extent. Elements like labels were not the nicest I have ever seen and the buttons were bouncing my screen reader around, but I think that is more the way the key events are being processed.
It is possible to build a wrapper around the system accessibility frameworks directly, but if pywin32 is already included to Kivy and the linux accessibility is in python, there is only OS X and the two mobile platforms to deal with.
I have no experience with IOS or Android, but here are their respective accessibility modules:
Here is the OS X accessibility API for apple
--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/8429833-automation-and-screen-reader-support?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).iOS accessibility API
Android
The text was updated successfully, but these errors were encountered: