New issue
Advanced search Search tips

Issue 787126 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Dec 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug
Team-Accessibility



Sign in to add a comment

A11Y: Blocking issue when "refresh page" alert dialog is dismissed causing users to lose entered data

Project Member Reported by dsexton@chromium.org, Nov 20 2017

Issue description

OS Name: Microsoft Windows 10 Enterprise
Version: 10.0.14393 Build 14393
Browsers:
Chrome Canary: 64.0.3273.3 (Official Build) canary (64-bit) (cohort: Clang-64)
Chrome stable: 62.0.3202.94 (Official Build) (64-bit) (cohort: Stable)
Firefox: 52.4.1 (64-bit)
Screen readers:
NVDA: Version 2017.3
JAWS Professional: Version 2018 (build 1710.42 ILM) 

Steps to repro: Chrome canary and ChromeStable with both JAWS and NVDA
# With NVDA running: navigate to: https://bugs.chromium.org/p/chromium/issues/detail?id=787051
# Type a comment in the comment box, but do NOT submit it
# Press ctrl+r to reload the page
# Press 'don't reload' button
# Try to navigate with arrows, tab, f6, minimizing, maximizing, switching away and back to Chrome
# Notice that you cannot interact with the page normally

Expected: Pressing 'don't reload' button returns focus to the previously focused control

Actual: Focus never returns to the page.

Steps to repro in Firefox:
# With NVDA running: navigate to: https://bugs.chromium.org/p/chromium/issues/detail?id=787051
# Type a comment in the comment box, but do NOT submit it
# Press ctrl+r to reload the page
# Press 'stay on page' button
# Notice that your focus is returned to where it was when the dialog opened

Expected: Works as expected

 
Labels: win-a11y
Owner: nek...@chromium.org
Status: Assigned (was: Available)
Possibly related to https://bugs.chromium.org/p/chromium/issues/detail?id=785100
Assigning to Nektar@ to investigate.
Owner: dmazz...@chromium.org
I know what's going on here, I'll fix it.

Status: Started (was: Assigned)
Patch out for review:
https://chromium-review.googlesource.com/c/chromium/src/+/809491

The fix was easy, the test was hard.

Project Member

Comment 4 by bugdroid1@chromium.org, Dec 12 2017

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

commit 3c7007aeee6100a182259afa33fa32340e27213b
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Tue Dec 12 07:34:05 2017

Fix accessibility when user cancels reloading the page.

In Windows accessibility code we had a special case that suppressed
accessibility events after a page is being navigated away from, to
prevent overlapping events from the old page and new page. This
caused a major problem if you cancel the beforeunload dialog,
because BrowserAccessibilityManager still thought the page was
being reloaded.

The key fix is for WebContentsImpl to notify
BrowserAccessibilityManager on DidStopLoading, since that's called
when canceling a reload. In other cases when it's called, it will be
harmless as BrowserAccessibilityManager will already be in the right
state.

The rest of the changes are some refactoring to make it possible
to simulate canceling the beforeunload dialog in a test.

Bug:  787126 
Change-Id: I6356d827223aac559778fa96d9a7198916fe10f9
Reviewed-on: https://chromium-review.googlesource.com/809491
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Nektarios Paisios <nektar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523365}
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/content/browser/accessibility/accessibility_event_recorder.cc
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/content/browser/accessibility/accessibility_event_recorder.h
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/content/browser/accessibility/accessibility_win_browsertest.cc
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/content/browser/accessibility/browser_accessibility_manager.cc
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/content/browser/accessibility/browser_accessibility_manager.h
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/content/browser/frame_host/frame_tree_node.cc
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/content/browser/web_contents/web_contents_impl_browsertest.cc
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/content/shell/browser/shell_javascript_dialog_manager.cc
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/content/shell/browser/shell_javascript_dialog_manager.h
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/content/test/content_browser_test_utils_internal.cc
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/content/test/content_browser_test_utils_internal.h
[modify] https://crrev.com/3c7007aeee6100a182259afa33fa32340e27213b/tools/accessibility/inspect/ax_event_server.cc

Status: Fixed (was: Started)
Status: Verified (was: Fixed)

Sign in to add a comment