IAccessible2

Last updated

IAccessible2 is an accessibility API for Microsoft Windows applications. Initially developed by IBM under the codename Project Missouri, [1] IAccessible2 has been placed under the aegis of the Free Standards Group, now part of the Linux Foundation. [2] It has been positioned as an alternative to Microsoft's new UI Automation API.

Contents

While UI Automation is trumpeted as "royalty-free", [3] IAccessible2 claims to be an "open standard".

Goals

Whereas UI Automation marks a radical break from Microsoft Active Accessibility (MSAA) to create a more flexible accessibility API, IAccessible2 fills in perceived omissions in MSAA to match the Java Accessibility API and Assistive Technology Service Provider Interface (AT-SPI). [4] By extending the MSAA interface, rather than replacing it, IAccessible2 allows "application developers to leverage their investment in MSAA while also providing an Assistive Technology (AT) access to rich document applications." [5] It is also advantageous for Microsoft's commercial competitors, Sun and IBM, to promote an alternative accessibility interface to the Windows platform standard, which explains both their focus on developing non-MSAA/UIA interfaces and their promotion of cross-platform support despite the lack of any AT that is cross-platform that might use it.

Project Missouri was started when the State of Massachusetts, in the process of adopting the OpenDocument format for its public records, required that the format be made accessible. [6] Increasing the accessibility of dynamic web applications, for example by exposing custom controls for use with assistive technology and by filtering streams of new information by type and importance, became a second major focus for the project. [7]

Support

Support for IAccessible is present in LibreOffice as of version 4.2. [8] [9] It is in development for Apache OpenOffice, [10] Mozilla Application Suite, [11] NonVisual Desktop Access [12] and the Opera web browser. [13] Although IAccessible2 was introduced as a Windows accessibility API, Qt Development Frameworks is treating IAccessible2 as a potential alternative to AT-SPI on Linux too, and planning to add preliminary support to Qt 4.3. [14] As of 2019, Qt uses MSAA and IAccessible2 on Windows, and continues to use AT-SPI for Unix/X11 systems. [15]

Related Research Articles

<span class="mw-page-title-main">Qt (software)</span> Object-oriented framework for software development

Qt is cross-platform software for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android or embedded systems with little or no change in the underlying codebase while still being a native application with native capabilities and speed.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

A computing platform or digital platform is an environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed with it. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries. A computing platform is the stage on which computer programs can run.

<span class="mw-page-title-main">Linux framebuffer</span> Abstraction layer for Linux kernel to show graphics on the system console

The Linux framebuffer (fbdev) is a linux subsystem used to show graphics on a computer monitor, typically on the system console.

In computer programming, an application framework consists of a software framework used by software developers to implement the standard structure of application software.

Computer accessibility refers to the accessibility of a computer system to all people, regardless of disability type or severity of impairment. The term accessibility is most often used in reference to specialized hardware or software, or a combination of both, designed to enable the use of a computer by a person with a disability or impairment. Computer accessibility often has direct positive effects on people with disabilities.

<span class="mw-page-title-main">Screen reader</span> Assistive technology that converts text or images to speech or Braille

A screen reader is a form of assistive technology (AT) that renders text and image content as speech or braille output. Screen readers are essential to people who are blind, and are useful to people who are visually impaired, illiterate, or have a learning disability. Screen readers are software applications that attempt to convey what people with normal eyesight see on a display to their users via non-visual means, like text-to-speech, sound icons, or a braille device. They do this by applying a wide variety of techniques that include, for example, interacting with dedicated accessibility APIs, using various operating system features, and employing hooking techniques.

<span class="mw-page-title-main">Standard Widget Toolkit</span>

The Standard Widget Toolkit (SWT) is a graphical widget toolkit for use with the Java platform. It was originally developed by Stephen Northover at IBM and is now maintained by the Eclipse Foundation in tandem with the Eclipse IDE. It is an alternative to the Abstract Window Toolkit (AWT) and Swing Java graphical user interface (GUI) toolkits provided by Sun Microsystems as part of the Java Platform, Standard Edition (J2SE).

<span class="mw-page-title-main">Windows Forms</span> Graphical user interface software library

Windows Forms (WinForms) is a free and open-source graphical (GUI) class library included as a part of Microsoft .NET, .NET Framework or Mono Framework, providing a platform to write client applications for desktop, laptop, and tablet PCs. While it is seen as a replacement for the earlier and more complex C++ based Microsoft Foundation Class Library, it does not offer a comparable paradigm and only acts as a platform for the user interface tier in a multi-tier solution.

unixODBC is an open-source project that implements the ODBC API. The code is provided under the GNU GPL/LGPL and can be built and used on many different operating systems, including most versions of Unix, Linux, Mac OS X, IBM OS/2 and Microsoft's Interix.

Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0 in 2006. WPF uses DirectX and attempts to provide a consistent programming model for building applications. It separates the user interface from business logic, and resembles similar XML-oriented object models, such as those implemented in XUL and SVG.

Microsoft Active Accessibility (MSAA) is an application programming interface (API) for user interface accessibility. MSAA was introduced as a platform add-on to Microsoft Windows 95 in 1997. MSAA is designed to help Assistive Technology (AT) products interact with standard and custom user interface (UI) elements of an application, as well as to access, identify, and manipulate an application's UI elements. AT products work with MSAA enabled applications in order to provide better access for individuals who have physical or cognitive difficulties, impairments, or disabilities. Some examples of AT products are screen readers for users with limited sight, on screen keyboards for users with limited physical access, or narrators for users with limited hearing. MSAA can also be used for automated testing tools, and computer-based training applications.

The Mozilla application framework is a collection of cross-platform software components that make up the Mozilla applications. It was originally known as XPFE, an abbreviation of cross-platform front end. It was also known as XPToolkit. To avoid confusion, it is now referred to as the Mozilla application framework.

<span class="mw-page-title-main">Assistive Technology Service Provider Interface</span>

Assistive Technology Service Provider Interface (AT-SPI) is a platform-neutral framework for providing bi-directional communication between assistive technologies (AT) and applications. It is the de facto standard for providing accessibility to free and open desktops, like Linux or OpenBSD, led by the GNOME Project.

NonVisual Desktop Access (NVDA) is a free and open-source, portable screen reader for Microsoft Windows. The project was started by Michael Curran in 2006.

Microsoft UI Automation (UIA) is an application programming interface (API) that allows one to access, identify, and manipulate the user interface (UI) elements of another application.

<span class="mw-page-title-main">Orca (assistive technology)</span> Accessibility software

Orca is a free and open-source, flexible, extensible screen reader from the GNOME project for individuals who are blind or visually impaired. Using various combinations of speech synthesis and braille, Orca helps provide access to applications and toolkits that support the AT-SPI.

<span class="mw-page-title-main">Mono (software)</span> Computer software project

Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many software systems.

References

  1. ConsortiumInfo.org "Showing the Accessibility Way: IBM Contributes Project Missouri to the Free Standards Group"
  2. Linux Foundation Press Release: "The Free Standards Group to Standardize New Accessibility Interfaces" (2006-12-14). Accessed 2007-02-06.
  3. Microsoft.com: "Microsoft's New Accessibility Model To Be Offered as Cross-Platform Solution for Industry". Accessed 2007-02-06.
  4. Peter Korn's Weblog: Completing the Windows accessibility picture - IAccessible2 (2006-11-13). Accessed 2007-02-06.
  5. IAccessible2: Accessibility/IAccessible2 - The Linux Foundation (2006-12-12). Accessed 2007-04-10.
  6. Schwerdtfeger, Rich (2006-12-14). "Project Missouri and IBM's donation of IAccessible2 to the Free Standards Group". Archived from the original on 2012-10-10. Retrieved 2007-02-06.
  7. Bergstein, Brian (2006-12-14). "Project Missouri and IBM's donation of IAccessible2 to the Free Standards Group". USA Today. Retrieved 2007-02-06.
  8. "LibreOffice 4.2: Focusing On Performance And Interoperability, And Improving The Integration With Microsoft Windows". The Document Foundation. 30 January 2014. Retrieved 14 February 2014.
  9. "Accessibility in LibreOffice". The Document Foundation Wiki. Retrieved 28 December 2019.
  10. "Merging Lotus Symphony: Allegro moderato : Apache OpenOffice".
  11. Mozilla Bugzilla: Bug 368873 – Support IAccessible2 API. Accessed 2010-04-16.
  12. Michael Curran, "Introducing IAccessible2", NVDA mailing list (2006-12-16).
  13. Opera Desktopteam Blog. Accessed 2010-04-16.
  14. Harald Fernengel, IAccessible2 on Linux Demo Archived 2007-02-05 at the Wayback Machine (2007-01-26), accessed 2007-02-07.
  15. Qt documentation (2019), accessed 2020-11-08.