Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md Spec: https://wicg.github.io/aom/spec/
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
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/97f565d0defea8b8bf0bf2e958ba63df8e60be5e commit 97f565d0defea8b8bf0bf2e958ba63df8e60be5e Author: Dominic Mazzoni <dmazzoni@chromium.org> Date: Thu Sep 21 15:12:17 2017 Add support for virtual AOM nodes to have a label. Bug: 761901 Change-Id: I12ecf744fb0733a3185446392c21c8e6cc7308b8 Reviewed-on: https://chromium-review.googlesource.com/676863 Reviewed-by: Aaron Leventhal <aleventhal@chromium.org> Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org> Cr-Commit-Position: refs/heads/master@{#503450} [modify] https://crrev.com/97f565d0defea8b8bf0bf2e958ba63df8e60be5e/third_party/WebKit/LayoutTests/accessibility/aom-virtual.html [modify] https://crrev.com/97f565d0defea8b8bf0bf2e958ba63df8e60be5e/third_party/WebKit/Source/modules/accessibility/AXVirtualObject.cpp [modify] https://crrev.com/97f565d0defea8b8bf0bf2e958ba63df8e60be5e/third_party/WebKit/Source/modules/accessibility/AXVirtualObject.h
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
Abandoning because the spec is changing
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
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/baa470913779d03564cfeaf9955e2829fb2838c1 commit baa470913779d03564cfeaf9955e2829fb2838c1 Author: zork@chromium.org <zork@google.com> Date: Mon Apr 16 18:49:29 2018 Add removeChild and childNodes to AccessibleNode. Bug: 761901 Change-Id: I4ca3d5613c6a9fe903032405bf4681b345dee784 Reviewed-on: https://chromium-review.googlesource.com/1003285 Reviewed-by: Mike West <mkwst@chromium.org> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org> Commit-Queue: Zachary Kuznia <zork@chromium.org> Cr-Commit-Position: refs/heads/master@{#551054} [modify] https://crrev.com/baa470913779d03564cfeaf9955e2829fb2838c1/third_party/WebKit/LayoutTests/accessibility/aom-virtual.html [modify] https://crrev.com/baa470913779d03564cfeaf9955e2829fb2838c1/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/baa470913779d03564cfeaf9955e2829fb2838c1/third_party/blink/renderer/core/dom/accessible_node.cc [modify] https://crrev.com/baa470913779d03564cfeaf9955e2829fb2838c1/third_party/blink/renderer/core/dom/accessible_node.h [modify] https://crrev.com/baa470913779d03564cfeaf9955e2829fb2838c1/third_party/blink/renderer/core/dom/accessible_node.idl
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
Comment 1 by bugdroid1@chromium.org
, Sep 8 2017