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

Issue 756648 link

Starred by 2 users

Issue metadata

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

Blocking:
issue 662501


Show other hotlists

Hotlists containing this issue:
Hotlist-1


Sign in to add a comment

Difficult to double-tap on MiMo touchscreen when spoken feedback is enabled

Project Member Reported by dmazz...@chromium.org, Aug 17 2017

Issue description

Connect a MiMo touchscreen to a Chrome OS device, enable spoken feedback, and try to tap to select, then double-tap to activate. It's less reliable than on a normal Chromebook.

The MiMo seems to be far less reliable with its touch events, it drops touch events if they're too close together.

However, we also have a bug - the release of the second tap must happen within the double-tap timeout. It should be the press of the second tap. If that's fixed, it's much easier to double-tap.


 
Labels: ReleaseBlock-Stable M-61
Project Member

Comment 2 by bugdroid1@chromium.org, Aug 18 2017

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

commit 0859999dd858d5fa1e0dc19419a0b87b1d3cd5d9
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Fri Aug 18 00:46:25 2017

Fix timing of double-tap for touch accessibility.

In touch accessibility mode, a double-tap triggers a click event.
Previously, we required that the release of the second tap happen within
the double-tap timeout relative to the first press. This was too strict
and difficult to achieve on the MiMo. Instead it should only require that
the press of the second tap happen within the double-tap timeout.

Bug:  756648 
Change-Id: I00da8ab8494a84782bf38b3bb542464f239040d5
Reviewed-on: https://chromium-review.googlesource.com/619764
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495399}
[modify] https://crrev.com/0859999dd858d5fa1e0dc19419a0b87b1d3cd5d9/ui/chromeos/touch_exploration_controller.cc
[modify] https://crrev.com/0859999dd858d5fa1e0dc19419a0b87b1d3cd5d9/ui/chromeos/touch_exploration_controller.h
[modify] https://crrev.com/0859999dd858d5fa1e0dc19419a0b87b1d3cd5d9/ui/chromeos/touch_exploration_controller_unittest.cc

Comment 3 by r...@chromium.org, Aug 18 2017

Components: UI>Accessibility
Labels: -Pri-3 Pri-1
Changing priority to 1 since it is RBS.

Labels: Proj-Bluestreak
Labels: bluestreak-launch-blocker
Labels: Merge-Request-61
Project Member

Comment 7 by sheriffbot@chromium.org, Aug 23 2017

Labels: -Merge-Request-61 Merge-Review-61 Hotlist-Merge-Review
This bug requires manual review: We are only 12 days from stable.
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), ketakid@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Merge-Review-61 Merge-Approved-61
Approving merge to M61 Chrome OS.
Project Member

Comment 9 by sheriffbot@chromium.org, Aug 28 2017

Cc: keta...@chromium.org
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 10 by bugdroid1@chromium.org, Aug 28 2017

Labels: -merge-approved-61 merge-merged-3163
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b56b33a22a730c6d21ff6d115c38cbef6b669cd1

commit b56b33a22a730c6d21ff6d115c38cbef6b669cd1
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Mon Aug 28 17:01:57 2017

Merge to M61: Fix timing of double-tap for touch accessibility.

In touch accessibility mode, a double-tap triggers a click event.
Previously, we required that the release of the second tap happen within
the double-tap timeout relative to the first press. This was too strict
and difficult to achieve on the MiMo. Instead it should only require that
the press of the second tap happen within the double-tap timeout.

(cherry picked from commit 0859999dd858d5fa1e0dc19419a0b87b1d3cd5d9)

Bug:  756648 
Change-Id: I00da8ab8494a84782bf38b3bb542464f239040d5
Reviewed-on: https://chromium-review.googlesource.com/619764
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#495399}
Reviewed-on: https://chromium-review.googlesource.com/638559
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/branch-heads/3163@{#929}
Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}
[modify] https://crrev.com/b56b33a22a730c6d21ff6d115c38cbef6b669cd1/ui/chromeos/touch_exploration_controller.cc
[modify] https://crrev.com/b56b33a22a730c6d21ff6d115c38cbef6b669cd1/ui/chromeos/touch_exploration_controller.h
[modify] https://crrev.com/b56b33a22a730c6d21ff6d115c38cbef6b669cd1/ui/chromeos/touch_exploration_controller_unittest.cc

Status: Fixed (was: Started)
Who should verify this bug? we saw some flakiness after this fix still. Can someone helps for verification? Thanks
Status: Verified (was: Fixed)
Verified the fix on R61-9765.53.0, it works fine.
I think the touch screen calibration is a bit off. If you double-tap softly, you can see that the release is never registred using evtest. See double-tap example below where it goes from pressure 102(press) to 32(release) and then to 66(press) and then 0 (release). Only 102 and 0 are registered as BTN_TOUCH events since 32 is too high for a release. So I think it is to sensitive and can register >= 32 if you stop touching it but don't move your finger far enough away from it. Attached is the full evtest log.

Event: time 1504724909.256434, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1504724909.256434, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 102
Event: time 1504724909.267420, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 90
Event: time 1504724909.275419, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 76
Event: time 1504724909.285418, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 61
Event: time 1504724909.294451, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 48
Event: time 1504724909.304424, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 40
Event: time 1504724909.313418, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 36
Event: time 1504724909.322408, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 34
Event: time 1504724909.332449, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 33
Event: time 1504724909.341421, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32
Event: time 1504724909.408447, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 36
Event: time 1504724909.417444, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 45
Event: time 1504724909.427415, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 56
Event: time 1504724909.436479, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 66
Event: time 1504724909.446439, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 63
Event: time 1504724909.455456, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 58
Event: time 1504724909.464457, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 45
Event: time 1504724909.474436, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 38
Event: time 1504724909.483447, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 35
Event: time 1504724909.492448, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 33
Event: time 1504724909.501449, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32
Event: time 1504724909.529431, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1504724909.529431, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0



touchlog_save
8.1 KB View Download

Comment 15 by choonc@google.com, Sep 7 2017

Cc: frankhu@chromium.org srivatsanr@google.com sadolfsson@chromium.org
Sri is going to check with Zhongze to make sure MIMO has firmware with feedback from last tuning exercise.
So there might be a little more to this. I haven't seen anything about movement causing touch events to be lost. I have noticed though that the pressure variable is not updated around the trigger points. Normally we have 9-10 ms between pressure values. But when it is close to the low point (32) there is a 67ms gap, which is quite a lot.

Snippet from above:
Event: time 1504724909.332449, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 33
Event: time 1504724909.341421, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32
--- Why the gap in time here?
Event: time 1504724909.408447, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 36

It could be that the touch-controller does evaluate pressure and would generate touch events even though it does not notify the host about pressure, but we really should ask the vendor about this.

I took another log which shows similar symptom. Here it is a double tap where I suspect the second taps highest value (38) is artificially low because of a gap of 107ms. Full log attached.

Event: time 1504807166.065404, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1504807166.065404, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 105
Event: time 1504807166.081368, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 92
Event: time 1504807166.096324, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 79
Event: time 1504807166.111331, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 68
Event: time 1504807166.126367, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 59
Event: time 1504807166.141407, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 50
Event: time 1504807166.157361, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 41
Event: time 1504807166.172403, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 36
Event: time 1504807166.187406, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 34
Event: time 1504807166.202364, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 33
Event: time 1504807166.217330, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32
Event: time 1504807166.324404, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 38
Event: time 1504807166.339409, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 35
Event: time 1504807166.353328, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 33
Event: time 1504807166.369332, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32
Event: time 1504807166.429327, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1504807166.429327, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
touchlog_save2
5.7 KB View Download
I will take look with the USB analyzer and see if the data from the device is 1:1 with what evtest is reporting.
So the USB analyzer tells me that the touch keep sending events during the gaps in evtest logs. It just get filtered out on the host side since it is the same event over and over (i.e. pressure with value 32). So the time gaps shouldn't be a problem.
I did some touch test today. The result shows the minimum time interval between 2 touch event for touch screen to recognize is about 160 ms (between 2 press event). The dual touch timeout threshold is set to 300 ms. So taping too fast will be take as a single tap by touch screen driver and taping too slow will be take as two independent touch by the UI. That's why even with this touch, the double-tap still fails sometimes. In my test, about 80% double-tap works.

Sign in to add a comment