-
Notifications
You must be signed in to change notification settings - Fork 12
/
impl-report.txt
356 lines (292 loc) · 15.2 KB
/
impl-report.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
<h1>UI Events KeyboardEvent code Implementation Report</h1>
<pre class="metadata">
Shortname: uievents-code-impl
Level:
Group: webapps
Status: ED
ED: https://w3c.github.io/uievents-code/impl-report.html
Repository: w3c/uievents-code
Editor: Gary Kacmarcik, Google, garykac@google.com
Abstract:
This document reports on implementations of the [[!UIEvents-Code]] specification.
</pre>
<pre class="anchors">
url: http://www.w3.org/TR/uievents-code/#; type: dfn; spec: uievents-code;
text: code attribute value
</pre>
<pre class="include">
path: stylesheet-extra.include
</pre>
<h2 id="introduction">Introduction</h2>
The [[!UIEvents-Code]] specification defines the set of values that are valid for use
in the {{KeyboardEvent/code}} attribute.
This document summarizes the current implementation status of the
{{KeyboardEvent/code}} attribute and its values.
The following versions of each user agents were tested:
* Google Chrome 60.0.3112.113 (Windows 10, OS X 10.12.2, Ubuntu)
* Mozilla Firefox 55.0 (Windows 10, OS X 10.12.2, Ubuntu)
* Microsoft Edge 83.0.478.58 (Windows 10)
* Apple Safari 13.1.1 (OS X 10.14.6)
<h2 id="methodology">Methodology</h2>
Because there is no automated way to test these key press events (expecially
considering that international keyboard are often required), these tests were all
performed manually.
Manual tests were performed by visiting the
<a href="https://domeventviewer.com/key-event-viewer.html">domeeventviewer.com/key-event-viewer.html</a>
test page and examining the "code" column after pressing the key being tested. To test
keys (like "IntlBackslash") that are only present on keyboards for certain locales,
this requires using a keyboard that contains the key being tested.
For purposes of this report, Chrome, Firefox and Safari are considered independent
implementations.
<h2 id="results">Results</h2>
<h3 id="summary">Summary</h3>
Manual tests for all 112 required values of the {{KeyboardEvent/code}} attribute
<b>Pass</b> in at least 2 independent implementations.
The Candidate Recommendation exit criteria are therefore fulfilled.
In addition, the specification describes 60 optional values that may be used to
support multimedia or legacy keyboards. Of these, manual tests confirm that 9 of these
Pass in at least 2 independent implementations.
<h3 id="raw-results">Raw Results</h3>
The following tables present the result of the manual tests.
Entries marked "Pass" generate the expected value when the corresponding key is
pressed.
Entries marked "Fail" generate some value other than the expected value when the
corresponding key is pressed. Wherever possible, a Note is included that provides more
information about the failure.
Entries marked with a "?" have not been tested, typically because devices
with that key were not available (for example, because keyboards with those keys are
not supported on that platform).
Entries marked with "N/A" are not currently testable, typically because the devices
with that key do not generate separate keyboard events. E.g., FnLock.
<h4 id="code-attribute">{{KeyboardEvent/code}} Attribute</h4>
The {{KeyboardEvent/code}} attribute (defined in [[!UIEvents]]) is present in all
browsers tested.
<table id="key-attribute-impl" class="data-table full-width">
<thead><tr>
<th rowspan=2>{{KeyboardEvent}} attribute</th>
<th class="code-impl-data" colspan=3>Windows</th>
<th class="code-impl-data" colspan=3>macOS</th>
<th class="code-impl-data" colspan=2>Linux</th>
<th rowspan=2>Notes</th>
</tr><tr>
<th class="code-impl-data">Chrome</th>
<th class="code-impl-data">Firefox</th>
<th class="code-impl-data">Edge</th>
<th class="code-impl-data">Chrome</th>
<th class="code-impl-data">Firefox</th>
<th class="code-impl-data">Safari</th>
<th class="code-impl-data">Chrome</th>
<th class="code-impl-data">Firefox</th>
</tr></thead>
<tbody>
<tr>
<td>{{KeyboardEvent/code}}</td>
<td class="code-impl-data"><span class="code-impl-yes">Pass</span></td>
<td class="code-impl-data"><span class="code-impl-yes">Pass</span></td>
<td class="code-impl-data"><span class="code-impl-yes">Pass</span></td>
<td class="code-impl-data"><span class="code-impl-yes">Pass</span></td>
<td class="code-impl-data"><span class="code-impl-yes">Pass</span></td>
<td class="code-impl-data"><span class="code-impl-yes">Pass</span></td>
<td class="code-impl-data"><span class="code-impl-yes">Pass</span></td>
<td class="code-impl-data"><span class="code-impl-yes">Pass</span></td>
<td></td>
</tr>
</tbody></table>
<h4 id="required-values">Required {{KeyboardEvent/code}} Values</h4>
This section lists the test results for the basic set of {{KeyboardEvent/code}}
attribute values that a conforming implementation must support.
BEGIN_CODE_IMPL_TABLE standard keys
<!-- Key-name Windows Mac Linux -->
<!-- Chrome Firefox Edge Chrome Firefox Safari Chrome Firefox Notes -->
CODE_IMPL_SECTION Alphanumeric Section - Writing System Keys
CODE_IMPL Backquote Y Y Y Y Y Y Y Y
CODE_IMPL Backslash Y Y Y Y Y Y Y Y
CODE_IMPL BracketLeft Y Y Y Y Y Y Y Y
CODE_IMPL BracketRight Y Y Y Y Y Y Y Y
CODE_IMPL Comma Y Y Y Y Y Y Y Y
CODE_IMPL Digit0 Y Y Y Y Y Y Y Y
CODE_IMPL Digit1 Y Y Y Y Y Y Y Y
CODE_IMPL Digit2 Y Y Y Y Y Y Y Y
CODE_IMPL Digit3 Y Y Y Y Y Y Y Y
CODE_IMPL Digit4 Y Y Y Y Y Y Y Y
CODE_IMPL Digit5 Y Y Y Y Y Y Y Y
CODE_IMPL Digit6 Y Y Y Y Y Y Y Y
CODE_IMPL Digit7 Y Y Y Y Y Y Y Y
CODE_IMPL Digit8 Y Y Y Y Y Y Y Y
CODE_IMPL Digit9 Y Y Y Y Y Y Y Y
CODE_IMPL Equal Y Y Y Y Y Y Y Y
CODE_IMPL IntlBackslash Y Y Y Y Y F Y Y Safari swaps IntlBackslash with Backquote on keyboards that support IntlBackslash
CODE_IMPL IntlRo Y Y Y ? ? ? ? ?
CODE_IMPL IntlYen Y Y Y ? ? ? ? ?
CODE_IMPL KeyA Y Y Y Y Y Y Y Y
CODE_IMPL KeyB Y Y Y Y Y Y Y Y
CODE_IMPL KeyC Y Y Y Y Y Y Y Y
CODE_IMPL KeyD Y Y Y Y Y Y Y Y
CODE_IMPL KeyE Y Y Y Y Y Y Y Y
CODE_IMPL KeyF Y Y Y Y Y Y Y Y
CODE_IMPL KeyG Y Y Y Y Y Y Y Y
CODE_IMPL KeyH Y Y Y Y Y Y Y Y
CODE_IMPL KeyI Y Y Y Y Y Y Y Y
CODE_IMPL KeyJ Y Y Y Y Y Y Y Y
CODE_IMPL KeyK Y Y Y Y Y Y Y Y
CODE_IMPL KeyL Y Y Y Y Y Y Y Y
CODE_IMPL KeyM Y Y Y Y Y Y Y Y
CODE_IMPL KeyN Y Y Y Y Y Y Y Y
CODE_IMPL KeyO Y Y Y Y Y Y Y Y
CODE_IMPL KeyP Y Y Y Y Y Y Y Y
CODE_IMPL KeyQ Y Y Y Y Y Y Y Y
CODE_IMPL KeyR Y Y Y Y Y Y Y Y
CODE_IMPL KeyS Y Y Y Y Y Y Y Y
CODE_IMPL KeyT Y Y Y Y Y Y Y Y
CODE_IMPL KeyU Y Y Y Y Y Y Y Y
CODE_IMPL KeyV Y Y Y Y Y Y Y Y
CODE_IMPL KeyW Y Y Y Y Y Y Y Y
CODE_IMPL KeyX Y Y Y Y Y Y Y Y
CODE_IMPL KeyY Y Y Y Y Y Y Y Y
CODE_IMPL KeyZ Y Y Y Y Y Y Y Y
CODE_IMPL Minus Y Y Y Y Y Y Y Y
CODE_IMPL Period Y Y Y Y Y Y Y Y
CODE_IMPL Quote Y Y Y Y Y Y Y Y
CODE_IMPL Semicolon Y Y Y Y Y Y Y Y
CODE_IMPL Slash Y Y Y Y Y Y Y Y
CODE_IMPL_SECTION Alphanumeric Section - Functional Keys
CODE_IMPL AltLeft Y Y Y Y Y Y Y Y
CODE_IMPL AltRight Y Y Y Y Y Y Y Y
CODE_IMPL Backspace Y Y Y Y Y Y Y Y
CODE_IMPL CapsLock Y Y Y Y Y Y Y Y
CODE_IMPL ContextMenu Y Y Y Y Y F Y Y Safari returns "Unidentified"
CODE_IMPL ControlLeft Y Y Y Y Y Y Y Y
CODE_IMPL ControlRight Y Y Y Y Y Y Y Y
CODE_IMPL Enter Y Y Y Y Y Y Y Y
CODE_IMPL MetaLeft Y F Y Y F Y Y F Firefox returns "OSLeft"
CODE_IMPL MetaRight Y F Y Y F Y Y F Firefox returns "OSRight"
CODE_IMPL ShiftLeft Y Y Y Y Y Y Y Y
CODE_IMPL ShiftRight Y Y Y Y Y Y Y Y
CODE_IMPL Space Y Y Y Y Y Y Y Y
CODE_IMPL Tab Y Y Y Y Y Y Y Y
CODE_IMPL Convert Y Y Y ? ? ? ? ?
CODE_IMPL KanaMode Y Y Y ? ? ? ? ?
CODE_IMPL NonConvert Y Y Y ? ? ? ? ?
CODE_IMPL_SECTION Control Pad Section
CODE_IMPL Delete Y Y Y Y Y Y Y Y
CODE_IMPL End Y Y Y Y Y Y Y Y
CODE_IMPL Home Y Y Y Y Y Y Y Y
CODE_IMPL Insert Y Y Y Y Y F Y Y Safari returns "Help"
CODE_IMPL PageDown Y Y Y Y Y Y Y Y
CODE_IMPL PageUp Y Y Y Y Y Y Y Y
CODE_IMPL_SECTION Arrow Pad Section
CODE_IMPL ArrowDown Y Y Y Y Y Y Y Y
CODE_IMPL ArrowLeft Y Y Y Y Y Y Y Y
CODE_IMPL ArrowRight Y Y Y Y Y Y Y Y
CODE_IMPL ArrowUp Y Y Y Y Y Y Y Y
CODE_IMPL_SECTION Numpad Section
CODE_IMPL NumLock Y ? Y Y Y Y Y Y
CODE_IMPL Numpad0 Y ? Y Y Y Y Y Y
CODE_IMPL Numpad1 Y ? Y Y Y Y Y Y
CODE_IMPL Numpad2 Y ? Y Y Y Y Y Y
CODE_IMPL Numpad3 Y ? Y Y Y Y Y Y
CODE_IMPL Numpad4 Y ? Y Y Y Y Y Y
CODE_IMPL Numpad5 Y ? Y Y Y Y Y Y
CODE_IMPL Numpad6 Y ? Y Y Y Y Y Y
CODE_IMPL Numpad7 Y ? Y Y Y Y Y Y
CODE_IMPL Numpad8 Y ? Y Y Y Y Y Y
CODE_IMPL Numpad9 Y ? Y Y Y Y Y Y
CODE_IMPL NumpadAdd Y ? Y Y Y Y Y Y
CODE_IMPL NumpadDecimal Y ? Y Y Y Y Y Y
CODE_IMPL NumpadDivide Y ? Y Y Y Y Y Y
CODE_IMPL NumpadEnter Y ? Y Y Y Y Y Y
CODE_IMPL NumpadMultiply Y ? Y Y Y Y Y Y
CODE_IMPL NumpadSubtract Y ? Y Y Y Y Y Y
CODE_IMPL_SECTION Function Section
CODE_IMPL Escape Y Y Y Y Y Y Y Y
CODE_IMPL F1 Y Y Y Y Y Y Y Y
CODE_IMPL F2 Y Y Y Y Y Y Y Y
CODE_IMPL F3 Y Y Y Y Y Y Y Y
CODE_IMPL F4 Y Y Y Y Y Y Y Y
CODE_IMPL F5 Y Y Y Y Y Y Y Y
CODE_IMPL F6 Y Y Y Y Y Y Y Y
CODE_IMPL F7 Y Y Y Y Y Y Y Y
CODE_IMPL F8 Y Y Y Y Y Y Y Y
CODE_IMPL F9 Y Y Y Y Y Y Y Y
CODE_IMPL F10 Y Y Y Y Y Y Y Y
CODE_IMPL F11 Y Y Y Y ? ? Y ? macOS & Ubuntu enter fullscreen; Chrome requires KeyboardLock
CODE_IMPL F12 Y Y Y Y Y Y ? ?
CODE_IMPL PrintScreen Y Y Y F F F ? ? macOS returns "F13"; Ubuntu takes screenshot
CODE_IMPL ScrollLock Y Y Y ? ? ? Y Y macOS decreases brightness
CODE_IMPL Pause Y Y Y ? ? ? Y Y macOS increases brightness
CODE_IMPL_SECTION Special Values
CODE_IMPL Unidentified Y Y Y Y Y Y Y Y
END_CODE_IMPL_TABLE
<h4 id="optional-values">Optional {{KeyboardEvent/code}} Values</h4>
This section lists the test results for the set of {{KeyboardEvent/code}}
attribute values that a conforming implementation may use to support special
keyboards (such as multimedia or legacy keyboards).
BEGIN_CODE_IMPL_TABLE optional keys
<!-- Key-name Windows Mac Linux -->
<!-- Chrome Firefox Edge Chrome Firefox Safari Chrome Firefox Notes -->
CODE_IMPL_SECTION Media Keys
CODE_IMPL BrowserBack Y Y Y F F F Y ? Handled by OS (Chrome requires KeyboardLock)
CODE_IMPL BrowserFavorites Y Y Y F F F Y ? Handled by OS (Chrome requires KeyboardLock)
CODE_IMPL BrowserForward Y Y Y F F F Y ? Handled by OS (Chrome requires KeyboardLock)
CODE_IMPL BrowserHome Y ? Y F F F Y ? Handled by OS (Chrome requires KeyboardLock)
CODE_IMPL BrowserRefresh ? ? F ? ? ? ? ?
CODE_IMPL BrowserSearch F ? F F F F F F
CODE_IMPL BrowserStop ? ? ? ? ? ? ? ?
CODE_IMPL Eject ? ? ? ? ? ? ? ?
CODE_IMPL LaunchApp1 ? ? ? F F F ? ?
CODE_IMPL LaunchApp2 ? ? ? F F F ? ?
CODE_IMPL LaunchMail - - - - - - - - Handled by OS
CODE_IMPL MediaPlayPause - - - - - - - - Handled by OS
CODE_IMPL MediaSelect ? ? ? ? ? ? ? ?
CODE_IMPL MediaStop ? ? ? ? ? ? ? ?
CODE_IMPL MediaTrackNext ? ? ? ? ? ? ? ?
CODE_IMPL MediaTrackPrevious ? ? ? ? ? ? ? ?
CODE_IMPL Power ? ? ? F ? ? ? ?
CODE_IMPL Sleep ? ? ? F ? ? ? ?
CODE_IMPL AudioVolumeDown - - - - - - - - Handled by OS
CODE_IMPL AudioVolumeMute - - - - - - - - Handled by OS
CODE_IMPL AudioVolumeUp - - - - - - - - Handled by OS
CODE_IMPL WakeUp ? ? ? F ? ? ? ?
CODE_IMPL_SECTION Alphanumeric Section - Functional Keys
CODE_IMPL Lang1 ? ? ? F Y F Y Y Safari returns KanaMode
CODE_IMPL Lang2 ? ? ? F Y Y Y Y
CODE_IMPL Lang3 ? ? ? ? ? ? ? ?
CODE_IMPL Lang4 ? ? ? ? ? ? ? ?
CODE_IMPL Lang5 ? ? ? ? ? ? ? ?
CODE_IMPL_SECTION Numpad Section
CODE_IMPL NumpadBackspace F F F F ? ? F F Chrome/Firefox/Safari return "Backspace"
CODE_IMPL NumpadClear ? ? ? ? ? ? ? ?
CODE_IMPL NumpadClearEntry ? ? ? ? ? ? ? ?
CODE_IMPL NumpadComma ? ? ? ? ? ? ? ? Need to test with Brazilian keyboard.
CODE_IMPL NumpadEqual Y ? Y Y ? ? Y Y
CODE_IMPL NumpadHash ? ? ? ? ? ? ? ?
CODE_IMPL NumpadMemoryAdd ? ? ? ? ? ? ? ?
CODE_IMPL NumpadMemoryClear ? ? ? ? ? ? ? ?
CODE_IMPL NumpadMemoryRecall ? ? ? ? ? ? ? ?
CODE_IMPL NumpadMemoryStore ? ? ? ? ? ? ? ?
CODE_IMPL NumpadMemorySubtract ? ? ? ? ? ? ? ?
CODE_IMPL NumpadParenLeft Y ? ? F ? ? Y Y
CODE_IMPL NumpadParenRight Y ? ? F ? ? Y Y
CODE_IMPL NumpadStar ? ? ? ? ? ? ? ?
CODE_IMPL_SECTION Function Section
CODE_IMPL Fn - - - - - - - -
CODE_IMPL FnLock - - - - - - - -
CODE_IMPL_SECTION Legacy, Non-Standard and Special Keys
CODE_IMPL Hyper ? ? ? ? ? ? ? ?
CODE_IMPL Super ? ? ? ? ? ? ? ?
CODE_IMPL Turbo ? ? ? ? ? ? ? ?
CODE_IMPL Abort ? ? ? ? ? ? ? ?
CODE_IMPL Resume ? ? ? ? ? ? ? ?
CODE_IMPL Suspend ? ? ? ? ? ? ? ?
CODE_IMPL Again ? ? ? ? ? ? ? ?
CODE_IMPL Copy ? ? ? ? ? ? ? ?
CODE_IMPL Cut ? ? ? ? ? ? ? ?
CODE_IMPL Find ? ? ? ? ? ? ? ?
CODE_IMPL Open ? ? ? ? ? ? ? ?
CODE_IMPL Paste ? ? ? ? ? ? ? ?
CODE_IMPL Props ? ? ? ? ? ? ? ?
CODE_IMPL Select ? ? ? ? ? ? ? ?
CODE_IMPL Undo ? ? ? ? ? ? ? ?
CODE_IMPL Hiragana ? ? ? ? ? ? ? ?
CODE_IMPL Katakana ? ? ? ? ? ? ? ?
END_CODE_IMPL_TABLE