New issue
Advanced search Search tips

Issue 761901 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug
Team-Accessibility

Blocking:
issue 746523



Sign in to add a comment

Implement Accessibility Object Model Phase 3

Project Member Reported by dmazz...@chromium.org, Sep 5 2017

Issue description

Project Member

Comment 1 by bugdroid1@chromium.org, Sep 8 2017

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

commit 43254d526704c8246b1cd56a20d80597c42f9284
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Fri Sep 08 07:49:18 2017

Add an AccessibleNode constructor - first part of AOM Phase 3

For the Accessibility Object Model phase 3, web authors can
construct an AccessibleNode that isn't associated with a
DOM element:

  var virtualNode = new AccessibleNode();

They can then add it as a child of some other element:

  document.body.accessibleNode.appendChild(virtualNode);

This patch adds that basic support and begins some of the
refactoring necessary for it to work. More refactoring
will be needed for such "virtual" accessible nodes to be
able to use the full range of accessibility attributes,
since most existing accessibility code assumes there's a
DOM element.

Bug:  761901 
Change-Id: I90581414b6e91c078879db49efcb587641f2a09a
Reviewed-on: https://chromium-review.googlesource.com/649964
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Reviewed-by: Alice Boxhall <aboxhall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500533}
[add] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/LayoutTests/accessibility/aom-virtual.html
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/core/dom/AXObjectCache.h
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/core/dom/AccessibleNode.cpp
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/core/dom/AccessibleNode.h
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/core/dom/AccessibleNode.idl
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/modules/accessibility/AXNodeObject.h
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/modules/accessibility/AXObject.h
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/modules/accessibility/AXObjectCacheImpl.cpp
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/modules/accessibility/AXObjectCacheImpl.h
[add] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/modules/accessibility/AXVirtualObject.cpp
[add] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/modules/accessibility/AXVirtualObject.h
[modify] https://crrev.com/43254d526704c8246b1cd56a20d80597c42f9284/third_party/WebKit/Source/modules/accessibility/BUILD.gn

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 21 2017

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

commit b050223fd982514dffeeeeddc075313299bfcdab
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Thu Sep 21 23:08:09 2017

Support some bool properties of virtual AOM nodes.

Unfortunately a ton of refactoring was required to make this
possible, because too much of logic assumed the existence of
an Element, and assumed that we only cared about ARIA on
AXNodeObject subclasses.

I stopped after supporting just 3 properties because this is
a large enough change already.

Bug:  761901 
Change-Id: Ie7148f3d4aaf3308d43089260b761f73e56d995b
Reviewed-on: https://chromium-review.googlesource.com/676879
Reviewed-by: Kent Tamura <tkent@chromium.org>
Reviewed-by: Aaron Leventhal <aleventhal@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503603}
[add] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/LayoutTests/accessibility/aom-virtual-bool-properties.html
[modify] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/core/dom/AccessibleNode.cpp
[modify] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/core/dom/AccessibleNode.h
[modify] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
[modify] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.h
[modify] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
[modify] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/modules/accessibility/AXNodeObject.h
[modify] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
[modify] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/modules/accessibility/AXObject.h
[add] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/modules/accessibility/AXSparseAttributeSetter.cpp
[add] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/modules/accessibility/AXSparseAttributeSetter.h
[modify] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/modules/accessibility/AXVirtualObject.cpp
[modify] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/modules/accessibility/AXVirtualObject.h
[modify] https://crrev.com/b050223fd982514dffeeeeddc075313299bfcdab/third_party/WebKit/Source/modules/accessibility/BUILD.gn

Status: WontFix (was: Assigned)
Abandoning because the spec is changing
Project Member

Comment 5 by bugdroid1@chromium.org, Mar 13 2018

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

commit ca5d8f4e56c192d11e6293ad9144b8defd463674
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Tue Mar 13 09:14:55 2018

AOM Phase 3: support event listeners on virtual nodes.

Even though the spec is changing, this is an important piece of Phase 3
that will be needed either way. Refactors the AXObject event handling
code slightly to support event listeners on virtual nodes, not just on
AccessibleNodes that correspond to DOM elements.

Adds a browser test for this, because I think it's good to have some
complete integration tests for AOM and not just layout tests.

Bug:  761901 
Change-Id: I904916e1e930dadeb602ed679b4b422b4180d179
Reviewed-on: https://chromium-review.googlesource.com/958141
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Alice Boxhall <aboxhall@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542745}
[add] https://crrev.com/ca5d8f4e56c192d11e6293ad9144b8defd463674/content/browser/accessibility/aom_browsertest.cc
[modify] https://crrev.com/ca5d8f4e56c192d11e6293ad9144b8defd463674/content/shell/browser/shell_permission_manager.cc
[modify] https://crrev.com/ca5d8f4e56c192d11e6293ad9144b8defd463674/content/test/BUILD.gn
[add] https://crrev.com/ca5d8f4e56c192d11e6293ad9144b8defd463674/content/test/data/accessibility/aom/event-listener-on-virtual-node.html
[modify] https://crrev.com/ca5d8f4e56c192d11e6293ad9144b8defd463674/third_party/WebKit/LayoutTests/accessibility/aom-click-action.html
[modify] https://crrev.com/ca5d8f4e56c192d11e6293ad9144b8defd463674/third_party/WebKit/LayoutTests/accessibility/aom-virtual.html
[modify] https://crrev.com/ca5d8f4e56c192d11e6293ad9144b8defd463674/third_party/WebKit/Source/core/dom/AccessibleNode.cpp
[modify] https://crrev.com/ca5d8f4e56c192d11e6293ad9144b8defd463674/third_party/WebKit/Source/core/dom/AccessibleNode.h
[modify] https://crrev.com/ca5d8f4e56c192d11e6293ad9144b8defd463674/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
[modify] https://crrev.com/ca5d8f4e56c192d11e6293ad9144b8defd463674/third_party/WebKit/Source/modules/accessibility/AXObject.h

Project Member

Comment 8 by bugdroid1@chromium.org, Jul 9

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

commit 77925cfe0165385265a674312614b25013d5257b
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Mon Jul 09 19:30:46 2018

Fire notification when virtual AccessibleNode attribute changes.

Previously firing a notification only worked when an AccessibleNode
had an element. Add a quick fix to ensure it works even when it
doesn't.

Bug:  761901 
Change-Id: I0ec6723e748947d94f1207f72f38ec94f0f6b335
Reviewed-on: https://chromium-review.googlesource.com/962862
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Alice Boxhall <aboxhall@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573404}
[modify] https://crrev.com/77925cfe0165385265a674312614b25013d5257b/third_party/blink/renderer/core/dom/accessible_node.cc
[modify] https://crrev.com/77925cfe0165385265a674312614b25013d5257b/third_party/blink/renderer/core/dom/ax_object_cache.h
[modify] https://crrev.com/77925cfe0165385265a674312614b25013d5257b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
[modify] https://crrev.com/77925cfe0165385265a674312614b25013d5257b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
[modify] https://crrev.com/77925cfe0165385265a674312614b25013d5257b/third_party/blink/renderer/modules/accessibility/ax_virtual_object.cc
[modify] https://crrev.com/77925cfe0165385265a674312614b25013d5257b/third_party/blink/renderer/modules/accessibility/ax_virtual_object.h

Sign in to add a comment