-README
+D-Bus AT-SPI
+------------
-at-spi version 1.17.1
+This version of at-spi is a major break from version 1.x.
+It has been completely rewritten to use D-Bus rather than
+ORBIT / CORBA for its transport protocol.
-This version of at-spi requires atk 1.17.0 or later.
+A page including instructions for testing, project status and
+TODO items is kept up to date at:
-*** Welcome to the Gnome Accessibility Project! ***
+ http://www.linuxfoundation.org/en/AT-SPI_on_D-Bus
-If you have not already done so, please visit
+The mailing list used for general questions is:
-http://developer.gnome.org/projects/gap
+ accessibility-atspi@lists.linux-foundation.org
-for background information on accessibility, the Gnome
-Accessibility Project, mailing list info, and project status.
+For bug reports, feature requests, patches or enhancements please use
+the AT-SPI project on bugzilla.gnome.org. Use the at-spi2-core component for
+bugs specific to this module.
-Contents of this package ==================================
+ http://bugzilla.gnome.org
+
+A git repository with the latest development code is available at:
+
+ git://git.gnome.org/at-spi2-core
+
+More information
+----------------
+
+The project was started with a D-Bus performance review
+the results of which are available on the GNOME wiki. Keep in
+mind that the D-Bus AT-SPI design documents on this page
+have not been kept up to date.
+
+ http://live.gnome.org/GAP/AtSpiDbusInvestigation/
+
+Other sources of relevant information about AT-SPI and Accessibility
+include:
+
+ http://live.gnome.org/Accessibility
+ http://www.sun.com/software/star/gnome/accessibility/architecture.xml
+ http://accessibility.kde.org/developer/atk.php
+ http://www.gnome.org/~billh/at-spi-idl/html/
+
+
+Contents of this package
+------------------------
+
+This package includes the protocol definitions for the new D-Bus
+at-spi.
+
+Also included is the daemon necessary for forwarding device events
+and registering accessible applicaitions.
+
+
+Directory structure
+-------------------
The directories within this package are arranged as follows:
- idl : this directory contains the interface definitions
- (in Interface Definition Language) for the
- accessibility support interfaces exposed by
- the AT central registry, accessible applications,
- and UI components.
- Though IDL is often associated with CORBA, and this
- implementation of the at-spi is CORBA-based, these
- interfaces are not CORBA-specific, rather they define
- the abstract "contract" between accessible application
- and client assistive technology.
-
- Assistive Technologies will not normally be concerned
- with the underlying implementation details of the IDL.
-
- libspi : this directory contains implementation-specific
- code which connects the in-process ATK interfaces
- (implemented by GTK+ and, potentially, by other
- native-code UI toolkits) to the interprocess SPI.
- It also contains implementation code used by the
- central accessibility registry. These sources are
- used to build libspi.so, a shared object library which
- is used by accessibility clients and servers alike.
- This interfaces exposed in this library are ordinarily
- not directly used by AT, but are used by the C bindings,
- thus AT must dynamically link to this library.
-
- registryd : this directory contains code specific to the
- central accessibility registry, and the registry
- executable is built in this directory.
-
- atk-bridge : this directory contains code that bridges
- the at-spi to the GTK+ toolkit, and which is
- loaded at runtime by GTK+-based Gnome applications.
- The 'bridge' automatically registers GTK+-2.0
- applications with the accessibility registry,
- and relays UI events from application to registry.
- It is also responsible for servicing requests from
- the registry to register handlers for specific event
- types.
-
- cspi : this directory contains the C bindings for use by
- ATs, and the code which adapts the implementation-specific
- code to the C bindings API. The header file
- "spi.h" contains the API declarations used by AT clients.
-
- tests : this directory should be called 'examples', since
- it contains not only test programs, but examples
- of how to use the AT-SPI. The sample program
- "simple-at.c" is currently the primary example of
- how the C bindings API should be used.
-
- docs : this directory contains documentation for the AT-SPI.
- Documentation is currently limited to API documentation
- for the C bindings API, and is built from sources
- via the 'gtk-doc' system.
-
-Building the documentation ============================
-
-Pre-built versions of the HTML documentation are available at
-http://developer.gnome.org/projects/gap/tech-docs/at-spi-docs/book1.html.
-However the documentation in the docs directory is the most up-to-date.
-Building the docs requires docbook and jade, see the 'gtk-doc'
-package (from Gnome CVS) for more information.
-
-Use of the AT-SPI ======================================
-
-Accessible applications will register with this registry service
-(via bonobo-activation) and adaptive/assistive technologies will
-register with the service as well, to indicate their interest in
-receiving UI events. ATs can also use the registry's services
-programmatically to query accessible applications.
-
-Running the test programs: ============================
-
-At the moment the only clients and are two test at clients
-('at' and 'simple-at'). There is also a test app ('app) in
-the 'tests' subdirectory.
-
-If you have a working ORBit2/bonobo-activation installation you can
-run the tests after adding the registryd directory to the
-bonobo-activation directory list with bonobo-activation-sysconf,
-or by installing Accessibility_Registry.server in your
-bonobo-activation 'servers' directory.
-
-You can then run './at' and './app' from the 'test' directory, to see
-'app' register as an application, and 'at' as a listening client.
-Bonobo should take care of the job of bootstrapping the registry daemon
-('registryd') for you. These test programs use the bonobo/CORBA
-C bindings directly.
-
-The third test program, "simple-at", is a better illustration of how
-most actual AT should use the at-spi, via the C bindings library
-(documented online at
-http://developer.gnome.org/projects/gap/tech-docs/at-spi-docs/book1.html).
-Though 'simple-at' will work with the test application 'app',
-a better demonstration of the AT-SPI can be made after installing
-libspi and libcspi (via 'make install'). If you set the GTK_MODULES
-environment variable to "gail:atk-bridge", any GTK+2.0
-application run subsequently will register with the at-spi registry,
-and 'simple-at' will register for and receive focus and
-buttonpress events from those applications.
-
-At the moment application and at deregistration are not 100% reliable,
-so if you get you are advised to kill the registry daemon if you exit either 'at' or 'app'
-instances, via the 'bonobo-slay' command. You may run as many instances
-of each application or sample AT client as you like, concurrently -
-you may find it useful to do so in separate terminal windows.
-
-'at' connects to the registry as an event listener, then queries the
-service for the number of virtual desktops (currently always 0 or 1),
-and queries each desktop for the accessible applications it is running.
-It then prints out the name of each such application (as reported by the
-application's accessibility interfaces), and then waits to receive events.
-
-'app' connects to the registry as an application, then dispatches an
-event which the registry should relay to all registered listeners.
-Thus instances of 'app' run after 'at' should cause the 'at' instances
-to receive events.
-
-
--Bill
+ xml
+
+ This directory contains XML documents describing
+ the D-Bus protocol in the format used for D-Bus introspection.
+
+ idl
+
+ The D-Bus specification in an idl-like format. This is likely not
+ parseable by any existing tools, is not entirely up-to-date, and may
+ by removed in a future release.
+
+ registryd
+
+ The registry daemon code. The registry daemon
+ keeps a register of accessible applications and presents
+ this to clients (ATs).
+ It is also responsible for delivering device events.
+
+ dbind
+
+ Library to ease making D-Bus method calls, contains
+ marshalling code to convert function arguments
+ and a provided D-Bus signature into a D-Bus message.
+
+ Used by libatspi.
+
+ atspi
+
+ C library for use by ATs. Wraps the various D-Bus calls, provides
+ an interface for listening to events, and caches some information about
+ accessible objects. Also contains some functions used by at-spi2-atk.
+
+ bus
+
+ A server that sits on the session bus and provides an interface
+ allowing applications to find the accessibility bus daemon, launching
+ it as needed. The accessibility bus is separate from the session bus
+ because it may in fact span user sessions if a user, for instance,
+ runs an application that escalates to run as root. The accessibility
+ bus is thus tied to the X session rather than the D-Bus session.
+
+ doc
+
+ Contains infrastructure for creating libatspi documentation.
+
+ test
+
+ Contains files that may be useful for testing AT-SPI.
+
+ m4
+
+ Some macros used for building the module.
+
+ po
+
+ Infrastructure used for translation.