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

Issue 727179 link

Starred by 8 users

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug-Regression
Team-Accessibility



Sign in to add a comment

TalkBack is not working on M60

Project Member Reported by yawano@chromium.org, May 29 2017

Issue description

Chrome Version: ToT
OS: Chrome OS

What steps will reproduce the problem?
(1) Enable spoken feedback by Ctrl+Alt+Z
(2) Open any Android window
(3) Try to explore the window by Search+arrow keys.

What is the expected result?
Accessibility focus should move around. Spoken feedback should be provided.

What happens instead?
Nothing happens.

Additional info
This issue becomes to happen after https://crrev.com/2872343003
After this CL, key events becomes to go through Chrome event rewriter before it goes to Android side. Before this CL, raw event stream was provided to Android.

Every key event which contains Search key are consumed by spoken_feedback_event_rewriter.h/cc if spoken feedback is enabled.
 

Comment 1 by uekawa@chromium.org, May 29 2017

Labels: ReleaseBlock-Stable

Comment 2 by sadrul@chromium.org, May 29 2017

Owner: moshayedi@chromium.org
Status: Assigned (was: Untriaged)

Comment 3 by yawano@chromium.org, May 29 2017

Also other key conversions are happening in Chrome, e.g. Search+Arrow right is converted to End key. Those key conversions are unexpected conversion for Android.

As Search key is used as a modifier key in TalkBack on Chromebook, this makes TalkBack unusable.
If we don't have a quick fix for this, can we revert the CL until we find a solution for this?
Issue 727711 has been merged into this issue.
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 3 2017

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

commit 9aa11de928b45b4bf70124d926f9359d8d48586c
Author: moshayedi <moshayedi@chromium.org>
Date: Sat Jun 03 01:33:24 2017

Don't rewrite events twice.

Rewriters are first tried in AshWindowTreeHostPlatform::DispatchEvent(). We
also rewrite them in WindowTreeHost::DispatchKeyEventPostIME().

This for example causes problems when ARC++ is focused while spoken feedback
is active. So this CL removes the 2nd rewrite.

If Spoken Feedback is active but ARC++ is focused, this is the path for
super+right-arrow:
 1. AshWindowTreeHostPlatform::DispatchEvent() tries rewriters before sending
    event to sink.
 2. SpokenFeedbackEventRewriter sees super key is down, so sends the event to
    the Spoken Feedback event extension and tells ash to discard the event.
 3. The Spoken Feedback extension doesn't handle the event, and the event is
    resent to ash from WebContentsImpl::HandleKeyboardEvent(), which sends it
    to SpokenFeedbackEventRewriterDelegate::HandleKeyboardEvent(), which sends
    it to event sink (skipping rewriters).
 4. Event is sent to InputMethod, it is not handled by InputMethod, so it is
    sent to WindowTreeHost::DispatchKeyEventPostIME().

Now, if at WTH::DispatchKeyEventPostIME() we try to rewrite the event again,
steps 2 to 4 will be tried infinitely and event won't be dispatched to ARC++.

This is what was happening before this CL. This CL skips rewriters at
WTH::DispatchKeyEventPostIME().

BUG= 727179 

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

[modify] https://crrev.com/9aa11de928b45b4bf70124d926f9359d8d48586c/ui/aura/window_tree_host.cc
[modify] https://crrev.com/9aa11de928b45b4bf70124d926f9359d8d48586c/ui/aura/window_tree_host_unittest.cc

Labels: -ReleaseBlock-Stable ReleaseBlock-Beta
This actually breaks ChromeVox usage in general.
Is ChromeVox broken on ToT? It seems to be working when I try it. What are the steps to reproduce it?

Thanks.
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 6 2017

Labels: merge-merged-3112
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f694603e904f50e047ba9fc52651782ce1a41bd1

commit f694603e904f50e047ba9fc52651782ce1a41bd1
Author: Hadi Moshayedi <moshayedi@chromium.org>
Date: Tue Jun 06 17:57:58 2017

Don't rewrite events twice.

Rewriters are first tried in AshWindowTreeHostPlatform::DispatchEvent(). We
also rewrite them in WindowTreeHost::DispatchKeyEventPostIME().

This for example causes problems when ARC++ is focused while spoken feedback
is active. So this CL removes the 2nd rewrite.

If Spoken Feedback is active but ARC++ is focused, this is the path for
super+right-arrow:
 1. AshWindowTreeHostPlatform::DispatchEvent() tries rewriters before sending
    event to sink.
 2. SpokenFeedbackEventRewriter sees super key is down, so sends the event to
    the Spoken Feedback event extension and tells ash to discard the event.
 3. The Spoken Feedback extension doesn't handle the event, and the event is
    resent to ash from WebContentsImpl::HandleKeyboardEvent(), which sends it
    to SpokenFeedbackEventRewriterDelegate::HandleKeyboardEvent(), which sends
    it to event sink (skipping rewriters).
 4. Event is sent to InputMethod, it is not handled by InputMethod, so it is
    sent to WindowTreeHost::DispatchKeyEventPostIME().

Now, if at WTH::DispatchKeyEventPostIME() we try to rewrite the event again,
steps 2 to 4 will be tried infinitely and event won't be dispatched to ARC++.

This is what was happening before this CL. This CL skips rewriters at
WTH::DispatchKeyEventPostIME().

BUG= 727179 

Review-Url: https://codereview.chromium.org/2916673002
Cr-Original-Commit-Position: refs/heads/master@{#476848}
Review-Url: https://codereview.chromium.org/2926473004 .
Cr-Commit-Position: refs/branch-heads/3112@{#189}
Cr-Branched-From: b6460e24cf59f429d69de255538d0fc7a425ccf9-refs/heads/master@{#474897}

[modify] https://crrev.com/f694603e904f50e047ba9fc52651782ce1a41bd1/ui/aura/window_tree_host.cc
[modify] https://crrev.com/f694603e904f50e047ba9fc52651782ce1a41bd1/ui/aura/window_tree_host_unittest.cc

Any other CL expected for this? Can we mark as fixed?
Status: Fixed (was: Assigned)
No other CL is expected. Marking this as fixed. Please verify.
Cc: jamiewa...@chromium.org afakhry@chromium.org weidongg@chromium.org
 Issue 728269  has been merged into this issue.
 Issue 726555  has been merged into this issue.
Status: Verified (was: Fixed)
verified on 60.0.3112.31 / 9592.20.0 build

Sign in to add a comment