WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 213875
AX: Implement user action spec for Escape action
https://bugs.webkit.org/show_bug.cgi?id=213875
Summary
AX: Implement user action spec for Escape action
chris fleizach
Reported
2020-07-02 00:43:27 PDT
User action events from Assistive Technology To preserve the privacy of assistive technology users, events from assistive technology will typically cause a synthesised DOM event to be triggered. The events are determined by platform conventions and partially documented in the ARIA Authoring Practices Guide (APG). dismiss or escape all elements Escape KeyboardEvent
https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology
Attachments
Patch
(11.18 KB, patch)
2020-07-02 00:46 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
patch
(14.38 KB, patch)
2020-07-02 01:15 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
patch
(23.80 KB, patch)
2020-07-02 09:37 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
patch
(23.79 KB, patch)
2020-07-02 13:28 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
patch
(23.93 KB, patch)
2020-07-02 15:07 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
patch
(24.48 KB, patch)
2020-07-02 23:51 PDT
,
chris fleizach
darin
: review+
Details
Formatted Diff
Diff
patch
(24.26 KB, patch)
2020-07-06 13:04 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
patch
(23.70 KB, patch)
2020-07-06 13:05 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
patch
(23.69 KB, patch)
2020-07-06 13:23 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
Patch
(314 bytes, patch)
2020-07-06 14:45 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
patch
(23.61 KB, patch)
2020-07-06 14:56 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
Show Obsolete
(10)
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2020-07-02 00:43:35 PDT
<
rdar://problem/65022980
>
chris fleizach
Comment 2
2020-07-02 00:46:56 PDT
Created
attachment 403350
[details]
Patch
chris fleizach
Comment 3
2020-07-02 01:15:54 PDT
Created
attachment 403352
[details]
patch
chris fleizach
Comment 4
2020-07-02 09:37:53 PDT
Created
attachment 403373
[details]
patch
chris fleizach
Comment 5
2020-07-02 13:28:10 PDT
Created
attachment 403393
[details]
patch
chris fleizach
Comment 6
2020-07-02 15:07:14 PDT
Created
attachment 403402
[details]
patch
chris fleizach
Comment 7
2020-07-02 23:51:13 PDT
Created
attachment 403442
[details]
patch
Darin Adler
Comment 8
2020-07-05 13:33:15 PDT
Comment on
attachment 403442
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=403442&action=review
> Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1100 > + // In case the keyboard event causes this element to be removed. > + Ref<AccessibilityObject> protectedThis(*this);
This should be moved int dispatchSimulatedKeyboardUpDownEvent; that’s where the protection is needed, not here.
> Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1110 > +bool AccessibilityNodeObject::dispatchSimulatedKeyboardUpDownEvent(KeyboardEvent::Init& keyInit)
Should take a const&
> Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1132 > Ref<AccessibilityObject> protectedThis(*this);
Can move this into dispatchSimulatedKeyboardUpDownEvent and remove it here.
> Source/WebCore/accessibility/AccessibilityNodeObject.h:32 > +#include "KeyboardEvent.h"
This dependency is really unfortunate, but I suppose there’s no way to forward declare something from inside a base class?
> Source/WebCore/accessibility/AccessibilityNodeObject.h:195 > + bool performEscape() override;
final instead of override
> Source/WebCore/accessibility/AccessibilityNodeObject.h:196 > + bool dispatchSimulatedKeyboardUpDownEvent(KeyboardEvent::Init&);
Argument should be const&, not non-const&.
> Source/WebCore/accessibility/AccessibilityObject.h:481 > + bool performEscape() override { return false; }
final instead of override
> Source/WebCore/accessibility/AccessibilityObjectInterface.h:910 > + virtual bool performEscape() = 0;
Seems like more of this should be named performDismissAction, and not use the word "escape".
chris fleizach
Comment 9
2020-07-06 12:34:41 PDT
(In reply to Darin Adler from
comment #8
)
> Comment on
attachment 403442
[details]
> patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=403442&action=review
> > > Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1100 > > + // In case the keyboard event causes this element to be removed. > > + Ref<AccessibilityObject> protectedThis(*this); > > This should be moved int dispatchSimulatedKeyboardUpDownEvent; that’s where > the protection is needed, not here. > > > Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1110 > > +bool AccessibilityNodeObject::dispatchSimulatedKeyboardUpDownEvent(KeyboardEvent::Init& keyInit) > > Should take a const& > > > Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1132 > > Ref<AccessibilityObject> protectedThis(*this); > > Can move this into dispatchSimulatedKeyboardUpDownEvent and remove it here. > > > Source/WebCore/accessibility/AccessibilityNodeObject.h:32 > > +#include "KeyboardEvent.h"
I think I can make this a static function inside the .cpp file so it doesn't have to be in the header
> > This dependency is really unfortunate, but I suppose there’s no way to > forward declare something from inside a base class? > > > Source/WebCore/accessibility/AccessibilityNodeObject.h:195 > > + bool performEscape() override; > > final instead of override > > > Source/WebCore/accessibility/AccessibilityNodeObject.h:196 > > + bool dispatchSimulatedKeyboardUpDownEvent(KeyboardEvent::Init&); > > Argument should be const&, not non-const&. > > > Source/WebCore/accessibility/AccessibilityObject.h:481 > > + bool performEscape() override { return false; } > > final instead of override > > > Source/WebCore/accessibility/AccessibilityObjectInterface.h:910 > > + virtual bool performEscape() = 0; > > Seems like more of this should be named performDismissAction, and not use > the word "escape".
chris fleizach
Comment 10
2020-07-06 13:04:11 PDT
Created
attachment 403609
[details]
patch
chris fleizach
Comment 11
2020-07-06 13:05:07 PDT
Created
attachment 403610
[details]
patch
Darin Adler
Comment 12
2020-07-06 13:19:36 PDT
Comment on
attachment 403610
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=403610&action=review
> Source/WebCore/accessibility/AccessibilityObjectInterface.h:910 > + virtual bool performDismissAction() { return false; };
No need for the trailing semicolon here.
chris fleizach
Comment 13
2020-07-06 13:23:01 PDT
Created
attachment 403615
[details]
patch thanks!
chris fleizach
Comment 14
2020-07-06 14:45:51 PDT
Created
attachment 403623
[details]
Patch
chris fleizach
Comment 15
2020-07-06 14:56:55 PDT
Created
attachment 403625
[details]
patch
EWS
Comment 16
2020-07-06 17:09:21 PDT
Committed
r264000
: <
https://trac.webkit.org/changeset/264000
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 403625
[details]
.
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