New issue
Advanced search Search tips

Issue 848427 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 10
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug
Team-Accessibility



Sign in to add a comment

[JAWS] Down arrow in blank textfield can both open autofill and move to next form control

Project Member Reported by aleventhal@chromium.org, May 31 2018

Issue description

Steps:
1. Load data:text/html,<form><input type="text" name="zzz"><input type="submit"></form>
2. Submit some data
3. Run JAWS and reload the page
4. Tab to the field
5. Press down arrow

Screen reader focus moves to the next button, and the browser opens the autofill popup. Only the autofill popup should be shown.

Remedy is to decorate the textfield as having a popup before it is visible.
 
Cc: ma...@chromium.org rogerm@chromium.org se...@chromium.org
Adding some people who know more about that code.

Essentially, we will need to expose more information about the current state of a field such as kNoSuggestions, kAutofillHidden (we know there are suggestions for the field, but the popup is not visible), kAutofillVisible, kSuggestionSelected.

What would be the best place to issue an event for kAutofillHidden? It should be something like the user clicked on a field and we have suggestions to present.

Comment 2 Deleted

Comment 3 Deleted

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 6 2018

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

commit 6299e21a776b312d7b18818783d8cc49f242bbad
Author: Aaron Leventhal <aleventhal@chromium.org>
Date: Wed Jun 06 21:12:36 2018

Prepare for better autofill screen reading experience.

Separate out the different concepts:
- Suggestions are available or not (call ViewAccessibility::OnInputSuggestionsAvailable or
OnInputSuggestionsUnavailable). This is now a static so no view is required in case the menu
for the suggestions has not yet been created.
- Menu is open -- the AX code now just uses the menustart/end event to track this
- Menu item is selected -- the AX code now just uses the selection event on a menuitem when
menus are open

By separating out these concepts, a11y can expose the fake menu item focus only when a menu
item is actually selected, and indicate when a textfield has suggestions available even
if the menu popup is not visible.

Bug:  848427 
Change-Id: I4a75c58402d1dd1e5da0368b59f6c9ba7fc8775c
Reviewed-on: https://chromium-review.googlesource.com/1081022
Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Fabio Tirelo <ftirelo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565037}
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/chrome/browser/ui/views/autofill/autofill_popup_view_views.cc
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/ui/accessibility/platform/ax_platform_node.cc
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/ui/accessibility/platform/ax_platform_node.h
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/ui/accessibility/platform/ax_platform_node_base.cc
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/ui/accessibility/platform/ax_platform_node_base.h
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/ui/accessibility/platform/ax_platform_node_win.cc
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/ui/views/accessibility/native_view_accessibility_base.cc
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/ui/views/accessibility/native_view_accessibility_base.h
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/ui/views/accessibility/view_accessibility.cc
[modify] https://crrev.com/6299e21a776b312d7b18818783d8cc49f242bbad/ui/views/accessibility/view_accessibility.h

@ftirelo, the fix for this bug is to focus the first menu item on the down arrow key press. As long as focus moves, JAWS will not commandier the the keypress and do its own thing with it.
Project Member

Comment 6 by bugdroid1@chromium.org, Jun 7 2018

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

commit c85f01413774180a48386ec10c2ec4ad92d644e2
Author: Fabio Tirelo <ftirelo@chromium.org>
Date: Thu Jun 07 14:10:47 2018

[af] Split the logic to identify if there are suggestions to show

This refactoring will enable code reuse to notify screen readers if
there are suggestions to be shown once focus change to a field. The new
function will be called by AutofillManager::OnFocusOnFormFieldImpl.

Please notice that, even with SingleClick enabled, the dropdown is not
shown by default if the user tabs into a field or on initial focus.

Bug:  848427 
Change-Id: I6435c3d829207dbb46358064c716f84d2497567a
Reviewed-on: https://chromium-review.googlesource.com/1087792
Commit-Queue: Fabio Tirelo <ftirelo@chromium.org>
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565255}
[modify] https://crrev.com/c85f01413774180a48386ec10c2ec4ad92d644e2/components/autofill/core/browser/autofill_manager.cc
[modify] https://crrev.com/c85f01413774180a48386ec10c2ec4ad92d644e2/components/autofill/core/browser/autofill_manager.h

Also, "down arrow focuses first menu item" is a usability improvement. It's odd to have to press down twice to do so as is the case now.
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 12 2018

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

commit 072898414a34ba9fe7ccf784f63aedc4875d17ad
Author: Fabio Tirelo <ftirelo@chromium.org>
Date: Tue Jun 12 19:21:44 2018

[af] Announce suggestion (un)availability on focus change

When focus change to a field, announce to screen readers if there are
autofill suggestions available. When suggestions are not available,
block screen readers from announcing anything.

This is only enabled when screen readers are available, since it's
not useful to spam users otherwise. Follow-up CLs will add telemetry
collection to allow evaluate performance impact.

Bug:  848427 
Change-Id: Ic4955a9f1b25a34f0d4f02e7d87ef7cc99e44998
Reviewed-on: https://chromium-review.googlesource.com/1090792
Reviewed-by: Roger McFarlane <rogerm@chromium.org>
Reviewed-by: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Commit-Queue: Fabio Tirelo <ftirelo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566527}
[modify] https://crrev.com/072898414a34ba9fe7ccf784f63aedc4875d17ad/components/autofill/core/browser/BUILD.gn
[modify] https://crrev.com/072898414a34ba9fe7ccf784f63aedc4875d17ad/components/autofill/core/browser/DEPS
[modify] https://crrev.com/072898414a34ba9fe7ccf784f63aedc4875d17ad/components/autofill/core/browser/autofill_external_delegate.cc
[modify] https://crrev.com/072898414a34ba9fe7ccf784f63aedc4875d17ad/components/autofill/core/browser/autofill_external_delegate.h
[modify] https://crrev.com/072898414a34ba9fe7ccf784f63aedc4875d17ad/components/autofill/core/browser/autofill_manager.cc
[modify] https://crrev.com/072898414a34ba9fe7ccf784f63aedc4875d17ad/components/autofill/core/browser/autofill_manager.h
[modify] https://crrev.com/072898414a34ba9fe7ccf784f63aedc4875d17ad/components/autofill/core/browser/autofill_manager_unittest.cc
[modify] https://crrev.com/072898414a34ba9fe7ccf784f63aedc4875d17ad/components/autofill/core/browser/test_autofill_external_delegate.cc
[modify] https://crrev.com/072898414a34ba9fe7ccf784f63aedc4875d17ad/components/autofill/core/browser/test_autofill_external_delegate.h

Cc: aleventhal@chromium.org
Summary: [JAWS] Down arrow in blank textfield can both open autofill and move to next form control (was: [JAWS] Down arrow in blank textfield can both open autofill and move to next item)
Project Member

Comment 11 by bugdroid1@chromium.org, Jul 5

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

commit 61c69074b375b909d79da03379791060084b2771
Author: Fabio Tirelo <ftirelo@chromium.org>
Date: Thu Jul 05 14:29:06 2018

[AF] Use EventWaiter in Autofill interactive UI tests

This CL replaces a custom event waiter implemented in autofill
interactive UI tests with DialogEventWaiter (renamed here to
EventWaiter).

This will also makes it easier to enable observing multiple events
on user actions that will be required to enable autoselect of the
first suggestion on arrow down (see linked bug for details).

Bug:  848427 

Change-Id: I39958632ac7ecc16cd5c535077b7ace21db70a0c
Reviewed-on: https://chromium-review.googlesource.com/1125343
Commit-Queue: Fabio Tirelo <ftirelo@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572786}
[modify] https://crrev.com/61c69074b375b909d79da03379791060084b2771/chrome/browser/autofill/autofill_interactive_uitest.cc
[modify] https://crrev.com/61c69074b375b909d79da03379791060084b2771/chrome/browser/autofill/autofill_uitest.cc
[modify] https://crrev.com/61c69074b375b909d79da03379791060084b2771/chrome/browser/autofill/autofill_uitest.h
[delete] https://crrev.com/d6e546f969e8dcdbef052151ea50a01f2f79fdc6/chrome/browser/ui/views/autofill/dialog_event_waiter.h
[modify] https://crrev.com/61c69074b375b909d79da03379791060084b2771/chrome/browser/ui/views/autofill/save_card_bubble_views_browsertest_base.cc
[modify] https://crrev.com/61c69074b375b909d79da03379791060084b2771/chrome/browser/ui/views/autofill/save_card_bubble_views_browsertest_base.h
[modify] https://crrev.com/61c69074b375b909d79da03379791060084b2771/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
[modify] https://crrev.com/61c69074b375b909d79da03379791060084b2771/chrome/browser/ui/views/payments/payment_request_browsertest_base.h
[modify] https://crrev.com/61c69074b375b909d79da03379791060084b2771/chrome/test/BUILD.gn
[modify] https://crrev.com/61c69074b375b909d79da03379791060084b2771/components/autofill/core/browser/BUILD.gn
[add] https://crrev.com/61c69074b375b909d79da03379791060084b2771/components/autofill/core/browser/test_event_waiter.h

Project Member

Comment 12 by bugdroid1@chromium.org, Jul 6

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

commit 83662a20621fb84c00ee690b970bca3b574204a3
Author: Fabio Tirelo <ftirelo@chromium.org>
Date: Fri Jul 06 15:03:48 2018

[AF] Add autoselect suggestion bit when popup is shown on ARROW_DOWN

This is the first of a series of CLs to fix the interaction between
the autofill dropdown and Windows screenreader Jaws. When a dropdown
is shown using ARROW_DOWN, Jaws expects the first suggestion to be
announced; when that doesn't happen, it considers there are no items
to announce, so it captures ARROW_DOWN/ARROW_UP events to navigate
to the next/previous field on the page.

The fix consists of ensuring a suggestion is announced when the
dropdown is shown via ARROW_DOWN. There is no need to change behavior
when the dropdown is shown due on user clicks.

This CL propagates a bit from the rendered to the dropdown controller
indicating when the first suggestion must be selected on ARROW_DOWN
events. Please notice the bit is not set as true yet, but I'd like to
split this CL into smaller ones for easier review. This one touches
many files because I needed to propagate one bit from the renderer
to the autofill popup controller via several different paths.

The new behavior will be enabled on follow up CLs.

Bug:  848427 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Ief5d5a47128b30fb1427231456f11659b865419c
Reviewed-on: https://chromium-review.googlesource.com/1124939
Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org>
Reviewed-by: Hiroshi Ichikawa <ichikawa@chromium.org>
Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org>
Reviewed-by: Moe Ahmadi <mahmadi@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Mathieu Perreault <mathp@chromium.org>
Commit-Queue: Fabio Tirelo <ftirelo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572972}
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/android_webview/browser/aw_autofill_client.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/android_webview/browser/aw_autofill_client.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/browser/autofill/autofill_provider_browsertest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/browser/autofill/content_autofill_driver_browsertest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/browser/password_manager/password_manager_browsertest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/browser/site_per_process_interactive_browsertest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/browser/ui/autofill/autofill_popup_controller_impl.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/browser/ui/autofill/autofill_popup_controller_impl_mac.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/browser/ui/autofill/autofill_popup_controller_impl_mac.mm
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/browser/ui/autofill/autofill_popup_controller_unittest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/browser/ui/autofill/chrome_autofill_client.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/browser/ui/autofill/chrome_autofill_client.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/renderer/autofill/autofill_renderer_browsertest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/chrome/renderer/autofill/form_autocomplete_browsertest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/android/autofill_provider_android.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/android/autofill_provider_android.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/content/browser/content_autofill_driver.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/content/browser/content_autofill_driver.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/content/common/autofill_driver.mojom
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/content/renderer/autofill_agent.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/content/renderer/autofill_agent.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autocomplete_history_manager.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autocomplete_history_manager_unittest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_client.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_external_delegate.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_external_delegate.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_external_delegate_unittest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_handler.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_handler.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_handler_proxy.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_handler_proxy.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_manager.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_manager.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_manager_unittest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_metrics_unittest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_provider.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/autofill_test_utils.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/test_autofill_client.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/test_autofill_client.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/test_autofill_external_delegate.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/test_autofill_external_delegate.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/test_autofill_provider.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/browser/test_autofill_provider.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/common/autofill_util.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/core/common/autofill_util.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/autofill/ios/browser/autofill_agent.mm
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/password_manager/core/browser/password_autofill_manager.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/components/password_manager/core/browser/password_autofill_manager_unittest.cc
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/ios/chrome/browser/ui/autofill/chrome_autofill_client_ios.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/ios/chrome/browser/ui/autofill/chrome_autofill_client_ios.mm
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/ios/web_view/internal/autofill/web_view_autofill_client_ios.h
[modify] https://crrev.com/83662a20621fb84c00ee690b970bca3b574204a3/ios/web_view/internal/autofill/web_view_autofill_client_ios.mm

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 10

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

commit 45b8c440db80b13fc37212799377b1a35096c3f3
Author: Fabio Tirelo <ftirelo@chromium.org>
Date: Tue Jul 10 13:03:24 2018

[AF] Autoselect first suggestion when popup is shown on ARROW_DOWN

This fixes the autofilll dropdown interaction with Windows screenreader
Jaws, by ensuring a suggestion is announced when the dropdown is shown.
When no item is announced on first show, then the screenreader thinks
there is nothing to be read there, and captures ARROW_DOWN/ARROW_UP
events to navigate to the next/previous field on the page.

To achieve that:
 - send a bit from the renderer set as true when the dropdown is shown
   to an arrow down/arrow up command;
 - if the bit is on when AutofillPopupControllerImpl::Show() is invoked
   for the view, then mark the first row as selected.

Please notice that auto-selection only happens when the dropdown is
shown on arrow down and the behavior on mouse clicks is not changed.

Interaction with the Password Manager dropdown will be fixed in a
follow-up CL.

Bug:  848427 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I41755ca6392352368088bd722c432741958e284a
Reviewed-on: https://chromium-review.googlesource.com/1108488
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Reviewed-by: Mathieu Perreault <mathp@chromium.org>
Commit-Queue: Fabio Tirelo <ftirelo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573699}
[modify] https://crrev.com/45b8c440db80b13fc37212799377b1a35096c3f3/chrome/browser/autofill/autofill_interactive_uitest.cc
[modify] https://crrev.com/45b8c440db80b13fc37212799377b1a35096c3f3/chrome/browser/autofill/autofill_uitest.cc
[modify] https://crrev.com/45b8c440db80b13fc37212799377b1a35096c3f3/chrome/browser/autofill/autofill_uitest.h
[modify] https://crrev.com/45b8c440db80b13fc37212799377b1a35096c3f3/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc
[modify] https://crrev.com/45b8c440db80b13fc37212799377b1a35096c3f3/components/autofill/core/common/autofill_util.cc

Status: Fixed (was: Started)

Sign in to add a comment