Bug 368873 (ia2)

[meta] IAccessible2 API support

REOPENED
Unassigned

Status

()

Core
Disability Access APIs
REOPENED
11 years ago
2 years ago

People

(Reporter: Aaron Leventhal, Unassigned)

Tracking

(Depends on: 10 bugs, {access, meta})

Trunk
x86
All
access, meta
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

11 years ago
For the actual API see http://www.linux-foundation.org/en/Accessibility/IAccessible2

** 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 today's code.
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 saving resources.

This API draft was developed with consultation from a number of groups, including assistive technology vendors, application developers from Mozilla (Aaron Leventhal), 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 interfaces.

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: http://accessibility.freestandards.org/a11yspecs/ia2/docs/html/

How does IAccessible2 help Mozilla?

1) Support AJAX applications. for example, we will now have the ability to provide any information necessary for completely accessible live regions. There are features for the deliver of advanced ARIA features, such as extensible roles, relations and actions.
2) Support selection and caret. this will help with features such as "select and say" in Dragon Naturally Speaking -- which is currently not supported. It will also remove the need for screen reader hacks to find the caret. Currently, Windows screen readers must replace the video driver on the system and look for screen draws of vertical blinking lines. Over the long term, IAccessible2 is a rich API that will simplify screen reader maintenance, and it will minimize interference with the low level drivers on end user systems. It will also help provide much better screen reader support for rich text editing.
3) Maximize code reuse. in the summer of this year (2006), we moved most of the ATK/AT-SPI support code out of the Linux-only files into a cross-platform area. The code now supports ATK, but it is ready to help support the IAccessible2 interfaces.
(Reporter)

Updated

11 years ago
Alias: ia2
(Reporter)

Updated

11 years ago
Depends on: 78296
(Reporter)

Updated

11 years ago
Depends on: 166994
(Reporter)

Updated

11 years ago
Depends on: 335668
(Reporter)

Updated

11 years ago
Depends on: 345780
(Reporter)

Updated

11 years ago
Depends on: 357430

Updated

11 years ago
Depends on: 369082
(Reporter)

Updated

11 years ago
Depends on: 369777
(Reporter)

Updated

11 years ago
Depends on: 370276
(Reporter)

Updated

11 years ago
Depends on: 346146
(Reporter)

Updated

11 years ago
Depends on: 363230
(Reporter)

Updated

11 years ago
Depends on: 289188

Updated

11 years ago
Depends on: 370676

Updated

11 years ago
Depends on: 370790
(Reporter)

Updated

11 years ago
Depends on: 371273

Updated

11 years ago
Depends on: 371591

Updated

11 years ago
No longer depends on: 369082

Updated

11 years ago
Depends on: 372708
(Reporter)

Updated

11 years ago
Depends on: 373245

Updated

11 years ago
Depends on: 373329

Updated

11 years ago
Depends on: 373364

Updated

11 years ago
Depends on: 373531

Updated

11 years ago
Depends on: 374487
(Reporter)

Updated

11 years ago
Depends on: 374790
(Reporter)

Updated

11 years ago
Depends on: 375534
(Reporter)

Updated

11 years ago
Depends on: 376032
(Reporter)

Updated

11 years ago
Depends on: 376832

Updated

11 years ago
Depends on: 377285

Updated

11 years ago
Depends on: 377294

Updated

11 years ago
Depends on: 377302

Updated

11 years ago
Depends on: 378038

Updated

10 years ago
Depends on: 379366

Updated

10 years ago
Depends on: 379579

Updated

10 years ago
Depends on: 379585
(Reporter)

Updated

10 years ago
Depends on: 379608

Updated

10 years ago
Depends on: 380021

Updated

10 years ago
Depends on: 380022

Updated

10 years ago
Depends on: 380038

Updated

10 years ago
Depends on: 380508

Updated

10 years ago
Depends on: 380524

Updated

10 years ago
Depends on: 380836
(Reporter)

Updated

10 years ago
Depends on: 381049

Updated

10 years ago
Depends on: 381302

Updated

10 years ago
Depends on: 381312

Updated

10 years ago
Depends on: 383095
(Reporter)

Updated

10 years ago
Depends on: 383608

Updated

10 years ago
Depends on: 385573

Updated

10 years ago
Depends on: 387857
(Reporter)

Updated

10 years ago
Depends on: 390212
(Reporter)

Updated

10 years ago
Depends on: 390414
(Reporter)

Updated

10 years ago
Depends on: 391592
(Reporter)

Updated

10 years ago
Depends on: 391617
(Reporter)

Updated

10 years ago
Depends on: 391622
(Reporter)

Updated

10 years ago
Depends on: 392153
(Reporter)

Updated

10 years ago
Depends on: 392895
(Reporter)

Updated

10 years ago
Depends on: 393897
(Reporter)

Updated

10 years ago
Depends on: 394117
(Reporter)

Updated

10 years ago
Depends on: 392626
(Reporter)

Updated

10 years ago
Depends on: 395077
(Reporter)

Updated

10 years ago
Depends on: 395081

Updated

10 years ago
No longer depends on: 380836

Updated

10 years ago
Depends on: 405747

Updated

10 years ago
Depends on: 405756
(Reporter)

Updated

10 years ago
Depends on: 406959

Updated

10 years ago
Depends on: 407589

Updated

10 years ago
Depends on: 407592

Updated

10 years ago
Depends on: 385317
(Reporter)

Updated

10 years ago
Depends on: 417018
Mass un-assigning bugs assigned to Aaron.
Assignee: aaronleventhal → nobody

Updated

7 years ago
Keywords: meta
Summary: Support IAccessible2 API → [meta] Support IAccessible2 API

Updated

6 years ago
Depends on: 684141
we support this api
Status: NEW → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → WORKSFORME

Comment 3

6 years ago
(In reply to Trevor Saunders (:tbsaunde) from comment #2)
> we support this api

we support but aren't free from IA2 specific bugs (see unfixed blockings), it's good to keep meta for this
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Summary: [meta] Support IAccessible2 API → [meta] IAccessible2 API support

Updated

6 years ago
Depends on: 614571

Updated

5 years ago
Depends on: 754230

Updated

5 years ago
Depends on: 433667

Updated

4 years ago

Updated

4 years ago
Depends on: 877985

Comment 4

4 years ago
I have a question about IAccessible2 support in Firefox and any NPAPI based add-on/plug-in which also support this interface. Right now, as we have seen, when you hover over this plug-in, firefox is returning "embedded Object" as a response back, and doesn't give a chance to the underlying application.  Any way to tell Firefox that the plug-in supports IA2 and let it take care of sending control information?

Comment 5

4 years ago
I should say the bug is not right place to ask generic questions, you need to do to this at mail list like https://lists.mozilla.org/listinfo/accessibility. Plugins implement accessibility itself by answering WM_GETOBJECT message (windowless plugin are not accessible).

Updated

2 years ago
Depends on: 1233118
You need to log in before you can comment on or make changes to this bug.