Bug 220626 - AX: increment/decrement synthetic arrow events don't work in ARIA slider examples
Summary: AX: increment/decrement synthetic arrow events don't work in ARIA slider exam...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P2 Normal
Assignee: chris fleizach
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-01-14 11:45 PST by James Craig
Modified: 2021-01-15 14:54 PST (History)
9 users (show)

See Also:


Attachments
patch (5.49 KB, patch)
2021-01-15 12:37 PST, chris fleizach
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description James Craig 2021-01-14 11:45:47 PST
Synthetic arrow key events seem to have shipped in bug 213744, but they aren't working on the ARIA slider examples in https://www.w3.org/TR/wai-aria-practices/examples/slider/slider-1.html.
Comment 1 James Craig 2021-01-14 19:09:35 PST
WebKit increment/decrement is sending event.key but not the legacy event.keyCode. The AX synthesized key events should be identical to the standard key events.
Comment 2 Radar WebKit Bug Importer 2021-01-14 19:09:43 PST
<rdar://problem/73228924>
Comment 3 James Craig 2021-01-14 19:14:48 PST
FYI this table is listed as optional, but is not really optional for the AX work until WebKit unships those event properties from the non-AX events:

https://github.com/WICG/aom/blob/gh-pages/explainer.md#deprecated-keyboardevent-object-properties-optional
Comment 4 chris fleizach 2021-01-15 12:37:33 PST
Created attachment 417720 [details]
patch
Comment 5 James Craig 2021-01-15 14:24:27 PST
The patch should include all the other key event properties listed in that table for two reasons.

1. Someone else is going to write an example that works with the keyboard but doesn't work with VO because it uses another one of the legacy properties. `event.which` for example. It's 0 with this patch, but should be 40 for ArrowDown...

2. Any difference in the event object could be used to differentiate an AT user from a keyboard used. For example: event.code, event.keyLocation and event.metaKey are also different between the AT and non-AT paths using this patch, but should not be.
Comment 6 chris fleizach 2021-01-15 14:31:11 PST
(In reply to James Craig from comment #5)
> The patch should include all the other key event properties listed in that
> table for two reasons.
> 
> 1. Someone else is going to write an example that works with the keyboard
> but doesn't work with VO because it uses another one of the legacy
> properties. `event.which` for example. It's 0 with this patch, but should be
> 40 for ArrowDown...
> 
> 2. Any difference in the event object could be used to differentiate an AT
> user from a keyboard used. For example: event.code, event.keyLocation and
> event.metaKey are also different between the AT and non-AT paths using this
> patch, but should not be.

Can you give us a new bug for these tasks. I'll do a deeper dive on other needed properties
Comment 7 James Craig 2021-01-15 14:35:26 PST
OK
Comment 8 James Craig 2021-01-15 14:36:57 PST
At a minimum, you may want to consider event.which in this patch... And event.keyIdentifier is using a different case, too: up vs Up.
Comment 9 chris fleizach 2021-01-15 14:38:42 PST
(In reply to James Craig from comment #8)
> At a minimum, you may want to consider event.which in this patch... And
> event.keyIdentifier is using a different case, too: up vs Up.

better to handle all these things together in a specific patch
Comment 10 James Craig 2021-01-15 14:43:13 PST
bug 220675
Comment 11 EWS 2021-01-15 14:54:11 PST
Committed r271536: <https://trac.webkit.org/changeset/271536>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417720 [details].