Gnome AT Service Provider Interface, 0.1



Hello listees:

Some of you may already be aware of current work on the Gnome
Accessibility Project, and the fact that the first version of the
Accessibility ToolKit (ATK) interfaces have now been placed in Gnome
cvs.  Implementation of these interfaces for the GTK+ UI toolkit has
begun and is also available via gnome cvs, project "gail" (Gnome
Accessibility Implementation Library).  [For those who are interested,
we have two test programs which use these interfaces to demonstrate
them in action, email me]

ATK describes a set of interfaces intended to be implemented by or on
behalf of UI components.  These interfaces describe the accessibility
support at the toolkit level, and allow applications to explicitly
provide accessibility information for their components while providing
a useful level of accessibility support "out of the box" (that is,
without the need to modify the applications).

In order to export this toolkit-level accessibility information to
clients such as adaptive technologies which run outside of the
applications' process space, and in order to provide accessibility
information in a toolkit-independent manner, we also must define and
implement a set of common interfaces which constitute an accessibility
"service". We call this service the Adaptive Technology Service
Provider Interface, or the "AT SPI".

It is hoped that this interface will provide a toolkit independent
means for Unix-based adaptive technologies, such as screen readers and
screen magnifiers, to get accessibility information from running
applications.  Furthermore, it is our intension that the AT SPI be a 
one-stop shop for adaptive technology; i.e., ATs should not need to
install special hooks or hacks to get at the information which they
require, apart from the services provided by the ATSPI.

We attach our initial draft of AT SPI interface definitions.  These
interfaces are specified in IDL, though we plan to provide them as C
bindings to a shared object library when implemented, and expect that
most adaptive technologies will choose to use those C bindings.

Since our use cases include situations in which AT and application may
reside on different hosts, and since our accessibility model is
object-based, the best candidate technology for IPC/component model
implementation appears to be CORBA.  We believe that this should be
transparent to clients of the SPI, and we intend to allow for
alternate implementations of these interfaces in the future.  However
it is likely that all applications and toolkits which intend to
interoperate with respect to accessibility will need to share the same
IPC implementation protocol in the near term.

We need your feedback.  Is there functionality which we have missed
which needs to be included in the accessibility interfaces?  Is there
functionality typically exposed through the window manager which needs
to be made accessible to ATs?  Are there additional hooks or services
which would be useful or esential to the proper functioning of ATs
that we have not included here?

Lastly, since our hope is for transparent interoperability with as
many toolkits and unix desktop platforms as possible, we'd like to
note that there are several layers at which toolkits can "plug into"
the "Gnome" accessibility architecture.  Toolkits which need an
expedient solution and which don't mind linking (possibly via an
optional dynamically loaded module) to glib can implement ATK
interfaces directly, and reuse the Gnome application-side service
implementation directly.  In this case both toolkit and adaptive
technology would be agnostic regarding the internals of the SPI
implementation.  Other toolkits may wish to implement the SPI
interfaces themselves (Java will most likely use this approach).  We
would like to work with maintainers of other toolkits to ensure
maximum reusability and interoperability of the code being written for
the Gnome accessibility project.

For a block diagram showing how apps, ATs, and the SPI relate to
process spaces, please see
http://developer.gnome.org/projects/gap/SPIBlockDiagram.png

Best regards,

Bill

Attachments: SPI-0.1-IDL.tar.gz : interface definitions 
             
--------------
Bill Haneman
Gnome Accessibility / Batik SVG Toolkit
Sun Microsystems Ireland

Attachment: SPI-0.2-IDL.tar.gz
Description: GNU Zip compressed data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]