An idea,
Janina Sajka
janina at rednote.net
Wed Jul 27 09:05:24 EDT 2005
Hi, Lorenzo:
Others have responded with reference to what an X server does, and
doesn't do. I want to respond to two other particular points from your
message.
Lorenzo Taylor writes:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> ... Gnopernicus, for example, is using libraries that
> rely on certain information ent by the underlying application libraries.
> Unfortunately, this implementation causes only some apps to speak while others
> which use the same widgets but whose libraries don't send messages to the
> accessibility system will not speak.
This is only partially correct. Any applications using those "same
widgets," as you put it, will speak. There are no exceptions.
What causes them to not speak is that the properties required to make
them speak have not been supplied. So, Gnopernicus is getting an empty
string to renderd, which I suppose it dutifully renders as silence.
Fortunately, these are open source applications and we don't need an
advocacy campaign to resolve these kinds of problems. A solid example of
this at work is the Gnome Volume Control. It was written with gtk2, but
the developers did not supply all the relevant property data. So, a
blind programmer came along one weekend, fixed it, and submitted the
patch which has shipped with the rest of Gnome Volume Control ever
since.
Now the next point ...
> But it occurs to me that X is simply a
> protocol by which client applications send messages to a server which renders
> the proper text, windows, buttons and other widgets on the screen. I believe
> that a screen reader that is an extension to the X server itself, (like Speakup
> is a set of patches to the kernel) would be a far better solution, as it could
> capture everything sent to the server and correctly translate it into humanly
> understandable speech output without relying on "accessibility messages" being
> sent from the client apps.
As other have pointed out, there's nothing to be gained by speaking RGB
values at some particular X-Y mouse coordinate location. But, I'm sure
that's not what you really intend. If I interpret you correctly you're
suggesting some kind of mechanism whereby a widget of some kind can be
reliably identified and assigned values that the screen reader can
henceforth utter. This is the approach with Windows OSM that has been
used over the past decade, and it's what allows screen readers, like
JFW, to develop interfaces based on scripts. For instance, Take widget
number 38,492 and call it "volume slider," and speak it before anything
else on screen when it shows up on screen, and facilitate the method
that will allow user to use up and down arrow to change it's value,
etc., etc.
It is arguable, and has been cogently argued over the past 18 months,
that the failure of the original Desktop Accessibility Architecture
promoted by Sun and Gnome was to not provide such mechanisms. A great
part of the intent of the Orca screen reader proof of concept was to
provide exactly this kind of functionality. I believe this is now being
addressed, though I'm not aware any code for newer Gnopernicus (or post
Gnopernicus) readers is yet released. However, I do fully expect that
Gnopernicus is not the last word in desktop screen readers.
Janina
More information about the Speakup
mailing list