The debate between “screen scraping” and “accessibility API” seems to have been won by the proponents of the API model. Sun and Microsoft have done excellent jobs with the gnome Accessibility API and UIA respectively and now IBM gets in with an interesting entry that may win the day.
In the article pasted below, copied verbatim from Blind News, Aaron Leventhal, one of the real heroes of AOL and most recently IBM accessibility projects, describes the new API in detail. I haven’t read all of the supporting information but this one looks like a winner at first glance.
I still believe that a lot of attention needs to be paid to accessibility as regards context and do not know if this provides such a facility but, alas, it is a major step forward from MSAA that won’t require a total rewrite of the accessibility portions of a program.
IBM and the Free Standards Group (FSG), today announced IBM’s donation
Of a new accessibility API, called IAccessible2, to the Free Standards
** Why a new API?
The need for the development of this new accessibility API was clear:
1) Crucial features added: the first generation Windows accessibility
API, called MSAA or IAccessible, lacked crucial features, such as
Support for the caret and selection, accessible relations, rich text
editing, multiple actions and many other features necessary for quality
Support in assistive technologies.
2) Accessibility efforts preserved: an evolutionary path was needed for
Applications which already had MSAA (IAccessible) support, to support
these new features. Rather than throw away the MSAA support that
applications already had, it was considered less expensive for both
applications and assistive technologies to grow new solutions on top of
3) Harmonized with other platforms: an API was needed that did not
require separate accessibility implementations for each platform. The
amount of different code between the ATK/AT-SPI implementations for UNIX
accessibility, and IAccessible2 implementations will be minimized, thus
This API draft was developed with consultation from a number of groups,
including assistive technology vendors, application developers from
Mozilla, developers working on ODF accessibility, and others.
** What is IAccessible2?
With the new API, an assistive technology will be able to QueryInterface
from an IAccessible*, to IAccessible2*, and to any other supported
The IAccessible2 interface itself collects important ATK features from
other areas, as well some completely new methods and features. These
tend to be methods that you may need on any object. For the most part,
features were added either to bring Windows capabilities up to the level
of ATK/AT-SPI, or in order to support the features of ARIA (previously
known of DHTML accessibility). For more information on ARIA, see the
links at the end of this email.
There are also specialized interfaces which are used only on objects
with the given capabilities of that interface. These interfaces
generally have a very close equivalent under ATK. In the following list
of interface matchups, ATK interfaces are prefaced with “Atk” and
IAccessible2 are prefaced with “IAccessible”:
AtkText ~= IAccessibleText
AtkEditableText ~= IAccessibleEditableText
AtkHyperText ~= IAccessibleHyperText
AtkHyperlink ~= IAccessibleHyperlink
AtkImage ~= IAccessibleImage
AtkTable ~= IAccessibleTable
AtkAction ~= IAccessibleAction
AtkValue ~= IAccessibleValue
AtkRelation ~= IAccessibleRelation
That should give a rough idea that what we’re doing is expanding MSAA
while matching ATK/AT-SPI to a very helpful degree. For more detail than
that, please see the draft interfaces, available here:
** What are some benefits of IAccessible2 for application developers?
1) Support advanced features while preserving investment in MSAA
2) True support for editing: new events and methods to expose selection
changes, caret movement, text changes and text formatting will help with
features such as rich text editing and “select and say” in Dragon
Naturally Speaking. These features will also remove the need for screen
reader hacks to find the caret and selection. Currently, Windows screen
readers must replace the video driver on the system and look for screen
draws of vertical blinking lines.
3) Maximize code reuse: for example, Mozilla has in already moved most
of the ATK/AT-SPI support code out of the Linux-only files into a
cross-platform area of the code. The code still supports ATK, but it is
now also ready to support the IAccessible2 interfaces once they are
dropped into the codebase.
4) Support AJAX applications: IAccessible2 has object attributes which
will alow browsers such as Firefox to expose any author-supplied ARIA
hints to help make live regions of a web page accessible. In general
there are a number of features for the delivery of advanced ARIA
features, such as extensible roles, relations and actions.
** What are some benefits of IAccessible2 for assistive technology
1) Preserve investment in MSAA: because IAccessible2 is
backwards-compatible with MSAA, the current support of Windows screen
readers and other assistive technologies can continue to work on
applications that add IAccessible2 support. However, the newer
IAccessible2 capabilities will also be exposed, and thus newer assistive
technologies will be able to take advantage of them.
2) Enable more powerful features in more places, such as rich text
editing and features such as “select and say” in Dragon Naturally
Speaking, and sensible support for powerful widgets in rich internet
applications, in browsers that support ARIA through IAccessible2.
3) Simplify maintenance: over the long term, IAccessible2 is a rich API
that will simplify screen reader maintenance. For one thing, it reduces
the need for interference with the low level drivers on end user systems.
** Where can I learn more about IAccessible2?
1) FSG IAccessible2 Home Page:
2) IBM Announcement on IAccessible2:
3) Showing the Accessibility Way: IBM Contributes Project Missouri to
the Free Standards Group by Andy Updegrove:
4) IBM project aims to help blind use ODF applications – InfoWorld:
5) IAccessible2 announcement in Japanese:
Where can I learn more about ARIA and accessibility for rich internet
1) Roadmap for Accessible Rich Internet Applications (ARIA Roadmap):
2) Roles for Accessible Rich Internet Applications (ARIA Roles):
3) States and Properties Module for Accessible Rich Internet
Applications (ARIA States and Properties): http://www.w3.org/TR/aria-state/
4) Mozilla ARIA documentation:
Where do I learn more about ATK, AT-SPI and UNIX/Linux accessibility in
This is an exciting time. A number of people worked very hard on this
API, and as the press release indicates, a number of organizations have
come out to declare support.
Feedback and questions are of course welcome.
IBM web accessibility architect
About a million years ago, when I worked for Turning Point Software, we had a lawyer named Andy Updagrove. I wonder if he is the same one mentioned in this article?