New issue
Advanced search Search tips

Issue 773208 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug-Regression
Team-Accessibility



Sign in to add a comment

IAccessible::get_accParent fails for the web page root object

Reported by supp...@quickmacros.com, Oct 10 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0

Steps to reproduce the problem:
1. Start Chrome with command line --force-renderer-accessibility
2. Get IAccessible COM object of the web page root (role ROLE_SYSTEM_DOCUMENT).
3. Call its get_accParent.

What is the expected behavior?
get_accParent returns 0 and gets the accessible object.

What went wrong?
get_accParent returns 1 and does not get the accessible object.

Did this work before? Yes Not sure. It it worked many years, and in v 61 i noticed it fails.

Chrome version: 61.0.3163.100 (Official Build) (64-bit) (cohort: Stable)  Channel: stable
OS Version: 10.0
Flash Version: 27.0.0.130

I think this is the reason of another issue: If you get IAccessible of any web page element, for example with AccessibleObjectFromPoint, and then get its parent with get_accParent, then call WindowFromAccessibleObject(parent), it fails. Probably because WindowFromAccessibleObject then walks ancestors (using get_accParent) until finds a WINDOW object, but now it cannot find WINDOW because DOCUMENT's get_Parent is broken.
 
Components: Blink>Accessibility
Labels: TE-NeedsTriageHelp
Tagging with the Accessibility component, could some one from dev team address this.

Thanks.!
Status: Started (was: Unconfirmed)
Owner: aleventhal@chromium.org
Cc: dougt@chromium.org
Regression occurred about 6 months ago from bug 703369:
https://codereview.chromium.org/2891913005/ 

The special case for the root of the tree was removed.
Labels: -Pri-2 Pri-1
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 7 2017

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

commit 85fde670a73bd828de43360f88e382817efdd05a
Author: Aaron Leventhal <aleventhal@chromium.org>
Date: Tue Nov 07 07:10:56 2017

MSAA accParent of document should not be null.

It is important for get_accParent on the root of a document to return
the ROLE_SYSTEM_WINDOW object as it used to. This allows oleacc.lib's
WindowFromAccessibleObject implementation to work correctly.

Bug:  773208 
Change-Id: I7c3ffd3968f7c48bdf6b94bf08dcdf849f4c763f
Reviewed-on: https://chromium-review.googlesource.com/754129
Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: Doug Turner <dougt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514417}
[modify] https://crrev.com/85fde670a73bd828de43360f88e382817efdd05a/content/browser/accessibility/accessibility_tree_formatter_win.cc
[modify] https://crrev.com/85fde670a73bd828de43360f88e382817efdd05a/content/browser/accessibility/browser_accessibility.cc
[modify] https://crrev.com/85fde670a73bd828de43360f88e382817efdd05a/content/test/data/accessibility/html/iframe-expected-win.txt
[modify] https://crrev.com/85fde670a73bd828de43360f88e382817efdd05a/content/test/data/accessibility/html/iframe.html

Status: Fixed (was: Started)
Now get_accParent for DOCUMENT works, but then WindowFromAccessibleObject gets a control of class Chrome_RenderWidgetHostHWND. For all other Chrome accessible objects it gets the main window, not the control. For web page elements it normally gets the main window, but if the element was retrieved with get_accParent or accNavigate, it gets the control. So, WindowFromAccessibleObject for the same accessible object gets different window, depending on how the object was retrieved.

Sign in to add a comment