This program provides bindings to the AT-SPI for Guile.
Many interfaces are not yet implemented, but the code is becoming useful, so the author decided to do the Release-Early, Release-Often Thing.
The philosophy of these bindings is that I do not try to provide equivalent Scheme functions for every cspi function. Rather, the Scheme functions are sometimes more high-level and do implement certain things which need several C function calls. For instance, the next-child function calls Accessible_getParent and Accessible_getChildCount(parent) and uses this value and Accessible_getIndexInParent to determine the next child.
Reference counting is done implicitly. Whenever a Scheme function requests a certain object type and discards it immediately, it does the appropriate unref call. Accessible * objects are managed in the so-called aobj smob. Upon garbage collection of such an aobj smob, Accessibleunref is automatically called for the pointer.
For now, see the code in *.scm files for examples on how you might use the Scheme interface to AT-SPI.
Since version 0.0.7, gspi also includes bindings for brltty's libbrlapi. This allows you to interface with refreshable braille display hardware.
This project aims toward providing simple interfaces to various aspects of assistive technologies. It might at some point get renamed to something more appropriate, like IATW (Interactive Assistive Technology Workbench). Suggestions for a better name are welcome.
Since there is no final aim of this project other than providing a very flexible programming environment for accessibility, input by potential users of this system is highly welcome. Your suggestions might help the author to decide what could also be included, or what is probably pointless to support. If you used this system for any kind of work, be it experimentation, debugging or interspecting the GNOME desktop, or whatever, please also drop me a not with a short description of your use case.
Of course, another type of input which would be highly appreciated is actual code. This project is at a very early stage, and there are a lot of things which do not yet work as they probably should. So if you are looking for a small project to contribute to, have a look at the source, and at the documentation in gspi.texi.
-- Mario Lang <email@example.com>