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

Adding Support for Automation and screen readers #2820

Closed
frastlin opened this issue Jan 3, 2015 · 2 comments
Closed

Adding Support for Automation and screen readers #2820

frastlin opened this issue Jan 3, 2015 · 2 comments
Labels
Type: Feature Issue is a feature request

Comments

@frastlin
Copy link

frastlin commented Jan 3, 2015

It would be really helpful in application development if accessibility for automation for large apps and screen readers was either built in or added as an option.

There are several libraries that do this currently to some extent or another:
WXPython
PyGUI
Easy GUI

Currently Kivy has accessibility options for many disabilities, but nothing yet for screen readers. It also does not work with any standard application automation tools.
The best way to do this would be for Kivy to start utilizing native OS APIs for each platform. For example, on Windows, becoming a UI Automation provider gives the applications visibility to the screen reader and allows all the screen-reader's functionality.


It may be advantageous to use one of the above widget tools to plug-in to Kivy. For example, pyGUI is accessible on all three major operating systems and has no dependencies other than pywin32 and ctypes. It is also quite small.
Otherwise:


In order to use the native GUI support on windows, one needs to use pywin32 or the UIA Automation dll directly.
As Kivy already includes pywin32, this would be the best idea.


The accessibility module on Linux is:
https://github.com/GNOME/at-spi2-core
at-spi2-core
There is a module called pyatspi:
"A Python wrapper around libatspi providing a more Pythonic AT-SPI interface that is compatible with the original CORBA-based pyatspi."
http://www.linuxfoundation.org/collaborate/workgroups/accessibility/atk/at-spi/at-spi_on_d-bus


Here is the OS X accessibility API for apple:
https://developer.apple.com/library/mac/documentation/Accessibility/Conceptual/AccessibilityMacOSX/AboutOSXAccessibility/AboutOSXAccessibility.html


iOS accessibility API:
https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVSpeechSynthesizer_Ref/index.html


Android:
https://developer.android.com/guide/topics/ui/accessibility/index.html


It would be up to the translation packages for IOS and Android to make sure the IOS and Android accessibility guidelines were met. I have not yet tested any Kivy apps on either mobile platform.


This problem was talked about in a blog post this last summer: http://www.trivedigaurav.com/blog/towards-making-kivy-apps-accessible-2/#comment-43621 but no further progress has been made.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@frastlin frastlin changed the title Adding some support for screen readers/native os support Adding some support for screen readers and UI Automation Jan 5, 2015
@frastlin frastlin changed the title Adding some support for screen readers and UI Automation Adding Support for Automation and screen readers Feb 9, 2015
@dessant dessant added the Type: Feature Issue is a feature request label Dec 6, 2015
@janssen
Copy link
Contributor

janssen commented May 10, 2016

I think this is actually a pretty big feature. Adding accessibility support would also enable automated GUI testing, via LDTP. This is a must for professional projects. It's a serious disadvantage of Kivy to not support it.

@dessant
Copy link
Contributor

dessant commented Dec 10, 2016

We are closing some of the stale issues, please create a new issue/pr if you'd like to work on this feature, or get in touch with us on #kivy-dev.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Feature Issue is a feature request
Projects
None yet
Development

No branches or pull requests

3 participants