DescriptionFix 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
Committed: https://crrev.com/ff86e347c0030f96d3beefec7bb3de7caf882371
Cr-Commit-Position: refs/heads/master@{#397781}
Patch Set 1 #
Total comments: 11
Patch Set 2 : Remove log statements #
Total comments: 2
Patch Set 3 : Add TODO for second display #Messages
Total messages: 21 (5 generated)
|