New issue
Advanced search Search tips

Issue 771747 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Feature
Team-Accessibility



Sign in to add a comment

Feature request: a tool to show IA2 tree

Project Member Reported by aleventhal@chromium.org, Oct 4 2017

Issue description

Current tools on Windows for debugging IAccessible2 (IA2) are not as helpful as they could be. AccProbe is very buggy, and AViewer has a limited feature set.

In the short term, a tool that dumps IA2 tree to the console would be very helpful. It could reuse code from the DumpAccessibilityTree tests. 

In the long term, we could possibly serve subtrees objects and pick them up via the Automation Inspector interface.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 17 2017

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

commit 96754161358a5257a98e8f2fc5e258d2ed835812
Author: Aaron Leventhal <aleventhal@chromium.org>
Date: Tue Oct 17 20:00:50 2017

ax_dump_tree

Standalone executable tool that helps developers view IAccessible2 object trees from any application.
This tool is an alternative to AccProbe, which is buggy, and AViewer, which is not feature rich.
The first version of ax_dump_tree is barebones and simply displays events on console, but has
a lot of room for future expansion (e.g., serve info to a GUI, dump the tree structure etc.).
The tool is similar is use to ax_dump_events.

As an example of how this makes easier, when there is a bug with NVDA/JAWS in Chrome that doesn't 
occur with Firefox, we can look at the object tree emitted by Firefox for the same content.

The ax_dump_tree tool shares code and formatting with the DumpAccessibilityTree browsertests. 

Use as follows:
ax_dump_tree --pid=[processid]
ax_dump_tree --window=[hwnd]   (start with 0x to use hex value)

Bug:  771747 
Change-Id: I330d2aba8b004e679e9a8d15b1c288ae5460e83e
Reviewed-on: https://chromium-review.googlesource.com/700725
Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Nektarios Paisios <nektar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509495}
[modify] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/BUILD.gn
[modify] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/content/browser/accessibility/accessibility_event_recorder_win.cc
[modify] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/content/browser/accessibility/accessibility_tree_formatter.cc
[modify] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/content/browser/accessibility/accessibility_tree_formatter.h
[modify] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/content/browser/accessibility/accessibility_tree_formatter_browser.cc
[modify] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/content/browser/accessibility/accessibility_tree_formatter_browser.h
[modify] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/content/browser/accessibility/accessibility_tree_formatter_win.cc
[modify] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
[modify] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/tools/accessibility/inspect/BUILD.gn
[modify] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/tools/accessibility/inspect/ax_dump_events.cc
[add] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/tools/accessibility/inspect/ax_dump_tree.cc
[add] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/tools/accessibility/inspect/ax_tree_server.cc
[add] https://crrev.com/96754161358a5257a98e8f2fc5e258d2ed835812/tools/accessibility/inspect/ax_tree_server.h

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 17 2017

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

commit 3ab8994cacf7a59342e8c53a14c09be8abe971fb
Author: Findit <findit-for-me@appspot.gserviceaccount.com>
Date: Tue Oct 17 20:44:33 2017

Revert "ax_dump_tree"

This reverts commit 96754161358a5257a98e8f2fc5e258d2ed835812.

Reason for revert:

Findit (https://goo.gl/kROfz5) identified CL at revision 509495 as the
culprit for failures in the build cycles as shown on:
https://findit-for-me.appspot.com/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzk2NzU0MTYxMzU4YTUyNTdhOThlOGYyZmM1ZTI1OGQyZWQ4MzU4MTIM

Sample Failed Build: https://ci.chromium.org/buildbot/chromium/Mac/33798

Original change's description:
> ax_dump_tree
> 
> Standalone executable tool that helps developers view IAccessible2 object trees from any application.
> This tool is an alternative to AccProbe, which is buggy, and AViewer, which is not feature rich.
> The first version of ax_dump_tree is barebones and simply displays events on console, but has
> a lot of room for future expansion (e.g., serve info to a GUI, dump the tree structure etc.).
> The tool is similar is use to ax_dump_events.
> 
> As an example of how this makes easier, when there is a bug with NVDA/JAWS in Chrome that doesn't 
> occur with Firefox, we can look at the object tree emitted by Firefox for the same content.
> 
> The ax_dump_tree tool shares code and formatting with the DumpAccessibilityTree browsertests. 
> 
> Use as follows:
> ax_dump_tree --pid=[processid]
> ax_dump_tree --window=[hwnd]   (start with 0x to use hex value)
> 
> Bug:  771747 
> Change-Id: I330d2aba8b004e679e9a8d15b1c288ae5460e83e
> Reviewed-on: https://chromium-review.googlesource.com/700725
> Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Reviewed-by: Nektarios Paisios <nektar@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#509495}

Change-Id: I884d4ee2b277755da5067557f4b771db0bd3340d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  771747 
Reviewed-on: https://chromium-review.googlesource.com/724001
Cr-Commit-Position: refs/heads/master@{#509516}
[modify] https://crrev.com/3ab8994cacf7a59342e8c53a14c09be8abe971fb/BUILD.gn
[modify] https://crrev.com/3ab8994cacf7a59342e8c53a14c09be8abe971fb/content/browser/accessibility/accessibility_event_recorder_win.cc
[modify] https://crrev.com/3ab8994cacf7a59342e8c53a14c09be8abe971fb/content/browser/accessibility/accessibility_tree_formatter.cc
[modify] https://crrev.com/3ab8994cacf7a59342e8c53a14c09be8abe971fb/content/browser/accessibility/accessibility_tree_formatter.h
[modify] https://crrev.com/3ab8994cacf7a59342e8c53a14c09be8abe971fb/content/browser/accessibility/accessibility_tree_formatter_browser.cc
[modify] https://crrev.com/3ab8994cacf7a59342e8c53a14c09be8abe971fb/content/browser/accessibility/accessibility_tree_formatter_browser.h
[modify] https://crrev.com/3ab8994cacf7a59342e8c53a14c09be8abe971fb/content/browser/accessibility/accessibility_tree_formatter_win.cc
[modify] https://crrev.com/3ab8994cacf7a59342e8c53a14c09be8abe971fb/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
[modify] https://crrev.com/3ab8994cacf7a59342e8c53a14c09be8abe971fb/tools/accessibility/inspect/BUILD.gn
[modify] https://crrev.com/3ab8994cacf7a59342e8c53a14c09be8abe971fb/tools/accessibility/inspect/ax_dump_events.cc
[delete] https://crrev.com/9d7a30e2069b6d0bbf54f9ea0ac684d62423053c/tools/accessibility/inspect/ax_dump_tree.cc
[delete] https://crrev.com/9d7a30e2069b6d0bbf54f9ea0ac684d62423053c/tools/accessibility/inspect/ax_tree_server.cc
[delete] https://crrev.com/9d7a30e2069b6d0bbf54f9ea0ac684d62423053c/tools/accessibility/inspect/ax_tree_server.h

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 17 2017

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

commit 8a54c74b50ab4ad0e007018aa3bc42b652313651
Author: Aaron Leventhal <aleventhal@chromium.org>
Date: Tue Oct 17 23:37:24 2017

ax_dump_tree

Standalone executable tool that helps developers view IAccessible2 object trees from any application.
This tool is an alternative to AccProbe, which is buggy, and AViewer, which is not feature rich.
The first version of ax_dump_tree is barebones and simply displays events on console, but has
a lot of room for future expansion (e.g., serve info to a GUI, dump the tree structure etc.).
The tool is similar is use to ax_dump_events.

As an example of how this makes easier, when there is a bug with NVDA/JAWS in Chrome that doesn't
occur with Firefox, we can look at the object tree emitted by Firefox for the same content.

The ax_dump_tree tool shares code and formatting with the DumpAccessibilityTree browsertests.

Use as follows:
ax_dump_tree --pid=[processid]
ax_dump_tree --window=[hwnd]   (start with 0x to use hex value)

TBR=nektar,dpranke

Bug:  771747 
Change-Id: Idfc17ca1a1d44006ad32dcca07303ce1d93f7669
Reviewed-on: https://chromium-review.googlesource.com/724239
Reviewed-by: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509597}
[modify] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/BUILD.gn
[modify] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/content/browser/accessibility/accessibility_event_recorder_win.cc
[modify] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/content/browser/accessibility/accessibility_tree_formatter.cc
[modify] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/content/browser/accessibility/accessibility_tree_formatter.h
[modify] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/content/browser/accessibility/accessibility_tree_formatter_browser.cc
[modify] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/content/browser/accessibility/accessibility_tree_formatter_browser.h
[modify] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/content/browser/accessibility/accessibility_tree_formatter_win.cc
[modify] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
[modify] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/tools/accessibility/inspect/BUILD.gn
[modify] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/tools/accessibility/inspect/ax_dump_events.cc
[add] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/tools/accessibility/inspect/ax_dump_tree.cc
[add] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/tools/accessibility/inspect/ax_tree_server.cc
[add] https://crrev.com/8a54c74b50ab4ad0e007018aa3bc42b652313651/tools/accessibility/inspect/ax_tree_server.h

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 19 2017

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

commit 3486ac47b673a5a7a6d5d76afaa82db79580214d
Author: Aaron Leventhal <aleventhal@chromium.org>
Date: Thu Oct 19 20:00:56 2017

Support filters for ax_dump_tree_output

The ax_dump_tree output puts out a lot of information, which can be too
noisy to efficiently read. This supports property filtering as follows:

ax_dump_tree --filters=[FILTERS_TEXT_FILE]

The filters file can have @ALLOW, @ALLOW-EMPTY and @DENY rules, similar
to the dump accessibility tree browsertests. It is not necessary to have
a platform prefix (e.g. @WIN- or @MAC-). The role of the object cannot
be filtered, but any other properties can. If no filters are provided
then all properties are shown.

Example, to filter out everything except role, name and value, use:
@ALLOW:name=*
@ALLOW:value=*

Put each filter on a separate line. For more info on writing rules, see
https://cs.chromium.org/chromium/src/content/test/data/accessibility/readme.md

Bug:  771747 
Change-Id: If15a5c6f6baf6a1827749dae16825242a0913913
Reviewed-on: https://chromium-review.googlesource.com/725879
Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: Nektarios Paisios <nektar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510171}
[modify] https://crrev.com/3486ac47b673a5a7a6d5d76afaa82db79580214d/content/browser/accessibility/accessibility_tree_formatter_win.cc
[modify] https://crrev.com/3486ac47b673a5a7a6d5d76afaa82db79580214d/tools/accessibility/inspect/ax_dump_tree.cc
[modify] https://crrev.com/3486ac47b673a5a7a6d5d76afaa82db79580214d/tools/accessibility/inspect/ax_tree_server.cc
[modify] https://crrev.com/3486ac47b673a5a7a6d5d76afaa82db79580214d/tools/accessibility/inspect/ax_tree_server.h

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 23 2017

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

commit ac3681da24eee3ba2d792ee56575888377e945c8
Author: Aaron Leventhal <aleventhal@chromium.org>
Date: Mon Oct 23 21:11:12 2017

Support JSON for ax_dump_tree

Support JSON as an output option from ax_dump_tree. This supports property 
filtering via the --filters option described here:
https://chromium-review.googlesource.com/c/chromium/src/+/725879

The default is still plain text. For JSON, use:
ax_dump_tree --json

Bug:  771747 
Change-Id: I58bc7d1e7863deafbe4d6a9f1256149ed1ca7f04
Reviewed-on: https://chromium-review.googlesource.com/719317
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510912}
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/content/browser/accessibility/accessibility_tree_formatter.cc
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/content/browser/accessibility/accessibility_tree_formatter.h
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/content/browser/accessibility/accessibility_tree_formatter_android.cc
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/content/browser/accessibility/accessibility_tree_formatter_auralinux.cc
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/content/browser/accessibility/accessibility_tree_formatter_blink.cc
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/content/browser/accessibility/accessibility_tree_formatter_blink.h
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/content/browser/accessibility/accessibility_tree_formatter_mac.mm
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/content/browser/accessibility/accessibility_tree_formatter_stub.cc
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/content/browser/accessibility/accessibility_tree_formatter_win.cc
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/tools/accessibility/inspect/ax_dump_tree.cc
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/tools/accessibility/inspect/ax_tree_server.cc
[modify] https://crrev.com/ac3681da24eee3ba2d792ee56575888377e945c8/tools/accessibility/inspect/ax_tree_server.h

Status: Fixed (was: Assigned)

Sign in to add a comment