[Kde-accessibility] How to implement AT-SPI in any applciation (java, c, etc.)

Alejandro Piñeiro apinheiro at igalia.com
Fri Feb 27 14:39:55 UTC 2015


On 26/02/15 13:51, Dhairyashil Bhosale wrote:
> Hi all,
>
>               I am new to At-SPI-1.0/2.0, I just successfully
> initialized the At-spi-init() method and just print the name of
> focused application running on GNOME. I have a lot of queries like:
>
>                         1) Like in At-SPI-1.0 we set accessibility
> setting like "putenv("GNOME_ACCESSIBILITY=1");",*  *this but in
> AT-SPI-2.0 what parameters we have to set for enabling accessibility
> setting, for the time being I start ORCA screen reader and then run
> AT-SPI-2.0 demo example , so What parameters we have to set for
> enabling all accessibility setting in AT-SPI2.0?

First, it is not at-spi-1.0 vs at-spi-2.0. For example at-spi2-2.0
behaviour at the beginning was basically the same that at-spi1.0. Enable
accessibility is something somewhat more broader.

Unfortunately there is not a single answer for your question. How to
enable (if needed) accessibility depends on the distro that you are
using. During all this years, there were different ways to enable the
accessibility support. One is the environment variable you mention, and
there was also the gsetting "toolkit-accessibility". You can check this
one like this:

gsettings get org.gnome.desktop.interface "toolkit-accessibility"

With a several recent-enough-distro, it would be enough to just set that
gsetting to true. But in any case, you should be able to enable
accessibility using the universal access settings dialog.

If you want a distro-independent answer, this is how it works on GNOME
upstream:
 * Since 2012 accessibility is enabled on default. So for gtk3,
gnome-shell and others, accessibility (so at-spi2) is always enabled.
You don't need to do anything.
 * Old applications, mostly using gtk2, are still affected by
toolkit-accessibility gsetting.

Rationale and some extra details on this email [1].

>
>                          2) I am trying to make java application
> accessible to orca screen reader using JNI for calling At-spi's
> method, but in AT-SPI there are all get method like
> " atspi_get_text() " like this, so in simple java ,python or gtk
> application How should I implement the At-SPI-2.0 means from
> application side we have to set somthing?

You are in the wrong side of the application. libatspi is the client
server side library, used to write AT applications like Orca. Or in
other words, libatspi is just used to get the info. Your approach would
be valid if you want to write a screen reader using Java, that as far as
I see, is not what you intend.

You would need to explore the server side (more below).

>
>                           3) I am trying to call AT-SPI from java
> using JNI interface for making java application accessible to Orca
> screen reader, but when I run the java application, the Orca can not
> read the title bar or can't access that application, even I tried the
> Java Accessibility API(JAAPI).

Again, libatspi is the client side library. It is already implemented,
in order to get info from the accessibility APIs. So their purpose is
writing ATs, not to expose the applications

>
>                        SO HOW TO MAKE JAVA APPLICATION ACCESSIBLE TO
> ORCA SCREEN READER OR OTHER ASSISTIVE TECH.

Take a look to java-atk-wrapper:
https://git.gnome.org/browse/java-atk-wrapper

This library wraps Java applications (using JNI and all that stuff),
exposing it as another ATK implementation (like those available on gtk,
clutter, etc). Then it uses the server side library at-spi2-atk to
expose the information using at-spi2 APIs. So instead of starting from
scratch in order to make java applications accessible, probably it would
be better if you collaborate with an already started module.

Best regards

[1]
https://mail.gnome.org/archives/desktop-devel-list/2012-June/msg00035.html

-- 
Alejandro Piñeiro (apinheiro at igalia.com)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-accessibility/attachments/20150227/cbf18ed4/attachment.html>


More information about the kde-accessibility mailing list