WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
120322
AX: Cancel button in search field not accessible.
https://bugs.webkit.org/show_bug.cgi?id=120322
Summary
AX: Cancel button in search field not accessible.
Samuel White
Reported
2013-08-26 12:10:01 PDT
The cancel button that becomes visible when an input element of type 'search' has text in it is not accessible. <
rdar://problem/14700018
>
Attachments
Preliminary patch for feedback.
(14.84 KB, patch)
2013-08-26 16:50 PDT
,
Samuel White
eflews.bot
: commit-queue-
Details
Formatted Diff
Diff
Updated patch.
(23.12 KB, patch)
2013-08-27 13:54 PDT
,
Samuel White
eflews.bot
: commit-queue-
Details
Formatted Diff
Diff
Fixing localization.
(25.11 KB, patch)
2013-08-27 15:50 PDT
,
Samuel White
buildbot
: commit-queue-
Details
Formatted Diff
Diff
Updated patch with build fix.
(25.26 KB, patch)
2013-08-28 11:06 PDT
,
Samuel White
no flags
Details
Formatted Diff
Diff
Show Obsolete
(3)
View All
Add attachment
proposed patch, testcase, etc.
Samuel White
Comment 1
2013-08-26 16:50:54 PDT
Created
attachment 209692
[details]
Preliminary patch for feedback. No review needed, just looking for feedback. Thanks. This button is rather hard to uniquely identify. For this patch I've used the shadowPseudoId which seems a bit fragile. Would adding isSearchFieldCancelButton() or something similar to Element be acceptable? I see other methods with this purpose: isFormControlElement isSpinButtonElement isTextFormControl I see that the way accessible text is derived is changing at some point (see the comment "Accessibility Text - (To be deprecated)" in AccessibilityObject.h). I've structured my implementation to satisfy all platforms (I believe) with the thought that the OVERRIDE macro will make sure my implementation is updated when this move finished. Thoughts?
Babak Shafiei
Comment 2
2013-08-26 16:52:21 PDT
<
rdar://problem/14700018
>
chris fleizach
Comment 3
2013-08-26 17:10:49 PDT
Comment on
attachment 209692
[details]
Preliminary patch for feedback. View in context:
https://bugs.webkit.org/attachment.cgi?id=209692&action=review
where's the change log? also you need a layout test i've submitted to EWS so we'll find out which platforms break by not including the files in their make files
> Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp:52 > + if (!description.isEmpty())
since you know the description won't be empty (since it's a localized string) you could make this one line of code
> Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp:58 > + if (!m_renderer || !m_renderer->node() || !m_renderer->node()->isElementNode())
You should be able to ask for Node* node = this->node() directly and AXRenderObject should return m_renderer->node() for you if you cache that value you'll also save a few calls
> Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp:63 > + element->accessKeyAction(true);
you should probably add a comment explaining why you need to call setHovered
> Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp:69 > + return ButtonRole;
this can be moved into the header
> Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp:74 > + if (!m_renderer || !m_renderer->style() || m_renderer->style()->visibility() != VISIBLE)
is this the default accessibilityIsIgnored value? is there a baseAccessibilityIsIgnored() that you can call?
chris fleizach
Comment 4
2013-08-26 17:11:33 PDT
Comment on
attachment 209692
[details]
Preliminary patch for feedback. otherwise looking good
EFL EWS Bot
Comment 5
2013-08-26 17:27:21 PDT
Comment on
attachment 209692
[details]
Preliminary patch for feedback.
Attachment 209692
[details]
did not pass efl-wk2-ews (efl-wk2): Output:
http://webkit-queues.appspot.com/results/1586079
EFL EWS Bot
Comment 6
2013-08-26 17:33:26 PDT
Comment on
attachment 209692
[details]
Preliminary patch for feedback.
Attachment 209692
[details]
did not pass efl-ews (efl): Output:
http://webkit-queues.appspot.com/results/1591089
kov's GTK+ EWS bot
Comment 7
2013-08-26 17:41:17 PDT
Comment on
attachment 209692
[details]
Preliminary patch for feedback.
Attachment 209692
[details]
did not pass gtk-ews (gtk): Output:
http://webkit-queues.appspot.com/results/1584101
Build Bot
Comment 8
2013-08-27 03:15:35 PDT
Comment on
attachment 209692
[details]
Preliminary patch for feedback.
Attachment 209692
[details]
did not pass win-ews (win): Output:
http://webkit-queues.appspot.com/results/1585223
Samuel White
Comment 9
2013-08-27 13:54:06 PDT
Created
attachment 209796
[details]
Updated patch. Thanks for the feedback Chris. I've updated the patch as requested with one exception about visibility. It looks to me like accessibilityIsIgnored calls into computeAccessibilityIsIgnored. So this seems like the correct place to make visibility additions.
chris fleizach
Comment 10
2013-08-27 14:33:42 PDT
Comment on
attachment 209796
[details]
Updated patch. View in context:
https://bugs.webkit.org/attachment.cgi?id=209796&action=review
> Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp:69 > + if (!m_renderer || !m_renderer->style() || m_renderer->style()->visibility() != VISIBLE)
i think this (visibility check) is already handled by accessibilityIsIgnoredByDefault(), which calls defaultObjectInclusion(), which has the appropriate check in AXRenderObject
> LayoutTests/platform/mac/accessibility/search-field-cancel-button.html:21 > + accessibilityController.accessibleElementById("search").childAtIndex(1).press();
you should also output the role and role description for this object as part of your test
> LayoutTests/platform/mac/accessibility/search-field-cancel-button.html:25 > + }
i think you're missing a succesfullyParsed = true; call at the bottom. that should be present in other tests
EFL EWS Bot
Comment 11
2013-08-27 14:47:59 PDT
Comment on
attachment 209796
[details]
Updated patch.
Attachment 209796
[details]
did not pass efl-wk2-ews (efl-wk2): Output:
http://webkit-queues.appspot.com/results/1628042
EFL EWS Bot
Comment 12
2013-08-27 14:55:55 PDT
Comment on
attachment 209796
[details]
Updated patch.
Attachment 209796
[details]
did not pass efl-ews (efl): Output:
http://webkit-queues.appspot.com/results/1619053
Samuel White
Comment 13
2013-08-27 15:50:34 PDT
Created
attachment 209815
[details]
Fixing localization.
Samuel White
Comment 14
2013-08-27 15:51:48 PDT
(In reply to
comment #10
)
> (From update of
attachment 209796
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=209796&action=review
> > > Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp:69 > > + if (!m_renderer || !m_renderer->style() || m_renderer->style()->visibility() != VISIBLE) > > i think this (visibility check) is already handled by > accessibilityIsIgnoredByDefault(), which calls defaultObjectInclusion(), which has the appropriate check in AXRenderObject
Good catch, thanks.
> > > LayoutTests/platform/mac/accessibility/search-field-cancel-button.html:21 > > + accessibilityController.accessibleElementById("search").childAtIndex(1).press(); > > you should also output the role and role description for this object as part of your test >
Added.
> > LayoutTests/platform/mac/accessibility/search-field-cancel-button.html:25 > > + } > > i think you're missing a succesfullyParsed = true; call at the bottom. that should be present in other tests
This is handled in the post script that runs.
chris fleizach
Comment 15
2013-08-27 15:53:04 PDT
Comment on
attachment 209815
[details]
Fixing localization. View in context:
https://bugs.webkit.org/attachment.cgi?id=209815&action=review
> LayoutTests/platform/mac/accessibility/search-field-cancel-button-expected.txt:8 > +PASS button.roleDescription is 'AXRoleDescription: button'
And i forgot to say you should also output the description to ensure that it stays as cancel. pretty much any functionality you add we should test to ensure it doesn't break
Build Bot
Comment 16
2013-08-28 02:58:30 PDT
Comment on
attachment 209815
[details]
Fixing localization.
Attachment 209815
[details]
did not pass win-ews (win): Output:
http://webkit-queues.appspot.com/results/1591528
Samuel White
Comment 17
2013-08-28 11:06:50 PDT
Created
attachment 209905
[details]
Updated patch with build fix. Updated layout test and fixed build issue (hopefully). Will mark for review if everything is green.
WebKit Commit Bot
Comment 18
2013-08-28 15:18:20 PDT
Comment on
attachment 209905
[details]
Updated patch with build fix. Clearing flags on attachment: 209905 Committed
r154778
: <
http://trac.webkit.org/changeset/154778
>
WebKit Commit Bot
Comment 19
2013-08-28 15:18:24 PDT
All reviewed patches have been landed. Closing bug.
David Kilzer (:ddkilzer)
Comment 20
2013-08-29 08:46:32 PDT
(In reply to
comment #18
)
> (From update of
attachment 209905
[details]
) > Clearing flags on attachment: 209905 > > Committed
r154778
: <
http://trac.webkit.org/changeset/154778
>
iOS build fix in
r154812
: <
http://trac.webkit.org/r154812
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug