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