New issue
Advanced search Search tips

Issue 866612 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Sep 26
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug
Team-Accessibility



Sign in to add a comment

[Orca] AtkObject attributes missing

Project Member Reported by joanmari...@gmail.com, Jul 23

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3501.0 Safari/537.36

Steps to reproduce the problem:
1. Launch Chrome/Chromium
  * export ACCESSIBILITY_ENABLED=1, and
  * launch with --force-renderer-accessibility

2. Load "data:text/html,<h2>foo</h2>" in browser

3. Accerciser and use its Interface Viewer to examine the Attributes (under "Accessible")

What is the expected behavior?
The list of attributes would include "level:2".

What went wrong?
The list of attributes is empty.

Did this work before? No 

Chrome version: 70.0.3501.0  Channel: n/a
OS Version: 
Flash Version: 

Compare to: Firefox (with accessibility enabled), Epiphany

Documentation: https://developer.gnome.org/atk/stable/AtkObject.html#atk-object-get-attributes, also https://w3c.github.io/html-aam/#el-h1-h6 and https://rawgit.com/w3c/core-aam/master/#ariaLevelHeading

Impacts:

1. With respect to this specific test case (heading level), because the heading level is not exposed, Orca cannot present it. In addition, Orca's keyboard commands to navigate amongst headings at a given level (e.g. "1" for the next H1, "2" for the next H2") don't work.

2. In general, object attributes are used to expose things where the platform accessibility API lacks a better means. At the present time, this is true of heading level, but also of things like aria-posinset and aria-setsize. The fact that no object attributes are exposed at all means there's quite a bit of information that should be expose to Orca which is not. See the HTML-AAM and Core-AAM for additional examples.

3. For debugging and other purposes, other user agents have exposed things like the id of an element via object attributes (or the equivalent property on other platforms). If this were done in Chromium, it would be far easier to do automated accessibility testing for Chromium in Linux because we could tree dive looking for the accessible element with the specified id.

4. The good news: IAccessible2 uses object attributes in a very similar fashion and with very similar content. To my knowledge, IA2 clients are getting these attributes exposed to them by Chromium. Thus my guess is that it won't take much work to get the attribute names and values as that work has presumably already been done for IA2. That same information just needs to be exposed via ATK.
 
Labels: Needs-Triage-M70
Project Member

Comment 2 by bugdroid1@chromium.org, Jul 25

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e1d017d5a4c855d3e0186904628c5106c3199a71

commit e1d017d5a4c855d3e0186904628c5106c3199a71
Author: Martin Robinson <mrobinson@igalia.com>
Date: Wed Jul 25 16:16:18 2018

Add level attribute to AtkObjects

The level attributes specifies the hierarchical level of the element.
This is used for HTML heading elements.

TEST=accessibility_unittests --gtest_filter=AXPlatformNodeAuraLinuxTest.*

Bug:  866612 
Change-Id: If3e1d5192dc6d0749bdaffda203d4539ea02bf63
Reviewed-on: https://chromium-review.googlesource.com/1150144
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577917}
[modify] https://crrev.com/e1d017d5a4c855d3e0186904628c5106c3199a71/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/e1d017d5a4c855d3e0186904628c5106c3199a71/ui/accessibility/platform/ax_platform_node_auralinux.h
[modify] https://crrev.com/e1d017d5a4c855d3e0186904628c5106c3199a71/ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc

Components: -UI UI>Accessibility
Project Member

Comment 4 by bugdroid1@chromium.org, Jul 31

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/664b9da85f7e55bace7619f178a52c43ec97f606

commit 664b9da85f7e55bace7619f178a52c43ec97f606
Author: Martin Robinson <mrobinson@igalia.com>
Date: Tue Jul 31 09:05:46 2018

Move IA2 attribute collection code to AXPlatformNodeBase

This will allow us to share this code with the Aura Linux implementation
in a future change. We also create a new abstract class to collect these
attributes while maintaining performance between the different
platforms. Currently there is only an implementation of this class for
Windows.

Bug:  866612 
Change-Id: I5cb84b9f226e976ac2b199149ea897831a48d175
Reviewed-on: https://chromium-review.googlesource.com/1152977
Commit-Queue: Martin Robinson <mrobinson@igalia.com>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579353}
[modify] https://crrev.com/664b9da85f7e55bace7619f178a52c43ec97f606/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/664b9da85f7e55bace7619f178a52c43ec97f606/ui/accessibility/platform/ax_platform_node_auralinux.h
[modify] https://crrev.com/664b9da85f7e55bace7619f178a52c43ec97f606/ui/accessibility/platform/ax_platform_node_base.cc
[modify] https://crrev.com/664b9da85f7e55bace7619f178a52c43ec97f606/ui/accessibility/platform/ax_platform_node_base.h
[modify] https://crrev.com/664b9da85f7e55bace7619f178a52c43ec97f606/ui/accessibility/platform/ax_platform_node_mac.h
[modify] https://crrev.com/664b9da85f7e55bace7619f178a52c43ec97f606/ui/accessibility/platform/ax_platform_node_mac.mm
[modify] https://crrev.com/664b9da85f7e55bace7619f178a52c43ec97f606/ui/accessibility/platform/ax_platform_node_win.cc
[modify] https://crrev.com/664b9da85f7e55bace7619f178a52c43ec97f606/ui/accessibility/platform/ax_platform_node_win.h

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b361075ee6e25020d7f4c9e909c19b8d915fbbb0

commit b361075ee6e25020d7f4c9e909c19b8d915fbbb0
Author: Martin Robinson <mrobinson@igalia.com>
Date: Thu Aug 02 14:13:42 2018

Use the shared attribute code for ATK on Aura Linux

The newly shareable attribute code can be used for ATK on Aura Linux
because the attributes exposed should be exactly the same on this
platform. This change also adds some basic unit tests to ensure that
attributes are exposed properly through ATK.

Bug:  866612 
Change-Id: Id46ab2108d9ead6ab88b5e172b6b25e615f47cca
Reviewed-on: https://chromium-review.googlesource.com/1156399
Commit-Queue: Martin Robinson <mrobinson@igalia.com>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580164}
[modify] https://crrev.com/b361075ee6e25020d7f4c9e909c19b8d915fbbb0/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/b361075ee6e25020d7f4c9e909c19b8d915fbbb0/ui/accessibility/platform/ax_platform_node_auralinux.h
[modify] https://crrev.com/b361075ee6e25020d7f4c9e909c19b8d915fbbb0/ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc
[modify] https://crrev.com/b361075ee6e25020d7f4c9e909c19b8d915fbbb0/ui/accessibility/platform/ax_platform_node_base.h
[modify] https://crrev.com/b361075ee6e25020d7f4c9e909c19b8d915fbbb0/ui/base/BUILD.gn

Components: UI>Accessibility>Compatibility
Status: Available (was: Unconfirmed)
Status: Fixed (was: Available)

Sign in to add a comment