Bug 145200

Summary: AX: AutoFill button is not accessible with VoiceOver
Product: WebKit Reporter: Daniel Bates <dbates>
Component: AccessibilityAssignee: Daniel Bates <dbates>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: cfleizach, commit-queue, jake.nielsen.webkit, jberlin, sam
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 145220    
Bug Blocks:    
Attachments:
Description Flags
Patch
none
Patch cfleizach: review+

Description Daniel Bates 2015-05-19 20:30:19 PDT
We should make the AutoFill button accessible to people that use VoiceOver just as we do for other buttons, including the search field cancel button.
Comment 1 Daniel Bates 2015-05-19 20:30:48 PDT
<rdar://problem/20507480>
Comment 2 Radar WebKit Bug Importer 2015-05-19 20:30:55 PDT
<rdar://problem/21032401>
Comment 3 Radar WebKit Bug Importer 2015-05-19 20:30:56 PDT
<rdar://problem/21032404>
Comment 4 Daniel Bates 2015-05-19 20:33:28 PDT
(In reply to comment #2)
> <rdar://problem/21032401>

(In reply to comment #3)
> <rdar://problem/21032404>

Disregard these radars.
Comment 5 Daniel Bates 2015-05-19 21:48:41 PDT
Created attachment 253426 [details]
Patch
Comment 6 Daniel Bates 2015-05-19 22:07:47 PDT
I took inspiration from class AccessibilitySearchFieldCancelButton.
Comment 7 chris fleizach 2015-05-19 22:21:53 PDT
Comment on attachment 253426 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=253426&action=review

thanks! looking good

> Source/WebCore/accessibility/AccessibilityAutoFillButton.cpp:55
> +    textOrder.append(AccessibilityText(accessibilityDescription(), AlternativeText));

It might be easier to set the label in the code that creates the object

    m_autoFillButton->setAttribute(aria_labelAttr, "autofill");

then the existing text calculation methods can take over, since this is a AXRenderObject

> Source/WebCore/accessibility/AccessibilityAutoFillButton.cpp:60
> +    return accessibilityIsIgnoredByDefault();

this override might not be necessary. maybe you tested this and it was because something the AXRenderObject method return YES to ignore, but there's a chance that this would just work by default

> Source/WebCore/accessibility/AccessibilityAutoFillButton.h:39
> +    AccessibilityRole roleValue() const override { return ButtonRole; }

these three methods can be private
Comment 8 Daniel Bates 2015-05-20 10:22:08 PDT
Created attachment 253444 [details]
Patch

Updated patched based on Chris Fleizach's feedback.
Comment 9 Daniel Bates 2015-05-20 10:58:47 PDT
Committed r184645: <http://trac.webkit.org/changeset/184645>
Comment 10 WebKit Commit Bot 2015-05-20 13:07:45 PDT
Re-opened since this is blocked by bug 145220
Comment 11 Jake Nielsen 2015-05-20 13:10:39 PDT
As Alexey noticed, this broke the build.
Comment 12 Alexey Proskuryakov 2015-05-20 13:16:42 PDT
Dan, looks like you fixed the reason why EWS was red, but the landed patch broke the build in a different way: <https://webkit-queues.appspot.com/results/4565750211674112>.

Additionally, the new test fails on Windows: https://build.webkit.org/results/Apple%20Win%207%20Release%20(Tests)/r184646%20(51955)/accessibility/input-auto-fill-button-diff.txt
Comment 13 Daniel Bates 2015-05-20 14:38:10 PDT
Committed r184660: <http://trac.webkit.org/changeset/184660>
Comment 14 Daniel Bates 2015-06-26 15:20:46 PDT
Rolled out <http://trac.webkit.org/changeset/184660> in <http://trac.webkit.org/changeset/186012> because it caused a regression.
Comment 15 Daniel Bates 2015-06-26 15:21:06 PDT
Re-opening bug.
Comment 16 Daniel Bates 2016-08-19 15:09:34 PDT

*** This bug has been marked as a duplicate of bug 155567 ***