New issue
Advanced search Search tips

Issue 613694 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug
Team-Accessibility

Blocked on:
issue 605788



Sign in to add a comment

ChromeBox/ChromeBase for Meetings spoken feedback support

Project Member Reported by dmazz...@chromium.org, May 20 2016

Issue description

This is a tracking bug for all work needed to make ChromeBox/ChromeBase For Meetings devices to work well with spoken feedback on.

Issues include touch support and toggling spoken feedback support with just the touch screen, ChromeVox Next support, and more.

 
Blockedon: 605788
Project Member

Comment 2 by bugdroid1@chromium.org, May 24 2016

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

commit 22a7571e58647fce3ab7a7259ab99ff66cef1020
Author: dmazzoni <dmazzoni@chromium.org>
Date: Tue May 24 18:34:39 2016

ChromeVox shouldn't navigate to iframe or webview elements.

They're focusable, but it shouldn't be possible to directly navigate to them.

BUG= 613694 
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/1998153004
Cr-Commit-Position: refs/heads/master@{#395645}

[modify] https://crrev.com/22a7571e58647fce3ab7a7259ab99ff66cef1020/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_predicate.js
[modify] https://crrev.com/22a7571e58647fce3ab7a7259ab99ff66cef1020/chrome/browser/resources/chromeos/chromevox/cvox2/background/background_test.extjs

Project Member

Comment 3 by bugdroid1@chromium.org, May 26 2016

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

commit 69cc7b82b9db14e2eb2d3a78299ffa3a8dbcdbb7
Author: dmazzoni <dmazzoni@chromium.org>
Date: Thu May 26 21:10:11 2016

Whitelist Hangouts, including Chromebox for Meetings, for ChromeVox Next

BUG= 613694 
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/1998033004
Cr-Commit-Position: refs/heads/master@{#396282}

[modify] https://crrev.com/69cc7b82b9db14e2eb2d3a78299ffa3a8dbcdbb7/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2

Project Member

Comment 4 by bugdroid1@chromium.org, May 31 2016

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

commit bab8dc06fc0c1df0b72ecac3e055dabb6dde2188
Author: dmazzoni <dmazzoni@chromium.org>
Date: Tue May 31 21:56:17 2016

Ignore duplicate HOVER events

Each time your finger moved we were interrupting and speaking the same
object again.

BUG= 613694 
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2010493004
Cr-Commit-Position: refs/heads/master@{#396943}

[modify] https://crrev.com/bab8dc06fc0c1df0b72ecac3e055dabb6dde2188/chrome/browser/resources/chromeos/chromevox/cvox2/background/desktop_automation_handler.js

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 2 2016

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

commit f9e11986fc63ddfd1f20c88b72530fd6b5af9dba
Author: dmazzoni <dmazzoni@chromium.org>
Date: Thu Jun 02 07:03:35 2016

Fix touch accessibility events in WebViews and iframes

This only affects Chrome OS devices with touch screens with spoken feedback
enabled. In that mode, touching the screen sends a mouse move event instead
of a touch down event, and it sets a special touch accessibility flag, and
inside Blink that gets translated into a HOVER event on the accessibility
object the event targets.

This change fixes two specific cases:
* Tapping in a WebView was sending a HOVER event on both the embedder frame
  and the guest frame. Fix this by ignoring touch accessibility events on a
  LayoutPart.
* Tapping in an iframe wasn't translating the coordinates properly, so the
  hit test was sometimes returning the wrong object.

It also adds tests and consolidates some test helper functions into a
common file.

BUG= 613694 

Review-Url: https://codereview.chromium.org/2009283002
Cr-Commit-Position: refs/heads/master@{#397325}

[modify] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/chrome/browser/apps/guest_view/web_view_browsertest.cc
[add] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/chrome/test/data/extensions/platform_apps/web_view/touch_accessibility/main.html
[add] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/chrome/test/data/extensions/platform_apps/web_view/touch_accessibility/main.js
[add] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/chrome/test/data/extensions/platform_apps/web_view/touch_accessibility/manifest.json
[add] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/chrome/test/data/extensions/platform_apps/web_view/touch_accessibility/test.js
[add] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/content/browser/accessibility/accessibility_test_utils.cc
[add] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/content/browser/accessibility/accessibility_test_utils.h
[modify] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/content/browser/accessibility/hit_testing_browsertest.cc
[modify] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/content/browser/accessibility/site_per_process_accessibility_browsertest.cc
[modify] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/content/browser/accessibility/touch_accessibility_aura_browsertest.cc
[modify] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/content/content_tests.gypi
[modify] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
[modify] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/third_party/WebKit/Source/modules/accessibility/AXObjectCacheImpl.cpp
[modify] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/third_party/WebKit/Source/web/WebInputEventConversion.cpp
[modify] https://crrev.com/f9e11986fc63ddfd1f20c88b72530fd6b5af9dba/third_party/WebKit/Source/web/WebViewImpl.cpp

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 2 2016

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

commit 2fa74e5fca5dc25616b23ba7d098db48f33e2d90
Author: dmazzoni <dmazzoni@chromium.org>
Date: Thu Jun 02 10:45:34 2016

Handle touch accessibility in PageWidgetDelegate instead of WebViewImpl.

WebViewImpl::handleInputEvent isn't called for out-of-process iframes.
Move the touch accessibility code to PageWidgetDelegate instead, so that
it's called from both contexts. This is a follow-up to ecrrev.com/2009283002

BUG= 613694 

Review-Url: https://codereview.chromium.org/2036493002
Cr-Commit-Position: refs/heads/master@{#397356}

[modify] https://crrev.com/2fa74e5fca5dc25616b23ba7d098db48f33e2d90/content/browser/accessibility/touch_accessibility_aura_browsertest.cc
[modify] https://crrev.com/2fa74e5fca5dc25616b23ba7d098db48f33e2d90/third_party/WebKit/Source/web/PageWidgetDelegate.cpp
[modify] https://crrev.com/2fa74e5fca5dc25616b23ba7d098db48f33e2d90/third_party/WebKit/Source/web/WebViewImpl.cpp

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 3 2016

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

commit ff86e347c0030f96d3beefec7bb3de7caf882371
Author: dmazzoni <dmazzoni@chromium.org>
Date: Fri Jun 03 19:52:32 2016

Fix the double-tap to click gesture in touch accessibility mode.

Originally Chrome OS's touch accessibility support was implemented purely
as an event rewriter. Tapping the screen generates a mouse move event,
which announces the object under the finger without clicking it, and then
double-tapping anywhere on the screen generates a click at the last point
where the user tapped. It's also possible to trigger clicks and drags by
more advanced means.

This worked well for touch exploration alone, but it's also possible for
the current accessibility object to move due to a gesture (to move to the
next or previous object on the screen, for example) or due to input focus
moving. In those cases, a double-tap was sending a simulated click to the
wrong point - it was sending it to the last touch exploration point, rather
than to the current accessibility object.

This change fixes this behavior by changing how the touch accessibility
support works.

First, it introduces the concept of the anchor point, which is the point
where the next simulated click will go. Initially this is set via touch
exploration, however now as soon as ChromeVox identifies the object under
the finger, it sends the center point of that object as the new explicit
anchor point, and that point overrides the touch exploration point for the
duration of this touch.

Second, when the user does a discrete gesture to click on the current anchor
point (double-tap, split-tap, or single-tap), it sends a gesture command
to ChromeVox, allowing ChromeVox to directly activate the current object.
However, if the user holds their finger down, it still passes through the
touch events so dragging and long-pressing are possible.

Third, it simplifies "split tap" support where you can tap a second finger
as a shortcut to clicking. That support now only supports a basic click and
not a long-press or drag.

BUG= 513713 , 613694 
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2007863004
Cr-Commit-Position: refs/heads/master@{#397781}

[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/ash/ash_touch_exploration_manager_chromeos.cc
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/ash/ash_touch_exploration_manager_chromeos.h
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/ash/root_window_controller.cc
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/ash/root_window_controller.h
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/chrome/browser/accessibility/accessibility_extension_api.cc
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/chrome/browser/chromeos/accessibility/accessibility_manager.cc
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/chrome/browser/chromeos/accessibility/accessibility_manager.h
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/chrome/common/extensions/api/accessibility_private.json
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/ui/accessibility/ax_enums.idl
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/ui/chromeos/touch_exploration_controller.cc
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/ui/chromeos/touch_exploration_controller.h
[modify] https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371/ui/chromeos/touch_exploration_controller_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 4 2016

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

commit 787fcfd375bb7e761a2ccfb869b1bb4877a2f337
Author: dmazzoni <dmazzoni@chromium.org>
Date: Sat Jun 04 00:43:11 2016

Make ChromeVox cursor robust to deleted nodes

If a node becomes invalid, the cursor snaps to the nearest valid ancestor.
Fixing this uncovered a lot of places where we were assuming that a cursor's
node must be valid, but it's possible that even with this new check that
a cursor could still be invalid, so I added checks in a lot of places.

BUG= 613694 
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2007183002
Cr-Commit-Position: refs/heads/master@{#397860}

[modify] https://crrev.com/787fcfd375bb7e761a2ccfb869b1bb4877a2f337/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js
[modify] https://crrev.com/787fcfd375bb7e761a2ccfb869b1bb4877a2f337/chrome/browser/resources/chromeos/chromevox/cvox2/background/background_test.extjs
[modify] https://crrev.com/787fcfd375bb7e761a2ccfb869b1bb4877a2f337/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js
[modify] https://crrev.com/787fcfd375bb7e761a2ccfb869b1bb4877a2f337/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js

Labels: NewComponent-Accessibility-ChromeVox NewComponent-Accessibility
Components: UI>Accessibility>ChromeVox
Labels: -newcomponent-accessibility -newcomponent-accessibility-chromevox
Components: -UI>Accessibility
Status: Archived (was: Assigned)

Sign in to add a comment