New issue
Advanced search Search tips

Issue 797992 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Jan 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug
Team-Accessibility



Sign in to add a comment

Allow relations to be formed between user interface objects

Project Member Reported by aleventhal@chromium.org, Dec 28 2017

Issue description

Currently it is not possible to set accessible relations between two objects in the user interface, because they do not have unique IDs.

Example relations for UI:
- Controller for relation between the omnibox textfield and the suggestions list popup
- Labelledby/describedby relations

There are many types of unique IDs in the Chrome a11y code and it was suggested that this code be cleaned up and made more foolproof. Not only do we need IDs, but we need to make sure that IDs from Blink processed are never accidentally used for Chrome IDs, because the Blink IDs are only unique within a frame.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jan 11 2018

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

commit b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd
Author: Aaron Leventhal <aleventhal@chromium.org>
Date: Thu Jan 11 01:18:53 2018

Consistent, unified Unique IDs for accessibility objects in browser process

Summary:
- Needed to form relationships between objects
- Unique IDs for all objects in Chrome via AXUniqueID
- Windows will now use the same IDs for firing events, instead of creating its own in ax_platform_node_win.cc
- Separate Chrome unique IDs from Blink IDs by consistently using the name "UniqueId"
and by making them different types.
- AXPlatformNodeDelegate is now responsible for providing IDs

Every accessibility node Chrome needs a unique ids so that events can be fired for it in Windows,
and so that it can be the target of relationships. Unlike the ids provided by Blink, these ids
must be unique for the entire Chrome browser process.

Because there are these two types of ids (Blink IDs which are only unique within a frame, and must
be created by Blink, and Chrome unique IDs that are unique within the entire Chrome process), it
is best to make this fool proof and not allow the two to be mixed. This is accomplished via a
UniqueId class for the Chrome IDs, which cannot be initialized with a Blink ID (int32_t).

Bug:  797992 
Change-Id: I60d2dfeca8fe107b15838cfcc17dc07a90c29cc9
Reviewed-on: https://chromium-review.googlesource.com/840480
Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: David Tseng <dtseng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528518}
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/chrome/browser/ui/ash/accessibility/ax_tree_source_aura_unittest.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/chrome/browser/ui/aura/accessibility/ax_root_obj_wrapper.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/chrome/browser/ui/aura/accessibility/ax_root_obj_wrapper.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/chrome/browser/ui/aura/accessibility/ax_tree_source_aura.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/content/browser/accessibility/browser_accessibility.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/content/browser/accessibility/browser_accessibility.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/content/browser/accessibility/browser_accessibility_android.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/content/browser/accessibility/browser_accessibility_android.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/content/browser/accessibility/browser_accessibility_com_win.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/content/browser/accessibility/browser_accessibility_manager_win.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/content/browser/accessibility/browser_accessibility_win_unittest.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/BUILD.gn
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_platform_node.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_platform_node.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_platform_node_base.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_platform_node_delegate.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_platform_node_win.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_platform_node_win.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_platform_relation_win.cc
[delete] https://crrev.com/b104c05adb6aed5da5dae9f51ddaca93c886f823/ui/accessibility/platform/ax_platform_unique_id.cc
[delete] https://crrev.com/b104c05adb6aed5da5dae9f51ddaca93c886f823/ui/accessibility/platform/ax_platform_unique_id.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_system_caret_win.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_system_caret_win.h
[add] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_unique_id.cc
[add] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_unique_id.h
[add] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/ax_unique_id_unittest.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/test_ax_node_wrapper.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/accessibility/platform/test_ax_node_wrapper.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/ax_aura_obj_cache.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/ax_aura_obj_cache.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/ax_aura_obj_wrapper.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/ax_view_obj_wrapper.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/ax_view_obj_wrapper.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/ax_widget_obj_wrapper.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/ax_widget_obj_wrapper.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/ax_window_obj_wrapper.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/ax_window_obj_wrapper.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/native_view_accessibility_auralinux.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/native_view_accessibility_base.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/native_view_accessibility_base.h
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/view_accessibility.cc
[modify] https://crrev.com/b0de5cc2f4b3f0792f1f7bfdf58a52348200a5fd/ui/views/accessibility/view_accessibility.h

Status: Fixed (was: Started)
Status: Verified (was: Fixed)
Assumed to be fixed, not user-facing.
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 25

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

commit eae7c5e562b04cc03a24bf135214045ee8524107
Author: Wez <wez@chromium.org>
Date: Sat Aug 25 21:24:12 2018

Fix flaky AXPlatformUniqueIdTest.TestIdsNotReused test.

- Fix AXPlatformUniqueIdTest.TestIdsNotReused, which made invalid
  assumptions about the specific identifier values that would be
  assigned.
- Remove unused AXPlatformUniqueIdTest base-class.
- Renamed both AXPlatformUniqueIdTests to better reflect their purpose.

TBR: aleventhal
Bug:  877777 ,  797992 
Change-Id: I0f86092e4e785843522913fa98b0222e04dbd67d
Reviewed-on: https://chromium-review.googlesource.com/1188698
Reviewed-by: Wez <wez@chromium.org>
Commit-Queue: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586146}
[modify] https://crrev.com/eae7c5e562b04cc03a24bf135214045ee8524107/ui/accessibility/platform/ax_unique_id_unittest.cc

Sign in to add a comment