Ian Pascoe wrote: > Hi all > > Some thoughts that have been kind of troubling me over the past. > > There have been various postings in the past about compatability , or lack > of it, with various applications. The most notable being that of Firefox > just recently. In my ignorance, should the community be aiming to get those > projects that run and maintain development languages to provide the > necessary interfaces in the output so that the wheel doesn't need to be > re-invented each time for the application development projects? > Firefox is using ATK as its accessibility interface (or, rather, it is including ATK as its exported accessibility interface on Linux/Unix/Solaris). Because Firefox is cross-platform, and also needs to speak MSAA on the Windows platform, is uses a different accessibility interface based on something called nsiAccessible internally. However, by design, nsiAccessible maps rather well onto ATK, and ATK has been a major influence in the evolution of the mozilla-specific nsiAccessible interface.
To clarify - ATK itself is available on Windows, but it not a standard part of a Windows installation, so in that respect ATK is already "cross-platform". However, existing Windows assistive technologies use a mixture of Microsoft's MSAA and proprietary interfaces to do their job, so Firefox needs handle the export of its accessibility info differently on the two platforms. On Linux/Unix/Solaris, the information is exported via ATK. OpenOffice.org also uses ATK as its accessibility interface now. ATK is an "in process" interface, so in order for the ATK information to be available to assistive technologies it must be "exported" via some interprocess communication technology. AT-SPI is the standard interface for this, and a component called "atk-bridge" takes care of the details of turning in-process ATK calls into their equivalent AT-SPI equivalents. > I am aware that this is a GNOME list, but is the basic API used to drive > accessability the same that other projects are using or is it GNOME > specific? > In the above sense, this technology is not Gnome specific, since the same technique is used for Firefox, OpenOffice.org, and some other components such as recent RealPlayer and (I believe) recent versions of the Acrobat PDF reader. However, the existing atk-bridge does rely on some "gnome technologies", i.e. it uses Gnome libraries which are present on most distributions but may be missing from some distros, for instance some KDE-centric distros. KDE 4 is planning to support AT-SPI, but they wish to do so without using Gnome libraries or CORBA. This will take some effort to sort out, since it means sacrificing binary compatibility with existing AT-SPI implementations. I know they wish to do this in a way that preserves the functionality of existing AT-SPI clients like orca, LSR, GOK, Dasher, gnopernicus, as much as possible, but it is not clear when this work will be readily available. > Lastly, are the accessability modules like Orca specific to GNOME or will > they work cross GUIs? I ask only out of curiosity as I'd like to try out a > few of the mainstream, and some of the backwater distros that are out there. > In theory orca could work with any distro which provides the necessary dependencies, and can work with other GUIs as well; however the distros need to do the work to make sure the necessary components are bundled and tested. ATK is not bound to any specific GUI toolkit - while it is a dependency of GTK+, it does not require GTK+ in order to work, so any GUI toolkit is free to implement ATK as Firefox and OpenOffice.org have done. Best regards, Bill > Ian > > ------------------------------------------------------------------------ > > _______________________________________________ > gnome-accessibility-list mailing list > gnome-accessibility-list@gnome.org > http://mail.gnome.org/mailman/listinfo/gnome-accessibility-list > _______________________________________________ gnome-accessibility-list mailing list gnome-accessibility-list@gnome.org http://mail.gnome.org/mailman/listinfo/gnome-accessibility-list