On Qt accessibility and a on-screen keyboard. (Klavi[atura])
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.
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/
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?
(This signature typed with klavi).. and I plan to send the message using
More information about the kde-accessibility