[Kde-accessibility] On Qt accessibility and a on-screen keyboard. (Klavi[atura])

Maks Orlovich mo002j at mail.rochester.edu
Fri Jul 4 13:18:17 CEST 2003


Hi.. I've had a bit of free time lately, so I spent a few evenings hacking on 
a simple accessibility demo/app. What I have now is a basic on-screen 
keyboard, which can do text entrance, and menu and toolbar capture/control. 
It lacks a lot of features (most crucially input methods,but kmousetool 
provides some of that), and has quite a few bugs, but it's a demo/concept of 
how to get QAccessible working with very few code changes, how to use DCOP to 
provide information to an outside app even in a pure Qt application, and how 
to do even dispatch back into the app. (And a very evil way of using DCOP to 
go around mouse grabs in popupmenus). See a screenshot at
http://mail.rochester.edu/~mo002j/klaviconc1.png, and an older one at
http://mail.rochester.edu/~mo002j/klavi5.png (the smaller number ones exist 
as well, but they're of a much smaller version). 

To get this running, it first of all needs a small patch to Qt. What the patch 
does is provide a new plugin type, xaccess, which implements 
updateAccessibility, and to provide an implementation of the global method 
that dispatches it into the loaded plugins.  the patch is hardly clean, since 
I don't really understand QCom, and so I largely copy-pasted from the style 
loader. However, this is conceptually so simple that I imagine a Troll can 
prolly do this in about 5 minutes in a much cleaner way. It's also minimally 
invasive, and requires nothing external. The rough patch is at http://mail.
rochester.edu/~mo002j/klavi/qt_xaccess_concept.diff

After that, I have a small change to admin/ that adds support for this plugin  
type. That's probably entirely avoidable, but I don't know Makefile.am'ery 
well enough to do without it. (And it just duplicates the behavior for other 
plugin types). It's at http://mail.rochester.edu/~mo002j/klavi/
xaccess_plugins_admin_support.diff

Then, there is the main app. The tarball is at http://mail.rochester.edu/
~mo002j/klavi/klavi-concept.tar.bz2. To build this, after you have the 
previous bits installed, just drop this into something like kdenonbeta, make 
-f Makefile.cvs, configure, make, make install. To run, put in 
accessProviders=klavi^e into the [General] section of ~/.qt/qtrc, then
run klavi, and new KDE apps. 

Thoughts, ideas for where to take this next? 
-Maksim
(This signature typed with klavi).. and I plan to send the message using 
toolbar capture... 


More information about the kde-accessibility mailing list