[Kde-accessibility] Questions regarding AT-SPI and ATK

David Bolter david.bolter at utoronto.ca
Fri Sep 5 11:20:18 CEST 2003


Peter Korn wrote:

>Hi Gunnar,
>
>  
>
>>The KDE Accessibility Project is currently elaborating on what is the best 
>>way to add AT-SPI support to Qt and KDE. Clearly this will be done by 
>>using the Qt Accessibility Architecture (which currently gets extended by 
>>Trolltech). However, there are a number of questions that IMO need to get
>>solved:
>>
>>1. What are the exact events that are used in AT-SPI and ATK?
>>2. Is there a possibility to determine whether there is an assistive
>>technology?
>>3. Is there a possibility for applications to do mouse (and keyboard) 
>>grabs without stealing the AT applications mouse clicks?
>>4. As far as I have heard AT-SPI supports custom interfaces if an 
>>application wants to provide information that is not handled within the
>>AT-SPI standard.
>>How exactly does this work?
>>5. What are the exact dependencies of the required party of the AT-SPI
>>architecture?
>>
>>I will give some more details (and some background) for these questions:
>>
>>1. In order to extend their accessibility framework, the Trolltech 
>>developers need to know which events are used in AT-SPI and ATK and which 
>>details are used to describe these events. As far as I looked there is no 
>>documentation about the event types in AT-SPI. In ATK the documentation 
>>for the events is spread over all interfaces. So far I found the
>>following events:
>>
>>Key press, Key release, Children change, Focus change, Property change,
>>State change, Visible data change, Selection changed, Column deleted,
>>Column inserted, Column reordered, Model changed, Row deleted,
>>Row inserted, Row reordered, Text attributes changed, Text caret moved,
>>Text changed, Text selection changed
>>
>>Is this list complete? Which information describing those events is 
>>included in these events?
>>    
>>
>
>I will leave it to BAUM and UToronto (and the Dasher folks) to detail which
>of these events they use.  By far the most used are:
>
> focus change
> property change
> state change
> selection change
> text caret moved
> text changed
> text selection changed
>

Oops,

I just noticed this message (doing some inbox dusting). Gunnar, are you 
still interested in the events gok currently pays attention to?

cheers,

David

>
>There should also be a text inserted event.  Visible data change and text
>attribute changed are also used a fair amount, but I think to a lesser
>extent.
>
>  
>
>>2. In some cases preparing the events can be expensive. Therefore the Qt
>>Accessibility Architecture contains a method that returns true if there 
>>are AT clients, and false if there are no AT clients. Clearly the easiest
>>implementation for this method when bridging to AT-SPI is to always return
>>true if the application got registered with the broker. On the other hand 
>>it might be worth to do a more sophisticated implementation. For that we 
>>need to be able to ask the broker whether there are AT clients. In that 
>>case we also have to make sure that it is save to turn the sending of the 
>>events off when there is no AT client.
>>    
>>
>
>In GNOME there is a per-user setting for whether accessibility API support
>should be on or off, and both Gnopernicus and GOK will warn the user if the
>flag is turned off when the they are launched.  This is stored in the user's
>gconf database.  In StarOffice/OpenOffice.org (for example), if the setting
>is on then a Java VM is invoked to be (part of) the bridge.  You might use
>that idiom.
>
>  
>
>>3. One of the KDE developers wrote a prove-of-concept application that 
>>uses the current Qt Accessibility Architecture. This application is called
>>Klaviatura and serves for two purposes: It can be used to remotely control
>>the menu bars, tool bars and popup menus of KDE applications, and it 
>>contains an on-screen keyboard. Technically Klaviatura consists of a 
>>plug-in for Qt and an external application. Both parts communicate with
>>each other via DCOP.
>>
>>When writing this application the developer found that applications often 
>>make mouse grabs when showing pop up menus. If then a mouse click was 
>>intended to go to an assistive technology it will be used by the wrong
>>application.
>>
>>In Klaviatura this problem is solved as follows:
>>The plug-in intercepts the event handling in order to be able to process 
>>mouse clicks before the application processes them. If the mouse click was 
>>directed to a window of Klaviatura that mouse click is intercepted and 
>>sent to the Klaviatura application (via DCOP). Otherwise the mouse click 
>>is not intercepted (and therefore will be processed by the application).
>>
>>There are multiple possibilities for solving this issue in AT-SPI:
>>- - Avoid popup menus (and other things that require mouse grabs). This is 
>>not a good solution as it interferes with the current user interface 
>>design of many applications. Not showing a popup menu means either less 
>>functionality or (in the case that you need an assistive technology to 
>>activate an entry in the popup menu) less usability.
>>- - Do the popup menus without mouse grabs. This is not a good solution as 
>>pop up menus need mouse grabs in order to work properly.
>>- -Send all mouse clicks to the ATs first and ask for a permission to 
>>process them.
>>- -Send those mouse clicks that are not directed to an application window 
>>to the ATs and ask for a permission to process them.
>>
>>The last two possibilities sound acceptable to me. I am not sure which is 
>>the better one. Many assistive technologies might not be interested in 
>>processing all mouse clicks, but there might be some few ATs that need top 
>>process them all.
>>
>>Solving this problem will be important as some KDE developers will 
>>otherwise have objections against AT-SPI.
>>    
>>
>
>There is yet another approach, which is being pursued by Sun in
>communication with folks in X.org and the XFree86 community - a new X
>extension that provides all keystokes and mouse events just after
>XKB/AccessX and just before anything else.  An AT tool would register for
>the keystrokes it cares about, and either listen and let them contine on, or
>consume them.  The problem with this approach is that it will take time for
>the X extension to be adopted and deployed.
>
>  
>
>>4. Some KDE developers have concerns that AT-SPI is not powerfull enough. 
>>In order to convince them that we will be able to extend the protocol if
>>necessary we need support for custom interfaces.
>>    
>>
>
>AT-SPI is explicitly designed to be extensible.  That's why we have
>sub-interfaces for things like text, tables, etc.  In the Java predecessor
>to AT-SPI, we evolved the interface several times (tables & relationships
>are two notable examples of things that weren't in the first release).
>
>Are there specific questions about how to evolve AT-SPI?
>
>  
>
>>5. In order to get an acceptable solution for KDE we have to evaluate the
>>dependencies of those parts of the GNOME Accessibility Architecture that 
>>will be used within KDE. When looking at ATK and the broker I fear that 
>>both will most likely have too much dependencies. However, as we currently 
>>do not have a clear position of KDE to AT-SPI, so I cannot say which 
>>dependencies will be OK and which have to be changed.
>>
>>If what I heard is correct the ATK dependencies are due a dependency on 
>>GAIL which was introduced in order to force the user to have a working
>>architecture once ATK is installed. This dependency on GAIL pulls a
>>dependency on GNOME into ATK and should be avoided if we decide to use ATK 
>>in KDE.
>>    
>>
>
>Hmmm... Perhaps Padraig or someone else can speak to this, but I didn't
>think that ATK depends upgon GAIL.  The reverse is true.
>
>  
>
>>The broker currently requires GTK+2. From a KDE perspective this 
>>dependency is too much. When looking from outside on the broker one would 
>>think that dependencies to glib and ORBIT2 would be enough.
>>
>>Also the CORBA dependency might turn out to become a problem for many KDE
>>developers.
>>
>>In either case I hope that we will find a clear position of KDE on the KDE
>>Developers Conference at the end of August.
>>    
>>
>
>
>Regards,
>
>Peter Korn
>Sun Accessibility team
>_______________________________________________
>gnome-accessibility-list mailing list
>gnome-accessibility-list at gnome.org
>http://mail.gnome.org/mailman/listinfo/gnome-accessibility-list
>
>  
>




More information about the kde-accessibility mailing list