Bug 220675 - AX: AT-synthesized key events for common user actions (increment/decrement) are detectably different in many ways, potentially causing both web app breakage and AT identification
Summary: AX: AT-synthesized key events for common user actions (increment/decrement) a...
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-15 14:42 PST by James Craig
Modified: 2021-01-22 13:55 PST (History)
13 users (show)

See Also:


Attachments
patch (16.43 KB, patch)
2021-01-19 15:57 PST, chris fleizach
ews-feeder: commit-queue-
Details | Formatted Diff | Diff
patch (18.96 KB, patch)
2021-01-20 12:13 PST, chris fleizach
ews-feeder: commit-queue-
Details | Formatted Diff | Diff
patch (18.96 KB, patch)
2021-01-21 09:26 PST, chris fleizach
no flags Details | Formatted Diff | Diff
patch (19.72 KB, patch)
2021-01-21 10:44 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-15 14:42:37 PST
Follow-on from bug 220626.

AT-synthesized key events for common user actions (increment/decrement) are detectably different in many ways, potentially causing both web app breakage and AT identification

https://github.com/WICG/aom/blob/gh-pages/explainer.md#deprecated-keyboardevent-object-properties-optional

The synthetic events 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... keyIdentifier also uses a different case between the AT and non-AT path: "up" vs "Up"

2. Any difference in the Event object might be used nefariously to differentiate an AT user from a keyboard user. For example: event.code, event.keyLocation and event.metaKey are also different between the AT and non-AT paths, but should not be. There may be more.
Comment 1 Radar WebKit Bug Importer 2021-01-15 14:42:45 PST
<rdar://problem/73263977>
Comment 2 chris fleizach 2021-01-19 15:57:59 PST
Created attachment 417921 [details]
patch
Comment 3 chris fleizach 2021-01-20 12:13:29 PST
Created attachment 417987 [details]
patch
Comment 4 chris fleizach 2021-01-21 09:26:16 PST
Created attachment 418049 [details]
patch
Comment 5 James Craig 2021-01-21 10:38:48 PST
Comment on attachment 418049 [details]
patch

lgtm. thanks.
Comment 6 chris fleizach 2021-01-21 10:44:56 PST
Created attachment 418063 [details]
patch
Comment 7 EWS 2021-01-22 13:55:40 PST
Committed r271760: <https://trac.webkit.org/changeset/271760>

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