New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 775680 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Oct 18
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug
Team-Accessibility

Blocking:
issue 775686
issue 868179
issue 856819


Participants' hotlists:
Hotlist-1
Accessibility-Desktop-Dialog


Sign in to add a comment

[A11y - Dialog] On ‘tab modal’ dialogs, NVDA+T and NVDA+B read the parent tab (Topchrome UIs and page), not the dialog itself

Project Member Reported by hwi@chromium.org, Oct 17 2017

Issue description

Chrome Version       : Stable 61.0.3163.100
OS Version           : Win10
Screenreader         : NVDA

The issue occurs on tab modals not on window modals (e.g. Add to desktop dialog is read correctly with NVDA+T and NVDA+B). Repro the issue from the following tab modals: 
- Resubmit form
- HTTP Auth
- JS Alert
- Sign in
- Print
- Add extension (via a page, not webstore)

Video* (tab modal - issue):
https://drive.google.com/open?id=0B1VXa3kr2lYjMnZ1d25HVG1yRTQ

Video* (window modal - not issue):
https://drive.google.com/open?id=0B1VXa3kr2lYjOGR6dzV3WDZSU0E

Full doc*: go/ar-dialogs-win-2017
*: Docs and videos are google internal

Recommended fixes:
- SR reading scope to be ‘dialog’, not parent page
- NVDA+T to read the dialog title
- NVDA+B to read the entire foreground dialog

Related notes:
- If an implementation to fix this bug covers all other dialogs in the same type, it will be ideal.
- If it's a spot fix for a listed dialog, we can still use the fix as a reference for future fixes for others. 
- Please discuss if the issue needs to be clarified further, and/or if there's an alternative fix.
- Independently, expanded tests are needed for 1) Harmony flag enabled, 2) Win10+JAWS, 3) CrOS+ChromeVox, and 4) OSX+VO, and also modification of this bug is needed if the same issue occurs on 1)-4).

Thanks!
 
Components: -UI>Accessibility UI>Accessibility>Compatibility

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

Status: Untriaged (was: Unconfirmed)

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

Summary: [A11y - Dialog] On ‘tab modal’ dialogs, NVDA+T and NVDA+B read the parent tab (Topchrome UIs and page), not the dialog itself (was: On ‘tab modal’ dialogs, NVDA+T and NVDA+B read the parent tab (Topchrome UIs and page), not the dialog itself)

Comment 4 by hwi@chromium.org, Oct 18 2017

Harmony (chrome://flags/#secondary-ui-md) has the same issue. 
Tested on Canary 64.0.3243.1, Win10, NVDA

Comment 5 by hwi@chromium.org, Oct 30 2017

Status: Available (was: Untriaged)
Labels: win-a11y
Labels: dialogs
Owner: nek...@chromium.org
Status: Started (was: Available)
Looks like window hierarchy is disconnected in the parent to child direction. A similar issue to one in the past where parent / child nodes were not properly connected when crossing dialog window boundaries.
If the window hierarchy is disconnected, nothing would read at all. So it's not completely disconnected.

We need to ping NV Access again to better understand what these keys are doing.

Blocking: 775686
Owner: aleventhal@chromium.org
Status: Assigned (was: Started)
Per discussion with Nektarios, I am assigning this to Aaron. Aaron, please see this internal doc: https://docs.google.com/document/d/1lYhvm4i37j54jO7Wh72_lz0KLcGC6keD-4pwMFT7Ri8/edit?usp=sharing 
 Issue 850345  has been merged into this issue.
Cc: aleventhal@chromium.org
Owner: jamwalla@chromium.org
Status: Started (was: Assigned)
 Issue 865221  has been merged into this issue.
Project Member

Comment 16 by bugdroid1@chromium.org, Aug 30

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

commit a6f6697e14bc8f86746d7dbdbddd52ee743dc838
Author: James Wallace-Lee <jamwalla@chromium.org>
Date: Thu Aug 30 01:27:38 2018

Tab modal dialog title should be accessible window title

Tab modal dialogs (ui::MODAL_TYPE_CHILD) should report their title
to AT (insert+T on JAWS and NVDA) when active. To accomplish this,
BrowserView::GetAccessibleWindowTitle should report the title of
the dialog when one is active.

Bug:  775680 
Test: browser_tests.exe --gtest_filter=BrowserViewTest.GetAccessibleTabModalDialogTitle
Change-Id: Ie693e1627c87e4d97eede64381d80dab31635642
Reviewed-on: https://chromium-review.googlesource.com/1184039
Commit-Queue: James Wallace-Lee <jamwalla@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587371}
[modify] https://crrev.com/a6f6697e14bc8f86746d7dbdbddd52ee743dc838/chrome/browser/ui/views/frame/browser_view.cc
[modify] https://crrev.com/a6f6697e14bc8f86746d7dbdbddd52ee743dc838/chrome/browser/ui/views/frame/browser_view_browsertest.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Aug 30

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

commit f82f307fdb2baf1727ec0fe2a7e6bec30d227b6c
Author: Ned Nguyen <nednguyen@google.com>
Date: Thu Aug 30 17:55:21 2018

Revert "Tab modal dialog title should be accessible window title"

This reverts commit a6f6697e14bc8f86746d7dbdbddd52ee743dc838.

Reason for revert: suspect breaking BrowserViewTest.GetAccessibleTabModalDialogTitle

BUG:879253

Original change's description:
> Tab modal dialog title should be accessible window title
> 
> Tab modal dialogs (ui::MODAL_TYPE_CHILD) should report their title
> to AT (insert+T on JAWS and NVDA) when active. To accomplish this,
> BrowserView::GetAccessibleWindowTitle should report the title of
> the dialog when one is active.
> 
> Bug:  775680 
> Test: browser_tests.exe --gtest_filter=BrowserViewTest.GetAccessibleTabModalDialogTitle
> Change-Id: Ie693e1627c87e4d97eede64381d80dab31635642
> Reviewed-on: https://chromium-review.googlesource.com/1184039
> Commit-Queue: James Wallace-Lee <jamwalla@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#587371}

TBR=avi@chromium.org,dmazzoni@chromium.org,sky@chromium.org,jamwalla@chromium.org

Change-Id: I92d90e704a80de07a85cc223fbe13e55fc763a71
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  775680 
Reviewed-on: https://chromium-review.googlesource.com/1197327
Reviewed-by: Ned Nguyen <nednguyen@google.com>
Commit-Queue: Ned Nguyen <nednguyen@google.com>
Cr-Commit-Position: refs/heads/master@{#587652}
[modify] https://crrev.com/f82f307fdb2baf1727ec0fe2a7e6bec30d227b6c/chrome/browser/ui/views/frame/browser_view.cc
[modify] https://crrev.com/f82f307fdb2baf1727ec0fe2a7e6bec30d227b6c/chrome/browser/ui/views/frame/browser_view_browsertest.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Aug 30

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

commit 7fca17c1c1eb2cfa1a8a9003fe6cd2545fa34993
Author: James Wallace-Lee <jamwalla@chromium.org>
Date: Thu Aug 30 23:39:40 2018

Reland "Tab modal dialog title should be accessible window title"

This is a reland of a6f6697e14bc8f86746d7dbdbddd52ee743dc838

The test, GetAccessibleTabModalDialogTitle, failed on OSX because
tab-modal dialogs are treated as native windows in Voiceover.
This fix is unnecessary on OSX so the test is now disabled there.

Original change's description:
> Tab modal dialog title should be accessible window title
>
> Tab modal dialogs (ui::MODAL_TYPE_CHILD) should report their title
> to AT (insert+T on JAWS and NVDA) when active. To accomplish this,
> BrowserView::GetAccessibleWindowTitle should report the title of
> the dialog when one is active.
>
> Bug:  775680 
> Test: browser_tests.exe --gtest_filter=BrowserViewTest.GetAccessibleTabModalDialogTitle
> Change-Id: Ie693e1627c87e4d97eede64381d80dab31635642
> Reviewed-on: https://chromium-review.googlesource.com/1184039
> Commit-Queue: James Wallace-Lee <jamwalla@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#587371}

Bug:  775680 ,  879074 ,  879253 
Change-Id: I4351a6487a4cb582383fe18b97e825a986464f59
Reviewed-on: https://chromium-review.googlesource.com/1197333
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: James Wallace-Lee <jamwalla@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587845}
[modify] https://crrev.com/7fca17c1c1eb2cfa1a8a9003fe6cd2545fa34993/chrome/browser/ui/views/frame/browser_view.cc
[modify] https://crrev.com/7fca17c1c1eb2cfa1a8a9003fe6cd2545fa34993/chrome/browser/ui/views/frame/browser_view_browsertest.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Aug 31

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

commit 9ce4948885ea3718cb2e8d150da06deb9911deef
Author: James Wallace-Lee <jamwalla@chromium.org>
Date: Fri Aug 31 20:15:12 2018

a11y: hide the rest of the browser when a tab-modal dialog is present

When a tab-modal dialog is shown, the page underneath it is inert. But
NVDA reads the page underneath the dialog when users press Insert+B to
read the whole dialog. To fix this, we hide the rest of the browser
from the accessibility tree when a tab-modal dialog is visible by
modifying AXPlatformNodeDelegate::PopulateChildWidgetVector to return
only the dialog.

Bug:  775680 
Change-Id: I2a5ec2eeef5ffe50ebd8819836c89ae73ddfdd36
Reviewed-on: https://chromium-review.googlesource.com/1189054
Commit-Queue: James Wallace-Lee <jamwalla@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588142}
[modify] https://crrev.com/9ce4948885ea3718cb2e8d150da06deb9911deef/chrome/browser/ui/views/frame/browser_view_browsertest.cc
[modify] https://crrev.com/9ce4948885ea3718cb2e8d150da06deb9911deef/ui/accessibility/BUILD.gn
[add] https://crrev.com/9ce4948885ea3718cb2e8d150da06deb9911deef/ui/accessibility/platform/ax_platform_node_test_helper.cc
[add] https://crrev.com/9ce4948885ea3718cb2e8d150da06deb9911deef/ui/accessibility/platform/ax_platform_node_test_helper.h
[modify] https://crrev.com/9ce4948885ea3718cb2e8d150da06deb9911deef/ui/views/accessibility/view_ax_platform_node_delegate.cc
[modify] https://crrev.com/9ce4948885ea3718cb2e8d150da06deb9911deef/ui/views/accessibility/view_ax_platform_node_delegate.h

Labels: a11y-testers
+a11y-testers - the two changes above should fix a lot of tab-modal dialogs with NVDA. A partial list is below, I don't know if we need to test each one, but please let me know if anything else can be improved more. Thanks!

tab-modal dialogs list:
- Resubmit form
- HTTP Auth
- JS Alert
- Sign in
- Credit card CVC confirmation
- Cookies (security chip > cookies)
- share your screen
- create shortcut
- Add extension (via a page, not webstore)

Work needed in other bugs:
- Print (see issue 868179)
- Cast (see  issue 856819 )
Project Member

Comment 21 by bugdroid1@chromium.org, Sep 3

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

commit 50446c40ca87a36dedc9536eda010629c56d6a6c
Author: Jan Wilken Dörrie <jdoerrie@chromium.org>
Date: Mon Sep 03 09:06:09 2018

Revert "a11y: hide the rest of the browser when a tab-modal dialog is present"

This reverts commit 9ce4948885ea3718cb2e8d150da06deb9911deef.

Reason for revert: Likely culprit of  https://crbug.com/879995 .

Original change's description:
> a11y: hide the rest of the browser when a tab-modal dialog is present
> 
> When a tab-modal dialog is shown, the page underneath it is inert. But
> NVDA reads the page underneath the dialog when users press Insert+B to
> read the whole dialog. To fix this, we hide the rest of the browser
> from the accessibility tree when a tab-modal dialog is visible by
> modifying AXPlatformNodeDelegate::PopulateChildWidgetVector to return
> only the dialog.
> 
> Bug:  775680 
> Change-Id: I2a5ec2eeef5ffe50ebd8819836c89ae73ddfdd36
> Reviewed-on: https://chromium-review.googlesource.com/1189054
> Commit-Queue: James Wallace-Lee <jamwalla@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588142}

TBR=dmazzoni@chromium.org,sky@chromium.org,jamwalla@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  775680 
Change-Id: I44b9322799880ee613a6380f8ead0c3d86e21549
Reviewed-on: https://chromium-review.googlesource.com/1201824
Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588357}
[modify] https://crrev.com/50446c40ca87a36dedc9536eda010629c56d6a6c/chrome/browser/ui/views/frame/browser_view_browsertest.cc
[modify] https://crrev.com/50446c40ca87a36dedc9536eda010629c56d6a6c/ui/accessibility/BUILD.gn
[delete] https://crrev.com/c52a018e2b83e04de2a89721f954f8c03e369877/ui/accessibility/platform/ax_platform_node_test_helper.cc
[delete] https://crrev.com/c52a018e2b83e04de2a89721f954f8c03e369877/ui/accessibility/platform/ax_platform_node_test_helper.h
[modify] https://crrev.com/50446c40ca87a36dedc9536eda010629c56d6a6c/ui/views/accessibility/view_ax_platform_node_delegate.cc
[modify] https://crrev.com/50446c40ca87a36dedc9536eda010629c56d6a6c/ui/views/accessibility/view_ax_platform_node_delegate.h

Project Member

Comment 23 by bugdroid1@chromium.org, Sep 5

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

commit 4829f738bb1b9028c0f325966e0143316bf8596d
Author: James Wallace-Lee <jamwalla@chromium.org>
Date: Tue Sep 04 22:34:04 2018

Reland "a11y: hide the rest of the browser when a tab-modal dialog is present"

This is a reland of 9ce4948885ea3718cb2e8d150da06deb9911deef

The test, GetAccessibleTabModalDialogTree, failed on OSX because
tab-modal dialogs are treated as native windows in Voiceover.
This fix is unnecessary on OSX so the test is now disabled there.
(See also crrev.com/c/1197333)

Original change's description:
> a11y: hide the rest of the browser when a tab-modal dialog is present
>
> When a tab-modal dialog is shown, the page underneath it is inert. But
> NVDA reads the page underneath the dialog when users press Insert+B to
> read the whole dialog. To fix this, we hide the rest of the browser
> from the accessibility tree when a tab-modal dialog is visible by
> modifying AXPlatformNodeDelegate::PopulateChildWidgetVector to return
> only the dialog.
>
> Bug:  775680 
> Change-Id: I2a5ec2eeef5ffe50ebd8819836c89ae73ddfdd36
> Reviewed-on: https://chromium-review.googlesource.com/1189054
> Commit-Queue: James Wallace-Lee <jamwalla@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588142}

Bug:  775680 ,  879995 
Change-Id: Ie9d49eb5e67655e98ab220c8fc78e56aaf346cd0
Reviewed-on: https://chromium-review.googlesource.com/1204710
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: James Wallace-Lee <jamwalla@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588671}
[modify] https://crrev.com/4829f738bb1b9028c0f325966e0143316bf8596d/chrome/browser/ui/views/frame/browser_view_browsertest.cc
[modify] https://crrev.com/4829f738bb1b9028c0f325966e0143316bf8596d/ui/accessibility/BUILD.gn
[add] https://crrev.com/4829f738bb1b9028c0f325966e0143316bf8596d/ui/accessibility/platform/ax_platform_node_test_helper.cc
[add] https://crrev.com/4829f738bb1b9028c0f325966e0143316bf8596d/ui/accessibility/platform/ax_platform_node_test_helper.h
[modify] https://crrev.com/4829f738bb1b9028c0f325966e0143316bf8596d/ui/views/accessibility/view_ax_platform_node_delegate.cc
[modify] https://crrev.com/4829f738bb1b9028c0f325966e0143316bf8596d/ui/views/accessibility/view_ax_platform_node_delegate.h

Labels: -a11y-Dialogs
Labels: -dialogs a11y-Dialogs
Labels: --a11y-Dialogs
Labels: -a11y-testers
Chrome: 71.0.3573.0 (Official Build) dev (64-bit) (cohort: Dev)

This appears to be fixed. I tested the listed dialogs.
Status: Fixed (was: Started)
Thanks David!

Sign in to add a comment