Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(321)

Issue 2803823002: Fix Chrome OS virtual keyboard accessibility (Closed)

Created:
3 years, 8 months ago by dmazzoni
Modified:
3 years, 7 months ago
Reviewers:
David Tseng, jam
CC:
chromium-reviews, extensions-reviews_chromium.org, kalyank, sadrul, oshima+watch_chromium.org, aboxhall+watch_chromium.org, tfarina, nektar+watch_chromium.org, yuzo+watch_chromium.org, dougt+watch_chromium.org, dmazzoni+watch_chromium.org, dtseng+watch_chromium.org, chromium-apps-reviews_chromium.org, je_julie, davemoore+watch_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix Chrome OS virtual keyboard accessibility The user-visible change here is that Select-to-speak on Chrome OS now works on the virtual keyboard. It also makes it visible to ChromeVox so we can make that work better too. Three fixes were required: * We need to always set the window property on the window for a RenderWidgetHostViewAura, whether that WebContents already has accessibility enabled or not. That's solved by moving the trigger for the window property to RenderViewReady and WebContentsImpl::NotifySwappedFromRenderManager. * AXAuraObjCache needs to listen for newly-created windows, changes to window bounds, and window property changes. Otherwise the virtual keyboard window is created but no accessibility events fire allowing automation clients to find it. * The bounds for a AXWindowObjWrapper should be global bounds and not local. This wasn't caught before because widget bounds were correct, but the virtual keyboard is directly in an aura Window, with no Widget and no Views. BUG=699617 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation;master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2803823002 Cr-Commit-Position: refs/heads/master@{#468182} Committed: https://chromium.googlesource.com/chromium/src/+/621114575ac090c0137ac4c9c6eb3c6deebfe61c

Patch Set 1 #

Total comments: 9

Patch Set 2 : Get rid of need for EnableAccessibility #

Patch Set 3 : Rebase on dependent change #

Total comments: 4

Patch Set 4 : Rebase #

Patch Set 5 : Add comment about root windows to address feedback #

Patch Set 6 : Rebase #

Patch Set 7 : Debug failing test #

Patch Set 8 : Fix issue with multiple parents of WebContents and add test #

Patch Set 9 : Rebase #

Total comments: 4

Patch Set 10 : Check for window_ == window #

Unified diffs Side-by-side diffs Delta from patch set Stats (+168 lines, -6 lines) Patch
M chrome/browser/ui/aura/accessibility/automation_manager_aura.h View 1 2 3 4 5 6 7 2 chunks +4 lines, -0 lines 0 comments Download
M chrome/browser/ui/aura/accessibility/automation_manager_aura.cc View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
A chrome/browser/ui/aura/accessibility/automation_manager_aura_browsertest.cc View 1 2 3 4 5 6 7 1 chunk +85 lines, -0 lines 0 comments Download
M chrome/test/BUILD.gn View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_frame_host_impl.cc View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -4 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 2 3 4 5 6 7 8 2 chunks +10 lines, -0 lines 0 comments Download
M ui/views/accessibility/ax_aura_obj_cache.h View 1 2 4 chunks +7 lines, -0 lines 0 comments Download
M ui/views/accessibility/ax_aura_obj_cache.cc View 1 2 3 4 3 chunks +23 lines, -0 lines 0 comments Download
M ui/views/accessibility/ax_window_obj_wrapper.h View 1 2 1 chunk +3 lines, -0 lines 0 comments Download
M ui/views/accessibility/ax_window_obj_wrapper.cc View 1 2 3 4 5 6 7 8 9 3 chunks +28 lines, -2 lines 0 comments Download

Messages

Total messages: 58 (35 generated)
dmazzoni
3 years, 8 months ago (2017-04-05 21:01:22 UTC) #3
David Tseng
https://codereview.chromium.org/2803823002/diff/1/chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc File chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc (right): https://codereview.chromium.org/2803823002/diff/1/chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc#newcode135 chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc:135: ax_obj->HandleAccessibleAction(action); I think this should happen inside of the ...
3 years, 8 months ago (2017-04-05 23:43:43 UTC) #7
David Tseng
https://codereview.chromium.org/2803823002/diff/1/chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc File chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc (right): https://codereview.chromium.org/2803823002/diff/1/chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc#newcode150 chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc:150: nullptr, nullptr, ui::AX_EVENT_MOUSE_CANCELED); Btw, it seems like a hack ...
3 years, 8 months ago (2017-04-06 16:45:44 UTC) #8
dmazzoni
https://codereview.chromium.org/2803823002/diff/1/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc File chrome/browser/extensions/api/automation_internal/automation_internal_api.cc (right): https://codereview.chromium.org/2803823002/diff/1/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc#newcode464 chrome/browser/extensions/api/automation_internal/automation_internal_api.cc:464: content::BrowserAccessibilityState::GetInstance()->EnableAccessibility(); On 2017/04/06 16:45:43, David Tseng wrote: > I ...
3 years, 8 months ago (2017-04-06 19:26:03 UTC) #9
dmazzoni
BTW, your other suggestion was to forward the mouse event to the extension and have ...
3 years, 8 months ago (2017-04-06 19:26:57 UTC) #10
David Tseng
https://codereview.chromium.org/2803823002/diff/1/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc File chrome/browser/extensions/api/automation_internal/automation_internal_api.cc (right): https://codereview.chromium.org/2803823002/diff/1/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc#newcode464 chrome/browser/extensions/api/automation_internal/automation_internal_api.cc:464: content::BrowserAccessibilityState::GetInstance()->EnableAccessibility(); On 2017/04/06 19:26:03, dmazzoni wrote: > On 2017/04/06 ...
3 years, 8 months ago (2017-04-06 20:00:32 UTC) #11
dmazzoni
Yes, the RenderFrameHostImpl sets the window property...but only if accessibility is enabled, when it gets ...
3 years, 8 months ago (2017-04-06 20:16:41 UTC) #12
chromium-reviews
Ok, makes sense. We're not really trying to get the wrapper objects to fire a ...
3 years, 8 months ago (2017-04-06 20:43:35 UTC) #13
dmazzoni
https://codereview.chromium.org/2803823002/diff/1/chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc File chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc (right): https://codereview.chromium.org/2803823002/diff/1/chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc#newcode135 chrome/browser/chromeos/accessibility/select_to_speak_event_handler.cc:135: ax_obj->HandleAccessibleAction(action); On 2017/04/05 23:43:43, David Tseng wrote: > I ...
3 years, 8 months ago (2017-04-07 23:34:09 UTC) #15
David Tseng
I'm fine with keeping it as is for now with a TODO to make it ...
3 years, 8 months ago (2017-04-08 00:06:48 UTC) #16
dmazzoni
Please take a look! I pulled out most of the change into https://codereview.chromium.org/2813083003/ and all ...
3 years, 8 months ago (2017-04-12 19:35:51 UTC) #20
David Tseng
https://codereview.chromium.org/2803823002/diff/40001/ui/views/accessibility/ax_aura_obj_cache.cc File ui/views/accessibility/ax_aura_obj_cache.cc (right): https://codereview.chromium.org/2803823002/diff/40001/ui/views/accessibility/ax_aura_obj_cache.cc#newcode190 ui/views/accessibility/ax_aura_obj_cache.cc:190: void AXAuraObjCache::OnWindowHierarchyChanged( I don't know if this is what ...
3 years, 8 months ago (2017-04-17 15:39:54 UTC) #23
dmazzoni
https://codereview.chromium.org/2803823002/diff/40001/ui/views/accessibility/ax_aura_obj_cache.cc File ui/views/accessibility/ax_aura_obj_cache.cc (right): https://codereview.chromium.org/2803823002/diff/40001/ui/views/accessibility/ax_aura_obj_cache.cc#newcode190 ui/views/accessibility/ax_aura_obj_cache.cc:190: void AXAuraObjCache::OnWindowHierarchyChanged( On 2017/04/17 15:39:54, David Tseng wrote: > ...
3 years, 8 months ago (2017-04-19 18:07:34 UTC) #24
David Tseng
lgtm https://codereview.chromium.org/2803823002/diff/40001/ui/views/accessibility/ax_aura_obj_cache.cc File ui/views/accessibility/ax_aura_obj_cache.cc (right): https://codereview.chromium.org/2803823002/diff/40001/ui/views/accessibility/ax_aura_obj_cache.cc#newcode190 ui/views/accessibility/ax_aura_obj_cache.cc:190: void AXAuraObjCache::OnWindowHierarchyChanged( On 2017/04/19 18:07:34, dmazzoni wrote: > ...
3 years, 8 months ago (2017-04-19 19:21:31 UTC) #25
dmazzoni
https://codereview.chromium.org/2803823002/diff/40001/ui/views/accessibility/ax_aura_obj_cache.cc File ui/views/accessibility/ax_aura_obj_cache.cc (right): https://codereview.chromium.org/2803823002/diff/40001/ui/views/accessibility/ax_aura_obj_cache.cc#newcode190 ui/views/accessibility/ax_aura_obj_cache.cc:190: void AXAuraObjCache::OnWindowHierarchyChanged( On 2017/04/19 19:21:31, David Tseng wrote: > ...
3 years, 8 months ago (2017-04-19 21:37:03 UTC) #27
dmazzoni
+jam for content/browser/ (follow-up to https://codereview.chromium.org/2742533003/)
3 years, 8 months ago (2017-04-19 21:41:37 UTC) #30
jam
lgtm
3 years, 8 months ago (2017-04-20 00:17:52 UTC) #33
dmazzoni
David, in order to get all tests to pass I ended up needing to fix ...
3 years, 8 months ago (2017-04-26 02:35:00 UTC) #49
David Tseng
https://codereview.chromium.org/2803823002/diff/160001/ui/views/accessibility/ax_window_obj_wrapper.cc File ui/views/accessibility/ax_window_obj_wrapper.cc (right): https://codereview.chromium.org/2803823002/diff/160001/ui/views/accessibility/ax_window_obj_wrapper.cc#newcode68 ui/views/accessibility/ax_window_obj_wrapper.cc:68: if (!window_->GetToplevelWindow() || What about this first case? Do ...
3 years, 7 months ago (2017-04-27 23:03:12 UTC) #50
dmazzoni
https://codereview.chromium.org/2803823002/diff/160001/ui/views/accessibility/ax_window_obj_wrapper.cc File ui/views/accessibility/ax_window_obj_wrapper.cc (right): https://codereview.chromium.org/2803823002/diff/160001/ui/views/accessibility/ax_window_obj_wrapper.cc#newcode68 ui/views/accessibility/ax_window_obj_wrapper.cc:68: if (!window_->GetToplevelWindow() || On 2017/04/27 23:03:12, David Tseng wrote: ...
3 years, 7 months ago (2017-04-27 23:20:15 UTC) #51
David Tseng
lgtm
3 years, 7 months ago (2017-04-28 22:21:04 UTC) #52
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2803823002/180001
3 years, 7 months ago (2017-04-28 22:22:39 UTC) #55
commit-bot: I haz the power
3 years, 7 months ago (2017-04-28 23:47:13 UTC) #58
Message was sent while issue was closed.
Committed patchset #10 (id:180001) as
https://chromium.googlesource.com/chromium/src/+/621114575ac090c0137ac4c9c6eb...

Powered by Google App Engine
This is Rietveld 408576698