testaro-issues 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5) hide show
  1. package/dist/index.cjs +1672 -1672
  2. package/dist/index.d.cts +1634 -1634
  3. package/dist/index.d.mts +1634 -1634
  4. package/dist/index.mjs +1672 -1672
  5. package/package.json +1 -1
package/dist/index.d.mts CHANGED
@@ -33,945 +33,1051 @@ interface EngineRules {
33
33
  variable: Record<string, RuleEntry>;
34
34
  }
35
35
  declare const issuesData: {
36
- readonly ignorable: {
37
- readonly summary: 'ignorable';
38
- readonly why: 'No known impact, because the test is unreliable or invalid';
39
- readonly wcag: '';
40
- readonly weight: 1;
36
+ readonly abbreviationNoTitle: {
37
+ readonly summary: 'abbr title missing';
38
+ readonly why: 'User cannot get help understanding an abbreviation';
39
+ readonly wcag: '3.1.4';
40
+ readonly weight: 4;
41
41
  };
42
- readonly duplicateAttribute: {
43
- readonly summary: 'duplicate attribute';
44
- readonly why: 'Browser processes the page improperly';
45
- readonly wcag: '4.1.1';
46
- readonly weight: 2;
42
+ readonly accessKeyDuplicate: {
43
+ readonly summary: 'duplicate access key';
44
+ readonly why: 'Keyboard shortcut does not reliably trigger the intended action';
45
+ readonly wcag: '1.3.1';
46
+ readonly weight: 3;
47
47
  };
48
- readonly duplicateID: {
49
- readonly summary: 'ID not unique';
50
- readonly why: 'User may be pointed to the wrong item';
51
- readonly wcag: '4.1.1';
48
+ readonly activeDescendantBadID: {
49
+ readonly summary: 'aria-activedescendant invalid';
50
+ readonly why: 'Keyboard-only user cannot reach an item in a menu';
51
+ readonly wcag: '1.3.1';
52
52
  readonly weight: 4;
53
53
  };
54
- readonly roleNoText: {
55
- readonly summary: 'no role-required name';
56
- readonly why: 'User cannot get help understanding an item';
57
- readonly wcag: '4.1.2';
58
- readonly weight: 4;
54
+ readonly activeEmbedding: {
55
+ readonly summary: 'control child of link or button';
56
+ readonly why: 'User cannot reliably choose an item to click or tap';
57
+ readonly wcag: '2.5.5';
58
+ readonly weight: 3;
59
59
  };
60
- readonly progressNoText: {
61
- readonly summary: 'progress bar not named';
62
- readonly why: 'User cannot get help understanding the state of a process';
63
- readonly wcag: '4.1.2';
64
- readonly weight: 4;
60
+ readonly allCaps: {
61
+ readonly summary: 'all-capital text';
62
+ readonly why: 'Text is difficult to read';
63
+ readonly wcag: '3.1.5';
64
+ readonly weight: 1;
65
65
  };
66
- readonly componentNoText: {
67
- readonly summary: 'interactive component not named';
68
- readonly why: 'User cannot get help understanding a custom item';
69
- readonly wcag: '4.1.2';
70
- readonly weight: 4;
66
+ readonly allItalics: {
67
+ readonly summary: 'all-italic text';
68
+ readonly why: 'Text is difficult to read';
69
+ readonly wcag: '3.1.5';
70
+ readonly weight: 1;
71
71
  };
72
- readonly regionNoText: {
73
- readonly summary: 'region not named';
74
- readonly why: 'User cannot get help surveying the parts of the page';
75
- readonly wcag: '4.1.2';
76
- readonly weight: 4;
72
+ readonly animationLong: {
73
+ readonly summary: 'animation long or repetitive';
74
+ readonly why: 'Motion-sensitive user may suffer harm';
75
+ readonly wcag: '2.2.2';
76
+ readonly weight: 3;
77
77
  };
78
- readonly headingImageNoText: {
79
- readonly summary: 'heading image not named';
80
- readonly why: 'User cannot get help understanding an image used as a heading';
78
+ readonly appletNoText: {
79
+ readonly summary: 'applet not named';
80
+ readonly why: 'User cannot get help on how to use a custom item';
81
81
  readonly wcag: '1.1.1';
82
82
  readonly weight: 4;
83
83
  };
84
- readonly inputNoText: {
85
- readonly summary: 'input not named';
86
- readonly why: 'User cannot get help on what information to enter in a form item';
87
- readonly wcag: '4.1.2';
84
+ readonly applicationConfusion: {
85
+ readonly summary: 'applications not distinctly named';
86
+ readonly why: 'User cannot get help on how some of the page is organized';
87
+ readonly wcag: '1.3.6';
88
+ readonly weight: 3;
89
+ };
90
+ readonly applicationNoText: {
91
+ readonly summary: 'application not named';
92
+ readonly why: 'User cannot get help on how some of the page is organized';
93
+ readonly wcag: '1.3.6';
88
94
  readonly weight: 4;
89
95
  };
90
- readonly inputOnlyPlaceholder: {
91
- readonly summary: 'input has placeholder instead of name';
92
- readonly why: 'User cannot get reliable help on what information to enter in a form item';
93
- readonly wcag: '4.1.2';
94
- readonly weight: 3;
96
+ readonly applicationRisk: {
97
+ readonly summary: 'dubious application role';
98
+ readonly why: 'User actions may have unexpected effects';
99
+ readonly wcag: '1.3.1';
100
+ readonly weight: 1;
95
101
  };
96
- readonly placeholderPlusAria: {
97
- readonly summary: 'element has competing placeholder attributes';
98
- readonly why: 'User gets conflicting help on what information to enter in a form item';
102
+ readonly ariaAttributeBad: {
103
+ readonly summary: 'aria attribute invalid';
104
+ readonly why: 'Item behavior violates user expectations';
99
105
  readonly wcag: '4.1.2';
100
- readonly weight: 3;
101
- };
102
- readonly imageButtonNoText: {
103
- readonly summary: 'image button not named';
104
- readonly why: 'User cannot get help understanding an image used as a button';
105
- readonly wcag: '1.1.1';
106
106
  readonly weight: 4;
107
107
  };
108
- readonly imageInputNoText: {
109
- readonly summary: 'image input not named';
110
- readonly why: 'User cannot get help understanding an image used as a submission button';
111
- readonly wcag: '1.1.1';
112
- readonly weight: 4;
108
+ readonly ariaLabelWrongRisk: {
109
+ readonly summary: 'dubious aria-label';
110
+ readonly why: 'User may fail to get help understanding an item in a form';
111
+ readonly wcag: '1.3.1';
112
+ readonly weight: 1;
113
113
  };
114
- readonly figureNoText: {
115
- readonly summary: 'figure not named';
116
- readonly why: 'User cannot get help on the topic of a figure';
117
- readonly wcag: '1.1.1';
114
+ readonly ariaMissing: {
115
+ readonly summary: 'aria attribute missing';
116
+ readonly why: 'Item behaves improperly';
117
+ readonly wcag: '4.1.2';
118
118
  readonly weight: 4;
119
119
  };
120
- readonly imageNoText: {
121
- readonly summary: 'image not named';
122
- readonly why: 'User cannot get help to know what is in an image';
123
- readonly wcag: '1.1.1';
124
- readonly weight: 4;
120
+ readonly ariaMissingRisk: {
121
+ readonly summary: 'aria attribute missing?';
122
+ readonly why: 'Item may behave improperly';
123
+ readonly wcag: '4.1.2';
124
+ readonly weight: 2;
125
125
  };
126
- readonly svgNoText: {
127
- readonly summary: 'SVG image not named';
128
- readonly why: 'User cannot get help to know what is in an image';
129
- readonly wcag: '1.1.1';
130
- readonly weight: 4;
126
+ readonly ariaRedundant: {
127
+ readonly summary: 'aria attribute redundant';
128
+ readonly why: 'Page includes unnecessary code';
129
+ readonly wcag: '4.1.2';
130
+ readonly weight: 1;
131
131
  };
132
- readonly imageTextSpaces: {
133
- readonly summary: 'image name contains only spacing characters';
134
- readonly why: 'User cannot get help understanding an image';
135
- readonly wcag: '1.1.1';
132
+ readonly ariaReferenceBad: {
133
+ readonly summary: 'aria reference invalid';
134
+ readonly why: 'Item behavior violates user expectations';
135
+ readonly wcag: '1.3.1';
136
136
  readonly weight: 4;
137
137
  };
138
- readonly imageTextImage: {
139
- readonly summary: 'image name contains image';
140
- readonly why: 'User is redundantly told an image is an image';
141
- readonly wcag: '1.1.1';
142
- readonly weight: 1;
138
+ readonly ariaVersusHTML: {
139
+ readonly summary: 'aria and HTML attributes have conflicting value';
140
+ readonly why: 'User gets erroneous help with content';
141
+ readonly wcag: '4.1.2';
142
+ readonly weight: 4;
143
143
  };
144
- readonly decorativeAlt: {
145
- readonly summary: 'decorative image is named';
146
- readonly why: 'User gets an uninformative image description or misses an informative image';
147
- readonly wcag: '1.1.1';
144
+ readonly articleHeadingless: {
145
+ readonly summary: 'article heading missing';
146
+ readonly why: 'User cannot understand the topic of a part of the page';
147
+ readonly wcag: '1.3.1';
148
148
  readonly weight: 1;
149
149
  };
150
- readonly imageTextBad: {
151
- readonly summary: 'image named with filename';
152
- readonly why: 'Helper gives a user the filename of an image instead of describing it';
153
- readonly wcag: '1.1.1';
150
+ readonly asideConfusion: {
151
+ readonly summary: 'asides not distinctly named';
152
+ readonly why: 'User cannot get help on how some of the page is organized';
153
+ readonly wcag: '1.3.6';
154
154
  readonly weight: 3;
155
155
  };
156
- readonly imageTextRisk: {
157
- readonly summary: 'image dubiously named';
158
- readonly why: 'Helper may describe an image inadequately';
159
- readonly wcag: '1.1.1';
160
- readonly weight: 1;
161
- };
162
- readonly sourceEmpty: {
163
- readonly summary: 'src empty';
164
- readonly why: 'Image, audio, or video to be shown cannot be found';
165
- readonly wcag: '1.3.1';
166
- readonly weight: 4;
156
+ readonly asideNotTop: {
157
+ readonly summary: 'aside child of landmark';
158
+ readonly why: 'User cannot get help on how some of the page is organized';
159
+ readonly wcag: '1.3.6';
160
+ readonly weight: 2;
167
161
  };
168
- readonly borderBad: {
169
- readonly summary: 'CSS border invalid';
170
- readonly why: 'Border is displayed improperly';
162
+ readonly atRuleInvalid: {
163
+ readonly summary: 'invalid at-rule';
164
+ readonly why: 'Page cannot be properly displayed in particular contexts';
171
165
  readonly wcag: '4.1';
172
- readonly weight: 4;
166
+ readonly weight: 3;
173
167
  };
174
- readonly flexBad: {
175
- readonly summary: 'CSS flex invalid';
176
- readonly why: 'Content is displayed improperly';
177
- readonly wcag: '4.1';
168
+ readonly attributeBad: {
169
+ readonly summary: 'attribute invalid';
170
+ readonly why: 'Item behaves improperly';
171
+ readonly wcag: '1.3.1';
178
172
  readonly weight: 4;
179
173
  };
180
- readonly paddingBad: {
181
- readonly summary: 'CSS padding invalid';
182
- readonly why: 'Content is displayed improperly';
183
- readonly wcag: '4.1';
174
+ readonly attributeMissing: {
175
+ readonly summary: 'attribute missing';
176
+ readonly why: 'Item behaves improperly';
177
+ readonly wcag: '4.1.2';
184
178
  readonly weight: 4;
185
179
  };
186
- readonly gapBad: {
187
- readonly summary: 'CSS gap invalid';
188
- readonly why: 'Content is displayed improperly';
180
+ readonly attributeObsolete: {
181
+ readonly summary: 'attribute obsolete';
182
+ readonly why: 'Page includes obsolete code that the browser may fail to process';
189
183
  readonly wcag: '4.1';
190
- readonly weight: 4;
184
+ readonly weight: 3;
191
185
  };
192
- readonly backgroundBad: {
193
- readonly summary: 'CSS background invalid';
194
- readonly why: 'Background is displayed improperly';
195
- readonly wcag: '4.1';
186
+ readonly attributeValueBad: {
187
+ readonly summary: 'attribute value invalid';
188
+ readonly why: 'Item behaves improperly';
189
+ readonly wcag: '1.3.1';
196
190
  readonly weight: 4;
197
191
  };
198
- readonly backgroundImageBad: {
199
- readonly summary: 'background image invalid';
200
- readonly why: 'Background image is displayed improperly';
201
- readonly wcag: '4.1';
192
+ readonly attributeValueRisk: {
193
+ readonly summary: 'attribute value bad?';
194
+ readonly why: 'Item may behave improperly';
195
+ readonly wcag: '4.1.2';
196
+ readonly weight: 1;
197
+ };
198
+ readonly audioNoText: {
199
+ readonly summary: 'audio track missing';
200
+ readonly why: 'User cannot get help reading speech as text';
201
+ readonly wcag: '1.2.1';
202
202
  readonly weight: 4;
203
203
  };
204
- readonly imagesSameAlt: {
205
- readonly summary: 'nearby images have same alt';
206
- readonly why: 'User cannot get help differentiating two adjacent images';
207
- readonly wcag: '1.1.1';
204
+ readonly audioTextRisk: {
205
+ readonly summary: 'audio not named?';
206
+ readonly why: 'User may be unable to get help reading speech as text';
207
+ readonly wcag: '1.2.1';
208
208
  readonly weight: 1;
209
209
  };
210
- readonly imageTextLong: {
211
- readonly summary: 'image alt long';
212
- readonly why: 'Helper gives a user an overly verbose explanation of an image';
213
- readonly wcag: '1.1.1';
214
- readonly weight: 2;
215
- };
216
- readonly imageBanned: {
217
- readonly summary: 'image prohibited';
218
- readonly why: 'Browser fails to display an image';
219
- readonly wcag: '1.4';
210
+ readonly autocompleteBad: {
211
+ readonly summary: 'autocomplete invalid';
212
+ readonly why: 'User cannot get help entering personal information in a form item';
213
+ readonly wcag: '1.3.5';
220
214
  readonly weight: 3;
221
215
  };
222
- readonly titleLong: {
223
- readonly summary: 'title long';
224
- readonly why: 'Hovering makes an overly verbose explanation pop up';
225
- readonly wcag: '3.1.5';
226
- readonly weight: 2;
216
+ readonly autocompleteNone: {
217
+ readonly summary: 'autocomplete missing';
218
+ readonly why: 'User cannot get help entering personal information in a form';
219
+ readonly wcag: '1.3.5';
220
+ readonly weight: 4;
227
221
  };
228
- readonly titleNotText: {
229
- readonly summary: 'title contains ASCII art';
230
- readonly why: 'Hovering makes a hard-to-understand explanation pop up';
231
- readonly wcag: '3.1.5';
222
+ readonly autocompleteRisk: {
223
+ readonly summary: 'autocomplete dubious';
224
+ readonly why: 'User may fail to get help entering personal information in a form item';
225
+ readonly wcag: '1.3.5';
226
+ readonly weight: 1;
227
+ };
228
+ readonly autoplay: {
229
+ readonly summary: 'autoplay';
230
+ readonly why: 'Motion- or noise-sensitive user may suffer harm';
231
+ readonly wcag: '1.4.2';
232
232
  readonly weight: 2;
233
233
  };
234
- readonly decorativeImageRisk: {
235
- readonly summary: 'image dubiously marked decorative';
236
- readonly why: 'Helper ignores an image that is apparently informative';
237
- readonly wcag: '1.1.1';
238
- readonly weight: 1;
234
+ readonly autoplayControl: {
235
+ readonly summary: 'autoplay control';
236
+ readonly why: 'Motion- or noise-sensitive user may suffer harm';
237
+ readonly wcag: '1.4.2';
238
+ readonly weight: 2;
239
239
  };
240
- readonly decorativeElementExposed: {
241
- readonly summary: 'decorative element exposed';
242
- readonly why: 'Helper alerts a user to an uninformative image';
243
- readonly wcag: '1.3.1';
240
+ readonly autoplayLong: {
241
+ readonly summary: 'autoplay long';
242
+ readonly why: 'Motion- or noise-sensitive user may suffer harm';
243
+ readonly wcag: '1.4.2';
244
244
  readonly weight: 2;
245
245
  };
246
- readonly pageLanguage: {
247
- readonly summary: 'page language missing';
248
- readonly why: 'Speaking helper may mispronounce the page text';
249
- readonly wcag: '3.1.1';
246
+ readonly avNoText: {
247
+ readonly summary: 'audio or video caption track missing';
248
+ readonly why: 'User cannot get help reading speech as text';
249
+ readonly wcag: '1.2.1';
250
250
  readonly weight: 4;
251
- readonly max: 1;
252
251
  };
253
- readonly pageLanguageBad: {
254
- readonly summary: 'page language invalid';
255
- readonly why: 'Speaking helper may mispronounce the page text';
256
- readonly wcag: '3.1.1';
252
+ readonly backgroundBad: {
253
+ readonly summary: 'CSS background invalid';
254
+ readonly why: 'Background is displayed improperly';
255
+ readonly wcag: '4.1';
257
256
  readonly weight: 4;
258
- readonly max: 1;
259
257
  };
260
- readonly elementLanguageBad: {
261
- readonly summary: 'element language invalid';
262
- readonly why: 'Speaking helper may mispronounce the text of an item';
263
- readonly wcag: '3.1.2';
258
+ readonly backgroundImageBad: {
259
+ readonly summary: 'background image invalid';
260
+ readonly why: 'Background image is displayed improperly';
261
+ readonly wcag: '4.1';
264
262
  readonly weight: 4;
265
263
  };
266
- readonly languageChange: {
267
- readonly summary: 'language change invalid';
268
- readonly why: 'Speaking helper may mispronounce the text of an item';
269
- readonly wcag: '3.1.2';
264
+ readonly bannerConfusion: {
265
+ readonly summary: 'banners not distinctly named';
266
+ readonly why: 'User cannot get help on how some of the page is organized';
267
+ readonly wcag: '1.3.6';
270
268
  readonly weight: 3;
271
269
  };
272
- readonly dialogNoText: {
273
- readonly summary: 'dialog not named';
274
- readonly why: 'User cannot get help explaining a pop-up window';
275
- readonly wcag: '4.1.2';
270
+ readonly bannerNot1: {
271
+ readonly summary: 'multiple banners';
272
+ readonly why: 'User cannot get help on how some of the page is organized';
273
+ readonly wcag: '1.3.6';
274
+ readonly weight: 2;
275
+ readonly max: 1;
276
+ };
277
+ readonly bannerNotTop: {
278
+ readonly summary: 'banner child of landmark';
279
+ readonly why: 'User cannot get help on how some of the page is organized';
280
+ readonly wcag: '1.3.6';
281
+ readonly weight: 2;
282
+ };
283
+ readonly baseElementMissing: {
284
+ readonly summary: 'base element missing where required';
285
+ readonly why: 'Browser cannot find a needed external resource';
286
+ readonly wcag: '1.3.1';
276
287
  readonly weight: 4;
277
288
  };
278
- readonly objectNoText: {
279
- readonly summary: 'object not named';
280
- readonly why: 'User cannot get help explaining a custom item';
281
- readonly wcag: '1.1.1';
289
+ readonly blink: {
290
+ readonly summary: 'blink element';
291
+ readonly why: 'Motion-sensitive user may suffer harm';
292
+ readonly wcag: '2.2.2';
282
293
  readonly weight: 4;
283
294
  };
284
- readonly objectTextRisk: {
285
- readonly summary: 'object dubiously named';
286
- readonly why: 'Helper may explain a custom item inadequately';
287
- readonly wcag: '1.1.1';
295
+ readonly blockQuoteShort: {
296
+ readonly summary: 'block quote abnormally short';
297
+ readonly why: 'Content can be made easier to read';
298
+ readonly wcag: '1.4.8';
288
299
  readonly weight: 1;
289
300
  };
290
- readonly objectAudioRisk: {
291
- readonly summary: 'non-audio element plays audio?';
292
- readonly why: 'User may get inadequate help consuming audio content';
293
- readonly wcag: '1.1.1';
301
+ readonly borderBad: {
302
+ readonly summary: 'CSS border invalid';
303
+ readonly why: 'Border is displayed improperly';
304
+ readonly wcag: '4.1';
305
+ readonly weight: 4;
306
+ };
307
+ readonly boxInvisibleRisk: {
308
+ readonly summary: 'border or outline invisible?';
309
+ readonly why: 'User cannot perceive the boundary of an item';
310
+ readonly wcag: '1.4.11';
294
311
  readonly weight: 1;
295
312
  };
296
- readonly appletNoText: {
297
- readonly summary: 'applet not named';
298
- readonly why: 'User cannot get help on how to use a custom item';
299
- readonly wcag: '1.1.1';
300
- readonly weight: 4;
313
+ readonly boxSizeAbsolute: {
314
+ readonly summary: 'box size absolute';
315
+ readonly why: 'User cannot enlarge the content of an item for readability';
316
+ readonly wcag: '1.4.4';
317
+ readonly weight: 3;
301
318
  };
302
- readonly imageMapNoText: {
303
- readonly summary: 'image map not named';
304
- readonly why: 'User cannot get help on the topic of an interactive image';
305
- readonly wcag: '1.1.1';
306
- readonly weight: 4;
319
+ readonly browserSupportRisk: {
320
+ readonly summary: 'inputmode attribute';
321
+ readonly why: 'Page may include code that the browser cannot process';
322
+ readonly wcag: '4.1';
323
+ readonly weight: 1;
307
324
  };
308
- readonly imageMapAreaNoText: {
309
- readonly summary: 'image map area not named';
310
- readonly why: 'User cannot get help on how to use an interactive image';
311
- readonly wcag: '1.1.1';
325
+ readonly buttonAlt: {
326
+ readonly summary: 'button has alt';
327
+ readonly why: 'User cannot get help explaing a button';
328
+ readonly wcag: '4.1.2';
312
329
  readonly weight: 4;
313
330
  };
314
- readonly customKeyboardRisk: {
315
- readonly summary: 'custom button keyboard-inoperable?';
316
- readonly why: 'Custom item may prevent a keyboard-only user from operating it';
317
- readonly wcag: '2.1.1';
331
+ readonly buttonNoContent: {
332
+ readonly summary: 'button name not visible';
333
+ readonly why: 'User cannot get help explaining a button';
334
+ readonly wcag: '4.1.2';
318
335
  readonly weight: 1;
319
336
  };
320
- readonly objectBlurKeyboardRisk: {
321
- readonly summary: 'object not keyboard-blurrable?';
322
- readonly why: 'Custom item may trap a keyboard-only user';
323
- readonly wcag: '2.1.1';
324
- readonly weight: 1;
337
+ readonly buttonNoText: {
338
+ readonly summary: 'button not named';
339
+ readonly why: 'User cannot get help explaining a button';
340
+ readonly wcag: '4.1.2';
341
+ readonly weight: 4;
325
342
  };
326
- readonly eventKeyboardRisk: {
327
- readonly summary: 'event not keyboard-triggerable?';
328
- readonly why: 'Keyboard-only user may be unable to perform an action';
329
- readonly wcag: '2.1.1';
343
+ readonly captcha2: {
344
+ readonly summary: 'captcha2';
345
+ readonly why: 'User is prevented from consuming the page';
346
+ readonly wcag: '1.1.1';
330
347
  readonly weight: 1;
348
+ readonly max: 1;
331
349
  };
332
- readonly internalLinkBroken: {
333
- readonly summary: 'internal link broken';
334
- readonly why: 'User cannot reach a promised page location';
350
+ readonly cellHeadersAmbiguityRisk: {
351
+ readonly summary: 'cell headers ambiguous?';
352
+ readonly why: 'User may be unable to get help on relationships in a table';
335
353
  readonly wcag: '1.3.1';
336
- readonly weight: 4;
354
+ readonly weight: 2;
337
355
  };
338
- readonly labelForBad: {
339
- readonly summary: 'label referent ineligible';
340
- readonly why: 'User cannot get help understanding an item in a form';
356
+ readonly cellHeadersNotInferrable: {
357
+ readonly summary: 'cell headers not inferrable';
358
+ readonly why: 'User cannot get help on relationships in a table';
341
359
  readonly wcag: '1.3.1';
342
360
  readonly weight: 4;
343
361
  };
344
- readonly controlIDInLabelBad: {
345
- readonly summary: 'label contains control with nonmatching ID';
346
- readonly why: 'User cannot get help understanding an item in a form';
362
+ readonly cellHeadersOutsideTable: {
363
+ readonly summary: 'cell headers outside table';
364
+ readonly why: 'User cannot get help on relationships in a table';
347
365
  readonly wcag: '1.3.1';
348
366
  readonly weight: 4;
349
367
  };
350
- readonly nonLabelableRole: {
351
- readonly summary: 'aria-label on non-labelable role';
352
- readonly why: 'User is misinformed about an item';
353
- readonly wcag: '1.3.1';
368
+ readonly characterBad: {
369
+ readonly summary: 'invalid character';
370
+ readonly why: 'Invalid character makes the page behave incorrectly';
371
+ readonly wcag: '4.1';
372
+ readonly weight: 3;
373
+ };
374
+ readonly clickOnly: {
375
+ readonly summary: 'name dubiously mouse-specific';
376
+ readonly why: 'User may misunderstand how to activate a link';
377
+ readonly wcag: '2.1.1';
354
378
  readonly weight: 1;
355
379
  };
356
- readonly ariaLabelWrongRisk: {
357
- readonly summary: 'dubious aria-label';
358
- readonly why: 'User may fail to get help understanding an item in a form';
359
- readonly wcag: '1.3.1';
380
+ readonly colorNamedRisk: {
381
+ readonly summary: 'color perception required?';
382
+ readonly why: 'Content is impossible to perceive under some conditions';
383
+ readonly wcag: '1.4.1';
360
384
  readonly weight: 1;
361
385
  };
362
- readonly activeDescendantBadID: {
363
- readonly summary: 'aria-activedescendant invalid';
364
- readonly why: 'Keyboard-only user cannot reach an item in a menu';
365
- readonly wcag: '1.3.1';
366
- readonly weight: 4;
386
+ readonly complementaryNoText: {
387
+ readonly summary: 'complementary not named';
388
+ readonly why: 'User cannot get help on how some of the page is organized';
389
+ readonly wcag: '1.3.6';
390
+ readonly weight: 1;
367
391
  };
368
- readonly governedBadID: {
369
- readonly summary: 'aria-controls or -owns invalid';
370
- readonly why: 'Keyboard-only user cannot reach an item';
371
- readonly wcag: '1.3.1';
392
+ readonly componentNoText: {
393
+ readonly summary: 'interactive component not named';
394
+ readonly why: 'User cannot get help understanding a custom item';
395
+ readonly wcag: '4.1.2';
372
396
  readonly weight: 4;
373
397
  };
374
- readonly descriptionBadID: {
375
- readonly summary: 'aria-describedby invalid';
376
- readonly why: 'User cannot get help understanding an item in detail';
377
- readonly wcag: '1.3.1';
378
- readonly weight: 4;
379
- };
380
- readonly labelConfusionRisk: {
381
- readonly summary: 'label location dubious';
382
- readonly why: 'User may fail to notice the explanation of an item in a form';
383
- readonly wcag: '3.3.2';
398
+ readonly contentBeyondLandmarks: {
399
+ readonly summary: 'content beyond landmarks';
400
+ readonly why: 'User cannot get help on how some of the page is organized';
401
+ readonly wcag: '1.3.6';
384
402
  readonly weight: 1;
385
403
  };
386
- readonly labelBadID: {
387
- readonly summary: 'label reference invalid';
388
- readonly why: 'User cannot get help understanding an item in a form';
389
- readonly wcag: '1.3.1';
404
+ readonly contentHidden: {
405
+ readonly summary: 'page hidden';
406
+ readonly why: 'User cannot get the page content';
407
+ readonly wcag: '1';
390
408
  readonly weight: 4;
409
+ readonly max: 1;
391
410
  };
392
- readonly haspopupBad: {
393
- readonly summary: 'aria-haspopup invalid';
394
- readonly why: 'Keyboard-only user cannot operate a custom tool';
395
- readonly wcag: '1.3.1';
411
+ readonly contrastAA: {
412
+ readonly summary: 'contrast poor';
413
+ readonly why: 'Content is difficult to understand';
414
+ readonly wcag: '1.4.3';
396
415
  readonly weight: 4;
397
416
  };
398
- readonly applicationRisk: {
399
- readonly summary: 'dubious application role';
400
- readonly why: 'User actions may have unexpected effects';
401
- readonly wcag: '1.3.1';
417
+ readonly contrastAAA: {
418
+ readonly summary: 'text contrast improvable';
419
+ readonly why: 'Content is not easy to understand';
420
+ readonly wcag: '1.4.6';
402
421
  readonly weight: 1;
403
422
  };
404
- readonly directionRisk: {
405
- readonly summary: 'dubious direction';
406
- readonly why: 'Item may behave incorrectly';
407
- readonly wcag: '1.3.2';
423
+ readonly contrastRisk: {
424
+ readonly summary: 'text contrast not testable';
425
+ readonly why: 'Text may be difficult to read';
426
+ readonly wcag: '1.4.3';
408
427
  readonly weight: 1;
409
428
  };
410
- readonly clickOnly: {
411
- readonly summary: 'name dubiously mouse-specific';
412
- readonly why: 'User may misunderstand how to activate a link';
413
- readonly wcag: '2.4.4';
414
- readonly weight: 1;
429
+ readonly controlIDInLabelBad: {
430
+ readonly summary: 'label contains control with nonmatching ID';
431
+ readonly why: 'User cannot get help understanding an item in a form';
432
+ readonly wcag: '1.3.1';
433
+ readonly weight: 4;
415
434
  };
416
- readonly linkNoText: {
417
- readonly summary: 'link not named';
418
- readonly why: 'User cannot get help understanding what a link points to';
419
- readonly wcag: '2.4.4';
435
+ readonly controlLabelInvisible: {
436
+ readonly summary: 'control label invisible';
437
+ readonly why: 'User cannot understand how to operate a form item';
438
+ readonly wcag: '2.4.6';
420
439
  readonly weight: 4;
421
440
  };
422
- readonly imageLinkNoText: {
423
- readonly summary: 'image link not named';
424
- readonly why: 'User cannot get help understanding what a link points to';
425
- readonly wcag: '2.4.4';
441
+ readonly controlNoText: {
442
+ readonly summary: 'control not named';
443
+ readonly why: 'User cannot get help on how to operate a form item';
444
+ readonly wcag: '1.3.1';
426
445
  readonly weight: 4;
427
446
  };
428
- readonly linkImageTextURL: {
429
- readonly summary: 'text alternative of link image a URL';
430
- readonly why: 'User cannot understand what a link points to';
431
- readonly wcag: '2.4.4';
432
- readonly weight: 3;
447
+ readonly cssBansElementRotate: {
448
+ readonly summary: 'CSS bans element rotation';
449
+ readonly why: 'User must read sideways after rotating a device';
450
+ readonly wcag: '1.3.4';
451
+ readonly weight: 4;
433
452
  };
434
- readonly linkBrokenRisk: {
435
- readonly summary: 'link incomplete';
436
- readonly why: 'User may fail to reach a promised location';
437
- readonly wcag: '1.3.1';
438
- readonly weight: 2;
453
+ readonly cssBansPageRotate: {
454
+ readonly summary: 'CSS bans page rotation';
455
+ readonly why: 'User must read sideways after rotating a device';
456
+ readonly wcag: '1.3.4';
457
+ readonly weight: 4;
439
458
  };
440
- readonly linkElNoHref: {
441
- readonly summary: 'link element href missing';
442
- readonly why: 'User cannot reach a promised location';
459
+ readonly cssInvalid: {
460
+ readonly summary: 'CSS invalid';
461
+ readonly why: 'Page cannot be properly displayed';
443
462
  readonly wcag: '4.1';
444
463
  readonly weight: 3;
445
464
  };
446
- readonly linkElNoSource: {
447
- readonly summary: 'link element href or imagesrcset missing';
448
- readonly why: 'User cannot reach a promised location';
449
- readonly wcag: '4.1';
450
- readonly weight: 3;
465
+ readonly customKeyboardRisk: {
466
+ readonly summary: 'custom button keyboard-inoperable?';
467
+ readonly why: 'Custom item may prevent a keyboard-only user from operating it';
468
+ readonly wcag: '2.1.1';
469
+ readonly weight: 1;
451
470
  };
452
- readonly destinationNotURL: {
453
- readonly summary: 'link destination not URL';
454
- readonly why: 'Helper cannot properly explain a link to a user';
471
+ readonly datalistRef: {
472
+ readonly summary: 'ambiguous or missing datalist reference';
473
+ readonly why: 'User cannot get help on the permitted input values';
474
+ readonly wcag: '3.3.2';
475
+ readonly weight: 4;
476
+ };
477
+ readonly decorativeAlt: {
478
+ readonly summary: 'decorative image is named';
479
+ readonly why: 'User gets an uninformative image description or misses an informative image';
480
+ readonly wcag: '1.1.1';
481
+ readonly weight: 1;
482
+ };
483
+ readonly decorativeElementExposed: {
484
+ readonly summary: 'decorative element exposed';
485
+ readonly why: 'Helper alerts a user to an uninformative image';
455
486
  readonly wcag: '1.3.1';
487
+ readonly weight: 2;
488
+ };
489
+ readonly decorativeImageRisk: {
490
+ readonly summary: 'image dubiously marked decorative';
491
+ readonly why: 'Helper ignores an image that is apparently informative';
492
+ readonly wcag: '1.1.1';
456
493
  readonly weight: 1;
457
494
  };
458
- readonly destinationLink: {
459
- readonly summary: 'link href missing';
460
- readonly why: 'Helper cannot properly explain a link to a user';
495
+ readonly decorativeTitle: {
496
+ readonly summary: 'decorative element has title';
497
+ readonly why: 'Hovering-produced information is denied to a keyboard-only user';
461
498
  readonly wcag: '1.3.1';
462
499
  readonly weight: 2;
463
500
  };
464
- readonly emailLinkBad: {
465
- readonly summary: 'Microsoft will bounce email from link';
466
- readonly why: 'User cannot send email';
467
- readonly wcag: '2.4.4';
501
+ readonly descendantMissing: {
502
+ readonly summary: 'descendant missing';
503
+ readonly why: 'Keyboard-only user cannot operate a custom tool';
504
+ readonly wcag: '1.3.1';
468
505
  readonly weight: 4;
469
506
  };
470
- readonly abbreviationNoTitle: {
471
- readonly summary: 'abbr title missing';
472
- readonly why: 'User cannot get help understanding an abbreviation';
473
- readonly wcag: '3.1.4';
507
+ readonly descriptionBadID: {
508
+ readonly summary: 'aria-describedby invalid';
509
+ readonly why: 'User cannot get help understanding an item in detail';
510
+ readonly wcag: '1.3.1';
474
511
  readonly weight: 4;
475
512
  };
476
- readonly editableHow: {
477
- readonly summary: 'contenteditable element incomplete';
478
- readonly why: 'User cannot get help on how to edit editable content';
513
+ readonly descriptionOrder: {
514
+ readonly summary: 'description list misordered';
515
+ readonly why: 'User cannot get help on the structure of a list';
479
516
  readonly wcag: '1.3.1';
480
- readonly weight: 3;
517
+ readonly weight: 4;
481
518
  };
482
- readonly textAreaNoText: {
483
- readonly summary: 'text area not named';
484
- readonly why: 'User cannot get help on what information to enter in a form item';
519
+ readonly descriptionOrphan: {
520
+ readonly summary: 'description list orphan';
521
+ readonly why: 'User cannot get help on whether an item is in a list';
485
522
  readonly wcag: '1.3.1';
486
523
  readonly weight: 4;
487
524
  };
488
- readonly linkAltSame: {
489
- readonly summary: 'link image alt duplicative';
490
- readonly why: 'Helper repeats the explanation of a link';
491
- readonly wcag: '1.1.1';
492
- readonly weight: 2;
493
- };
494
- readonly linkTextsSame: {
495
- readonly summary: 'links named identically';
496
- readonly why: 'User cannot get help differentiating links';
497
- readonly wcag: '2.4.4';
525
+ readonly destinationLink: {
526
+ readonly summary: 'link href missing';
527
+ readonly why: 'Helper cannot properly explain a link to a user';
528
+ readonly wcag: '1.3.1';
498
529
  readonly weight: 2;
499
530
  };
500
- readonly linkConfusionRisk: {
501
- readonly summary: 'links dubiously share name';
502
- readonly why: 'User may be unable to get help differentiating links';
503
- readonly wcag: '2.4.4';
531
+ readonly destinationNotURL: {
532
+ readonly summary: 'link destination not URL';
533
+ readonly why: 'Helper cannot properly explain a link to a user';
534
+ readonly wcag: '1.3.1';
504
535
  readonly weight: 1;
505
536
  };
506
- readonly linksNoNav: {
507
- readonly summary: 'links not grouped as nav';
508
- readonly why: 'User cannot get help identifying links as a navigation tool';
509
- readonly wcag: '1.3.1';
510
- readonly weight: 2;
537
+ readonly dialogNoText: {
538
+ readonly summary: 'dialog not named';
539
+ readonly why: 'User cannot get help explaining a pop-up window';
540
+ readonly wcag: '4.1.2';
541
+ readonly weight: 4;
511
542
  };
512
- readonly linkPair: {
513
- readonly summary: 'adjacent links not combined';
514
- readonly why: 'Keyboard-only user expends extra effort to skip a link';
515
- readonly wcag: '2.4.4';
516
- readonly weight: 2;
543
+ readonly dirBad: {
544
+ readonly summary: 'dir invalid';
545
+ readonly why: 'Item may behave improperly';
546
+ readonly wcag: '4.1.2';
547
+ readonly weight: 1;
517
548
  };
518
- readonly linkPairRisk: {
519
- readonly summary: 'text and image link may merit combination';
520
- readonly why: 'Keyboard-only user may expend extra effort to skip a link';
521
- readonly wcag: '2.4.4';
549
+ readonly directionRisk: {
550
+ readonly summary: 'dubious direction';
551
+ readonly why: 'Item may behave incorrectly';
552
+ readonly wcag: '1.3.2';
522
553
  readonly weight: 1;
523
554
  };
524
- readonly linkNameRisk: {
525
- readonly summary: 'image link text suspect';
526
- readonly why: 'Keyboard-only user may misunderstand the effect of following a link';
527
- readonly wcag: '2.4.4';
555
+ readonly divInTable: {
556
+ readonly summary: 'div embedded in table';
557
+ readonly why: 'Blocks of content within a table cell may confuse a user';
558
+ readonly wcag: '1.4';
528
559
  readonly weight: 1;
529
560
  };
530
- readonly pageNewWindow: {
531
- readonly summary: 'page immediately opens window';
532
- readonly why: 'User promised a page gets another page, too';
533
- readonly wcag: '3.2.5';
534
- readonly weight: 3;
561
+ readonly docHeadingNotH1: {
562
+ readonly summary: 'primary heading not h1';
563
+ readonly why: 'User cannot understand the topic of the page';
564
+ readonly wcag: '1.3.1';
565
+ readonly weight: 2;
535
566
  readonly max: 1;
536
567
  };
537
- readonly newTabSurprise: {
538
- readonly summary: 'tab-opening link action unstated';
539
- readonly why: 'Following a link opens a new window, surprising a user';
540
- readonly wcag: '3.2.5';
568
+ readonly docTypeBad: {
569
+ readonly summary: 'DOCTYPE invalid';
570
+ readonly why: 'Browser processes the page improperly';
571
+ readonly wcag: '4.1';
541
572
  readonly weight: 3;
573
+ readonly max: 1;
542
574
  };
543
- readonly newTabSurpriseRisk: {
544
- readonly summary: 'tab-opening link action unstated?';
545
- readonly why: 'Following a link opens a new window, possibly surprising a user';
546
- readonly wcag: '3.2.5';
547
- readonly weight: 1;
575
+ readonly docTypeMisplaced: {
576
+ readonly summary: 'DOCTYPE in invalid location';
577
+ readonly why: 'Browser processes the page improperly';
578
+ readonly wcag: '4.1';
579
+ readonly weight: 4;
580
+ readonly max: 1;
548
581
  };
549
- readonly selectNavSurpriseRisk: {
550
- readonly summary: 'navigating selection-change action unstated?';
551
- readonly why: 'Changing a selected option opens a new window, possibly surprising a user';
552
- readonly wcag: '3.2.5';
553
- readonly weight: 1;
582
+ readonly docTypeMissing: {
583
+ readonly summary: 'DOCTYPE missing';
584
+ readonly why: 'Browser processes the page improperly';
585
+ readonly wcag: '4.1';
586
+ readonly weight: 4;
587
+ readonly max: 1;
554
588
  };
555
- readonly preselectedOption: {
556
- readonly summary: 'no default option';
557
- readonly why: 'User may risk erroneously submitting a form';
558
- readonly wcag: '4.1.2';
559
- readonly weight: 1;
589
+ readonly documentConfusion: {
590
+ readonly summary: 'page elements not distinctly named';
591
+ readonly why: 'User cannot get help on how some of the page is organized';
592
+ readonly wcag: '1.3.6';
593
+ readonly weight: 3;
560
594
  };
561
- readonly selectBad: {
562
- readonly summary: 'select element invalid';
563
- readonly why: 'User cannot properly select among options';
564
- readonly wcag: '4.1.2';
565
- readonly weight: 4;
595
+ readonly duplicateAttribute: {
596
+ readonly summary: 'duplicate attribute';
597
+ readonly why: 'Browser processes the page improperly';
598
+ readonly wcag: '4.1';
599
+ readonly weight: 2;
566
600
  };
567
- readonly buttonAlt: {
568
- readonly summary: 'button has alt';
569
- readonly why: 'User cannot get help explaing a button';
570
- readonly wcag: '4.1.2';
601
+ readonly duplicateID: {
602
+ readonly summary: 'ID not unique';
603
+ readonly why: 'User may be pointed to the wrong item';
604
+ readonly wcag: '4.1';
571
605
  readonly weight: 4;
572
606
  };
573
- readonly buttonNoContent: {
574
- readonly summary: 'button name not visible';
575
- readonly why: 'User cannot get help explaining a button';
576
- readonly wcag: '4.1.2';
577
- readonly weight: 1;
607
+ readonly editableHow: {
608
+ readonly summary: 'contenteditable element incomplete';
609
+ readonly why: 'User cannot get help on how to edit editable content';
610
+ readonly wcag: '1.3.1';
611
+ readonly weight: 3;
578
612
  };
579
- readonly buttonNoText: {
580
- readonly summary: 'button not named';
581
- readonly why: 'User cannot get help explaining a button';
613
+ readonly elementBad: {
614
+ readonly summary: 'nonexistent element';
615
+ readonly why: 'User cannot understand the content';
582
616
  readonly wcag: '4.1.2';
583
617
  readonly weight: 4;
584
618
  };
585
- readonly menuItemNoText: {
586
- readonly summary: 'menu item not named';
587
- readonly why: 'User cannot get help explaing a menu item';
588
- readonly wcag: '4.1.2';
589
- readonly weight: 4;
619
+ readonly elementClosure: {
620
+ readonly summary: 'element closure invalid';
621
+ readonly why: 'Page contains invalid code';
622
+ readonly wcag: '4.1';
623
+ readonly weight: 3;
590
624
  };
591
- readonly parentMissing: {
592
- readonly summary: 'parent missing';
593
- readonly why: 'Keyboard-only user cannot operate a custom tool';
594
- readonly wcag: '1.3.1';
625
+ readonly elementLanguageBad: {
626
+ readonly summary: 'element language invalid';
627
+ readonly why: 'Speaking helper may mispronounce the text of an item';
628
+ readonly wcag: '3.1.2';
595
629
  readonly weight: 4;
596
630
  };
597
- readonly descendantMissing: {
598
- readonly summary: 'descendant missing';
599
- readonly why: 'Keyboard-only user cannot operate a custom tool';
600
- readonly wcag: '1.3.1';
631
+ readonly elementObsolete: {
632
+ readonly summary: 'element obsolete';
633
+ readonly why: 'Page includes obsolete code that the browser may fail to process';
634
+ readonly wcag: '4.1';
635
+ readonly weight: 3;
636
+ };
637
+ readonly emailLinkBad: {
638
+ readonly summary: 'Microsoft will bounce email from link';
639
+ readonly why: 'User cannot send email';
640
+ readonly wcag: '2.4.4';
601
641
  readonly weight: 4;
602
642
  };
603
- readonly presentationChild: {
604
- readonly summary: 'presentation element has child';
605
- readonly why: 'Keyboard-only user cannot reach an item intended to be reachable';
606
- readonly wcag: '1.3.1';
643
+ readonly encodingBad: {
644
+ readonly summary: 'text not Unicode-compliant';
645
+ readonly why: 'User cannot read all of the text';
646
+ readonly wcag: '4.1';
607
647
  readonly weight: 4;
608
648
  };
609
- readonly svgImageNoText: {
610
- readonly summary: 'svg image not named';
611
- readonly why: 'User cannot get help understanding an image';
612
- readonly wcag: '1.1.1';
649
+ readonly encodingMisdeclared: {
650
+ readonly summary: 'text encoding wrongly declared';
651
+ readonly why: 'User cannot read all of the text';
652
+ readonly wcag: '3.1.3';
613
653
  readonly weight: 4;
654
+ readonly max: 1;
614
655
  };
615
- readonly svgLabelID: {
616
- readonly summary: 'svg label referent invalid';
617
- readonly why: 'User cannot get help understanding an image';
618
- readonly wcag: '1.1.1';
656
+ readonly encodingPrivate: {
657
+ readonly summary: 'text in Private Use Area';
658
+ readonly why: 'User cannot read all of the text';
659
+ readonly wcag: '3.1.3';
619
660
  readonly weight: 4;
661
+ readonly max: 1;
620
662
  };
621
- readonly cssBansPageRotate: {
622
- readonly summary: 'CSS bans page rotation';
623
- readonly why: 'User must read sideways after rotating a device';
624
- readonly wcag: '1.3.4';
663
+ readonly entityBad: {
664
+ readonly summary: 'named character reference invalid';
665
+ readonly why: 'User may be unable to read all the page text';
666
+ readonly wcag: '4.1';
625
667
  readonly weight: 4;
626
668
  };
627
- readonly cssBansElementRotate: {
628
- readonly summary: 'CSS bans element rotation';
629
- readonly why: 'User must read sideways after rotating a device';
630
- readonly wcag: '1.3.4';
669
+ readonly errorReferenceBad: {
670
+ readonly summary: 'error reference invalid';
671
+ readonly why: 'User cannot correct a form error';
672
+ readonly wcag: '3.3.1';
631
673
  readonly weight: 4;
632
674
  };
633
- readonly orientationRisk: {
634
- readonly summary: 'orientation issues not testable';
635
- readonly why: 'User may need to read sideways after rotating a device';
636
- readonly wcag: '1.3.4';
675
+ readonly eventKeyboardRisk: {
676
+ readonly summary: 'event not keyboard-triggerable?';
677
+ readonly why: 'Keyboard-only user may be unable to perform an action';
678
+ readonly wcag: '2.1.1';
637
679
  readonly weight: 1;
638
- readonly max: 1;
639
680
  };
640
- readonly metaBansZoom: {
641
- readonly summary: 'meta bans zoom';
642
- readonly why: 'User cannot adjust the page size for readability';
643
- readonly wcag: '1.4.4';
681
+ readonly fatalError: {
682
+ readonly summary: 'fatal error';
683
+ readonly why: 'Page prevents testing for accessibility';
684
+ readonly wcag: '4.1';
644
685
  readonly weight: 4;
645
686
  readonly max: 1;
646
687
  };
647
- readonly fontSizeAbsolute: {
648
- readonly summary: 'font size absolute';
649
- readonly why: 'User cannot adjust the text size for readability';
650
- readonly wcag: '1.4.4';
688
+ readonly fieldSetMissing: {
689
+ readonly summary: 'fieldset missing';
690
+ readonly why: 'User cannot get help recognizing a group of related form items';
691
+ readonly wcag: '1.3.1';
651
692
  readonly weight: 2;
652
693
  };
653
- readonly fontSmall: {
654
- readonly summary: 'font small';
655
- readonly why: 'Text is difficult to read';
656
- readonly wcag: '1.4';
657
- readonly weight: 3;
658
- };
659
- readonly horizontalSpacingFrozen: {
660
- readonly summary: 'horizontal text spacing frozen';
661
- readonly why: 'User cannot adjust the horizontal text spacing for readability';
662
- readonly wcag: '1.4.12';
663
- readonly weight: 4;
694
+ readonly fieldSetRisk: {
695
+ readonly summary: 'fieldset missing?';
696
+ readonly why: 'User may be unable to get help recognizing a group of related form items';
697
+ readonly wcag: '1.3.1';
698
+ readonly weight: 1;
664
699
  };
665
- readonly verticalSpacingFrozen: {
666
- readonly summary: 'vertical text spacing frozen';
667
- readonly why: 'User cannot adjust the vertical text spacing for readability';
668
- readonly wcag: '1.4.12';
700
+ readonly figureNoText: {
701
+ readonly summary: 'figure not named';
702
+ readonly why: 'User cannot get help on the topic of a figure';
703
+ readonly wcag: '1.1.1';
669
704
  readonly weight: 4;
670
705
  };
671
- readonly lineHeightAbsolute: {
672
- readonly summary: 'line height absolute';
673
- readonly why: 'User cannot adjust the line height of text for readability';
674
- readonly wcag: '1.4.12';
675
- readonly weight: 2;
676
- };
677
- readonly lineHeightLow: {
678
- readonly summary: 'line height low';
679
- readonly why: 'Text is difficult to read';
680
- readonly wcag: '1.4.8';
681
- readonly weight: 2;
706
+ readonly flash: {
707
+ readonly summary: 'flash content';
708
+ readonly why: 'Page includes code that may not work and may jeopardize user security';
709
+ readonly wcag: '4.1';
710
+ readonly weight: 1;
711
+ readonly max: 1;
682
712
  };
683
- readonly lineHeightBad: {
684
- readonly summary: 'line height misdefined';
685
- readonly why: 'Text is difficult to read';
686
- readonly wcag: '1.4.8';
713
+ readonly flexBad: {
714
+ readonly summary: 'CSS flex invalid';
715
+ readonly why: 'Content is displayed improperly';
716
+ readonly wcag: '4.1';
687
717
  readonly weight: 4;
688
718
  };
689
- readonly overflowHidden: {
690
- readonly summary: 'overflow hidden';
691
- readonly why: 'User cannot enlarge the text for readability';
692
- readonly wcag: '1.4.4';
719
+ readonly focusableDescendants: {
720
+ readonly summary: 'presentational child focusable';
721
+ readonly why: 'Keyboard-only user cannot navigate properly to the operable items';
722
+ readonly wcag: '4.1.2';
693
723
  readonly weight: 4;
694
724
  };
695
- readonly overflowHiddenRisk: {
696
- readonly summary: 'overflow hidden?';
697
- readonly why: 'User may be unable to enlarge the text for readability';
698
- readonly wcag: '1.4.4';
699
- readonly weight: 1;
725
+ readonly focusableHidden: {
726
+ readonly summary: 'focusable element hidden';
727
+ readonly why: 'Keyboard-only user cannot navigate properly to the operable items';
728
+ readonly wcag: '4.1.2';
729
+ readonly weight: 4;
700
730
  };
701
- readonly boxSizeAbsolute: {
702
- readonly summary: 'box size absolute';
703
- readonly why: 'User cannot enlarge the content of an item for readability';
704
- readonly wcag: '1.4.4';
731
+ readonly focusableOperable: {
732
+ readonly summary: 'element focusability and operability conflict';
733
+ readonly why: 'Keyboard-only user cannot operate an item';
734
+ readonly wcag: '2.1.1';
705
735
  readonly weight: 3;
706
736
  };
707
- readonly elementBad: {
708
- readonly summary: 'nonexistent element';
709
- readonly why: 'User cannot understand the content';
737
+ readonly focusableRole: {
738
+ readonly summary: 'focusable element not active';
739
+ readonly why: 'Keyboard-only user cannot navigate properly to the operable items';
710
740
  readonly wcag: '4.1.2';
711
- readonly weight: 4;
712
- };
713
- readonly titleBad: {
714
- readonly summary: 'title attribute invalid';
715
- readonly why: 'User gets too little, too much, or repeated help explaining an item';
716
- readonly wcag: '1.3.1';
717
- readonly weight: 1;
741
+ readonly weight: 3;
718
742
  };
719
- readonly baseElementMissing: {
720
- readonly summary: 'base element missing where required';
721
- readonly why: 'Browser cannot find a needed external resource';
722
- readonly wcag: '1.3.1';
743
+ readonly focusDiscrepancy: {
744
+ readonly summary: 'Tab-focusable elements wrong';
745
+ readonly why: 'Item selections by a keyboard-only user are useless or impossible';
746
+ readonly wcag: '2.1.1';
723
747
  readonly weight: 4;
724
748
  };
725
- readonly linkElementMisplaced: {
726
- readonly summary: 'link element misplaced';
727
- readonly why: 'Document fails to get a needed external resource';
728
- readonly wcag: '1.3.1';
749
+ readonly focusedAway: {
750
+ readonly summary: 'element beyond display when focused';
751
+ readonly why: 'Keyboard-only user cannot navigate properly to the operable items';
752
+ readonly wcag: '1.4.10';
753
+ readonly weight: 3;
754
+ };
755
+ readonly focusIndicationBad: {
756
+ readonly summary: 'focus indication poor';
757
+ readonly why: 'Keyboard-only user cannot choose an item to operate';
758
+ readonly wcag: '2.4.7';
729
759
  readonly weight: 4;
730
760
  };
731
- readonly linkElementBad: {
732
- readonly summary: 'link element invalid';
733
- readonly why: 'Document fails to get a needed external resource';
734
- readonly wcag: '1.3.1';
735
- readonly weight: 4;
761
+ readonly focusIndicationImprovable: {
762
+ readonly summary: 'focus indication improvable';
763
+ readonly why: 'Keyboard-only user cannot easily choose an item to operate';
764
+ readonly wcag: '2.4.7';
765
+ readonly weight: 2;
736
766
  };
737
- readonly metaAttributesWrong: {
738
- readonly summary: 'prohibited or missing meta attributes';
739
- readonly why: 'Browser processes the page incorrectly';
740
- readonly wcag: '4.1';
767
+ readonly focusIndicationRisk: {
768
+ readonly summary: 'focus indication poor?';
769
+ readonly why: 'Keyboard-only user cannot choose an item to operate';
770
+ readonly wcag: '2.4.7';
771
+ readonly weight: 1;
772
+ };
773
+ readonly fontSizeAbsolute: {
774
+ readonly summary: 'font size absolute';
775
+ readonly why: 'User cannot adjust the text size for readability';
776
+ readonly wcag: '1.4.4';
777
+ readonly weight: 2;
778
+ };
779
+ readonly fontSmall: {
780
+ readonly summary: 'font small';
781
+ readonly why: 'Text is difficult to read';
782
+ readonly wcag: '1.4';
741
783
  readonly weight: 3;
742
784
  };
743
- readonly metaAttributeBad: {
744
- readonly summary: 'meta attribute value invalid';
745
- readonly why: 'Browser processes the page incorrectly';
746
- readonly wcag: '4.1';
785
+ readonly footerConfusion: {
786
+ readonly summary: 'contentinfos not distinctly named';
787
+ readonly why: 'User cannot get help on how some of the page is organized';
788
+ readonly wcag: '1.3.6';
747
789
  readonly weight: 3;
748
790
  };
749
- readonly metaDuplicated: {
750
- readonly summary: 'meta element duplicated';
751
- readonly why: 'Browser may process the page incorrectly';
752
- readonly wcag: '4.1';
791
+ readonly footerNot1: {
792
+ readonly summary: 'multiple contentinfos';
793
+ readonly why: 'User cannot get help on how some of the page is organized';
794
+ readonly wcag: '1.3.6';
795
+ readonly weight: 2;
796
+ readonly max: 1;
797
+ };
798
+ readonly footerNotTop: {
799
+ readonly summary: 'footer child of landmark';
800
+ readonly why: 'User cannot get help on how some of the page is organized';
801
+ readonly wcag: '1.3.6';
802
+ readonly weight: 1;
803
+ };
804
+ readonly formConfusion: {
805
+ readonly summary: 'forms not distinctly named';
806
+ readonly why: 'User cannot get help on how some of the page is organized';
807
+ readonly wcag: '1.3.6';
753
808
  readonly weight: 3;
754
809
  };
755
- readonly metaCharsetLate: {
756
- readonly summary: 'meta charset declared too late';
757
- readonly why: 'Browser may display incorrect text';
810
+ readonly formInTable: {
811
+ readonly summary: 'form embedded in table';
812
+ readonly why: 'Navigation in a form may confuse a keyboard-only user';
813
+ readonly wcag: '2.1.1';
814
+ readonly weight: 1;
815
+ };
816
+ readonly formsNested: {
817
+ readonly summary: 'form nested in another form';
818
+ readonly why: 'User cannot predict effect of actions in a form';
758
819
  readonly wcag: '4.1';
759
820
  readonly weight: 4;
760
821
  };
761
- readonly metaXUACompatible: {
762
- readonly summary: 'meta X-UA-Compatible incomplete';
763
- readonly why: 'Internet Explorer may display the page incorrectly';
822
+ readonly formSurpriseRisk: {
823
+ readonly summary: 'form interaction changes content?';
824
+ readonly why: 'User experiences unexpected page change when using a form';
825
+ readonly wcag: '3.2.5';
826
+ readonly weight: 1;
827
+ };
828
+ readonly fragmentaryNoticeRisk: {
829
+ readonly summary: 'assertive region not atomic';
830
+ readonly why: 'User may be unable to get help on what content has changed';
831
+ readonly wcag: '4.1.3';
832
+ readonly weight: 2;
833
+ };
834
+ readonly frameSandboxRisk: {
835
+ readonly summary: 'iframe sandbox attributes risky';
836
+ readonly why: 'Page may be unsafe to use';
764
837
  readonly wcag: '4.1';
765
- readonly weight: 3;
838
+ readonly weight: 2;
766
839
  };
767
- readonly metaMisplaced: {
768
- readonly summary: 'meta element in invalid location';
769
- readonly why: 'Browser may process the page incorrectly';
840
+ readonly gapBad: {
841
+ readonly summary: 'CSS gap invalid';
842
+ readonly why: 'Content is displayed improperly';
770
843
  readonly wcag: '4.1';
771
844
  readonly weight: 4;
772
845
  };
773
- readonly stylesheetBanned: {
774
- readonly summary: 'stylesheet prohibited';
775
- readonly why: 'Browser displays the page improperly';
776
- readonly wcag: '1.4';
846
+ readonly governedBadID: {
847
+ readonly summary: 'aria-controls or -owns invalid';
848
+ readonly why: 'Keyboard-only user cannot reach an item';
849
+ readonly wcag: '1.3.1';
850
+ readonly weight: 4;
851
+ };
852
+ readonly groupName: {
853
+ readonly summary: 'group not named';
854
+ readonly why: 'User cannot get help on the topic of a group of form items';
855
+ readonly wcag: '4.1.2';
777
856
  readonly weight: 3;
778
857
  };
779
- readonly scriptNotDeferrable: {
780
- readonly summary: 'script element invalidly deferred';
781
- readonly why: 'Browser processes the page improperly';
858
+ readonly h1Not1: {
859
+ readonly summary: 'not exactly 1 h1 heading';
860
+ readonly why: 'User cannot understand the topic of the page';
861
+ readonly wcag: '1.3.1';
862
+ readonly weight: 2;
863
+ readonly max: 1;
864
+ };
865
+ readonly h1Not1st: {
866
+ readonly summary: 'h1 not 1st heading';
867
+ readonly why: 'User cannot understand the topic of the page';
868
+ readonly wcag: '1.3.1';
869
+ readonly weight: 3;
870
+ readonly max: 1;
871
+ };
872
+ readonly haspopupBad: {
873
+ readonly summary: 'aria-haspopup invalid';
874
+ readonly why: 'Keyboard-only user cannot operate a custom tool';
782
875
  readonly wcag: '1.3.1';
783
876
  readonly weight: 4;
784
877
  };
785
- readonly scriptBanned: {
786
- readonly summary: 'script prohibited';
878
+ readonly headElementsBad: {
879
+ readonly summary: 'element in head invalid';
787
880
  readonly why: 'Browser processes the page improperly';
788
881
  readonly wcag: '4.1';
789
882
  readonly weight: 3;
790
883
  };
791
- readonly scriptElementBad: {
792
- readonly summary: 'script element invalid';
793
- readonly why: 'Browser processes the page improperly';
884
+ readonly headingConfusion: {
885
+ readonly summary: 'heading names repeated';
886
+ readonly why: 'User cannot differentiate parts of the page';
794
887
  readonly wcag: '1.3.1';
888
+ readonly weight: 2;
889
+ };
890
+ readonly headingEmpty: {
891
+ readonly summary: 'heading empty';
892
+ readonly why: 'User cannot get help on the topic of a part of the page';
893
+ readonly wcag: '2.4.6';
894
+ readonly weight: 3;
895
+ };
896
+ readonly headingImageNoText: {
897
+ readonly summary: 'heading image not named';
898
+ readonly why: 'User cannot get help understanding an image used as a heading';
899
+ readonly wcag: '1.1.1';
795
900
  readonly weight: 4;
796
901
  };
797
- readonly specRulesScriptBad: {
798
- readonly summary: 'speculation rules script element invalid';
799
- readonly why: 'Document navigation performs poorly';
902
+ readonly headingLength: {
903
+ readonly summary: 'heading abnormally long';
904
+ readonly why: 'User has difficulty understanding the topic of a part of the page';
800
905
  readonly wcag: '1.3.1';
801
906
  readonly weight: 1;
802
907
  };
803
- readonly itemIDBad: {
804
- readonly summary: 'itemid invalid';
805
- readonly why: 'User cannot get help to identify a referent';
908
+ readonly headingLevelSkip: {
909
+ readonly summary: 'heading level skipped';
910
+ readonly why: 'Helper misdescribes the page';
806
911
  readonly wcag: '1.3.1';
807
- readonly weight: 4;
912
+ readonly weight: 2;
808
913
  };
809
- readonly itemTypeBad: {
810
- readonly summary: 'itemtype invalid';
811
- readonly why: 'User cannot get help on the definition of a term';
914
+ readonly headingMisuseRisk: {
915
+ readonly summary: 'heading used for styling?';
916
+ readonly why: 'User cannot understand the page structure';
812
917
  readonly wcag: '1.3.1';
813
- readonly weight: 4;
814
- };
815
- readonly iframeTitleBad: {
816
- readonly summary: 'iframe not named';
817
- readonly why: 'User cannot get help on the topic of an embedded page';
818
- readonly wcag: '4.1.2';
819
- readonly weight: 4;
918
+ readonly weight: 2;
820
919
  };
821
- readonly roleBad: {
822
- readonly summary: 'role invalid';
823
- readonly why: 'User cannot get help on the nature of an item';
824
- readonly wcag: '4.1.2';
920
+ readonly headingNone: {
921
+ readonly summary: 'headings missing';
922
+ readonly why: 'User cannot survey parts of the page';
923
+ readonly wcag: '1.3.1';
825
924
  readonly weight: 3;
925
+ readonly max: 1;
826
926
  };
827
- readonly roleHierarchyBad: {
828
- readonly summary: 'ancestor and descendant roles incompatible';
829
- readonly why: 'User may misunderstand or be blocked from exposure to an item';
927
+ readonly headingOfNothing: {
928
+ readonly summary: 'heading heads nothing';
929
+ readonly why: 'Helper misdescribes the page';
930
+ readonly wcag: '1.3.1';
931
+ readonly weight: 2;
932
+ };
933
+ readonly headingsEmbedded: {
934
+ readonly summary: 'heading within a heading';
935
+ readonly why: 'User cannot understand the page organization';
830
936
  readonly wcag: '4.1.2';
831
937
  readonly weight: 4;
832
938
  };
833
- readonly roleRedundant: {
834
- readonly summary: 'role redundant';
835
- readonly why: 'Document includes unnecessary code';
836
- readonly wcag: '4.1.2';
837
- readonly weight: 1;
939
+ readonly headingStructure: {
940
+ readonly summary: 'heading structure illogical';
941
+ readonly why: 'Helper misdescribes the page';
942
+ readonly wcag: '1.3.1';
943
+ readonly weight: 2;
838
944
  };
839
- readonly roleConfusion: {
840
- readonly summary: 'role assigned instead of implicit';
841
- readonly why: 'User may misunderstand the purpose of an item';
842
- readonly wcag: '4.1.2';
945
+ readonly hideFailureRisk: {
946
+ readonly summary: 'false aria-hidden value risky';
947
+ readonly why: 'User may be misled by erroneously hidden or revealed page content';
948
+ readonly wcag: '1.3.1';
843
949
  readonly weight: 1;
844
950
  };
845
- readonly dirBad: {
846
- readonly summary: 'dir invalid';
847
- readonly why: 'Item may behave improperly';
848
- readonly wcag: '4.1.2';
951
+ readonly horizontalSpacingFrozen: {
952
+ readonly summary: 'horizontal text spacing frozen';
953
+ readonly why: 'User cannot adjust the horizontal text spacing for readability';
954
+ readonly wcag: '1.4.12';
955
+ readonly weight: 4;
956
+ };
957
+ readonly hoverIndication: {
958
+ readonly summary: 'hover indication poor';
959
+ readonly why: 'User cannot explore the page reliably with a mouse';
960
+ readonly wcag: '2.4';
961
+ readonly weight: 3;
962
+ };
963
+ readonly hoverSurprise: {
964
+ readonly summary: 'hovering changes content';
965
+ readonly why: 'User cannot explore the page reliably with a mouse';
966
+ readonly wcag: '3.2.5';
849
967
  readonly weight: 1;
850
968
  };
851
- readonly attributeBad: {
852
- readonly summary: 'attribute invalid';
853
- readonly why: 'Item behaves improperly';
969
+ readonly hrConfusionRisk: {
970
+ readonly summary: 'hr misused';
971
+ readonly why: 'User cannot get help on the nature of segments of the page';
854
972
  readonly wcag: '1.3.1';
855
- readonly weight: 4;
973
+ readonly weight: 1;
856
974
  };
857
- readonly sizesAttributeBad: {
858
- readonly summary: 'sizes attribute invalid';
975
+ readonly idEmpty: {
976
+ readonly summary: 'ID empty';
859
977
  readonly why: 'Item behaves improperly';
860
978
  readonly wcag: '1.3.1';
861
979
  readonly weight: 4;
862
980
  };
863
- readonly attributeValueBad: {
864
- readonly summary: 'attribute value invalid';
865
- readonly why: 'Item behaves improperly';
866
- readonly wcag: '1.3.1';
981
+ readonly iframeTitleBad: {
982
+ readonly summary: 'iframe not named';
983
+ readonly why: 'User cannot get help on the topic of an embedded page';
984
+ readonly wcag: '4.1.2';
867
985
  readonly weight: 4;
868
986
  };
869
- readonly attributeValueRisk: {
870
- readonly summary: 'attribute value bad?';
871
- readonly why: 'Item may behave improperly';
872
- readonly wcag: '4.1.2';
987
+ readonly ignorable: {
988
+ readonly summary: 'ignorable';
989
+ readonly why: 'No known impact, because the test is unreliable or invalid';
990
+ readonly wcag: '';
873
991
  readonly weight: 1;
874
992
  };
875
- readonly attributeMissing: {
876
- readonly summary: 'attribute missing';
877
- readonly why: 'Item behaves improperly';
878
- readonly wcag: '4.1.2';
879
- readonly weight: 4;
880
- };
881
- readonly roleMissing: {
882
- readonly summary: 'role missing';
883
- readonly why: 'Item behaves improperly';
884
- readonly wcag: '4.1.2';
993
+ readonly imageBanned: {
994
+ readonly summary: 'image prohibited';
995
+ readonly why: 'Browser fails to display an image';
996
+ readonly wcag: '1.4';
885
997
  readonly weight: 3;
886
998
  };
887
- readonly roleMissingRisk: {
888
- readonly summary: 'role missing?';
889
- readonly why: 'Item may behave improperly';
890
- readonly wcag: '4.1.2';
891
- readonly weight: 1;
892
- };
893
- readonly ariaMissing: {
894
- readonly summary: 'aria attribute missing';
895
- readonly why: 'Item behaves improperly';
896
- readonly wcag: '4.1.2';
999
+ readonly imageButtonNoText: {
1000
+ readonly summary: 'image button not named';
1001
+ readonly why: 'User cannot get help understanding an image used as a button';
1002
+ readonly wcag: '1.1.1';
897
1003
  readonly weight: 4;
898
1004
  };
899
- readonly ariaMissingRisk: {
900
- readonly summary: 'aria attribute missing?';
901
- readonly why: 'Item may behave improperly';
902
- readonly wcag: '4.1.2';
903
- readonly weight: 2;
904
- };
905
- readonly ariaAttributeBad: {
906
- readonly summary: 'aria attribute invalid';
907
- readonly why: 'Item behavior violates user expectations';
908
- readonly wcag: '4.1.2';
1005
+ readonly imageInputNoText: {
1006
+ readonly summary: 'image input not named';
1007
+ readonly why: 'User cannot get help understanding an image used as a submission button';
1008
+ readonly wcag: '1.1.1';
909
1009
  readonly weight: 4;
910
1010
  };
911
- readonly ariaRedundant: {
912
- readonly summary: 'aria attribute redundant';
913
- readonly why: 'Document includes unnecessary code';
914
- readonly wcag: '4.1.2';
915
- readonly weight: 1;
916
- };
917
- readonly ariaVersusHTML: {
918
- readonly summary: 'aria and HTML attributes have conflicting value';
919
- readonly why: 'User gets erroneous help with content';
920
- readonly wcag: '4.1.2';
1011
+ readonly imageLinkNoText: {
1012
+ readonly summary: 'image link not named';
1013
+ readonly why: 'User cannot get help understanding what a link points to';
1014
+ readonly wcag: '2.4.4';
921
1015
  readonly weight: 4;
922
1016
  };
923
- readonly ariaReferenceBad: {
924
- readonly summary: 'aria reference invalid';
925
- readonly why: 'Item behavior violates user expectations';
926
- readonly wcag: '1.3.1';
1017
+ readonly imageMapAreaNoText: {
1018
+ readonly summary: 'image map area not named';
1019
+ readonly why: 'User cannot get help on how to use an interactive image';
1020
+ readonly wcag: '1.1.1';
927
1021
  readonly weight: 4;
928
1022
  };
929
- readonly autocompleteBad: {
930
- readonly summary: 'autocomplete invalid';
931
- readonly why: 'User cannot get help entering personal information in a form item';
932
- readonly wcag: '1.3.5';
933
- readonly weight: 3;
1023
+ readonly imageMapNoText: {
1024
+ readonly summary: 'image map not named';
1025
+ readonly why: 'User cannot get help on the topic of an interactive image';
1026
+ readonly wcag: '1.1.1';
1027
+ readonly weight: 4;
934
1028
  };
935
- readonly autocompleteNone: {
936
- readonly summary: 'autocomplete missing';
937
- readonly why: 'User cannot get help entering personal information in a form';
938
- readonly wcag: '1.3.5';
1029
+ readonly imageNoText: {
1030
+ readonly summary: 'image not named';
1031
+ readonly why: 'User cannot get help to know what is in an image';
1032
+ readonly wcag: '1.1.1';
939
1033
  readonly weight: 4;
940
1034
  };
941
- readonly autocompleteRisk: {
942
- readonly summary: 'autocomplete dubious';
943
- readonly why: 'User may fail to get help entering personal information in a form item';
944
- readonly wcag: '1.3.5';
1035
+ readonly imagesSameAlt: {
1036
+ readonly summary: 'nearby images have same alt';
1037
+ readonly why: 'User cannot get help differentiating two adjacent images';
1038
+ readonly wcag: '1.1.1';
945
1039
  readonly weight: 1;
946
1040
  };
947
- readonly requirementBad: {
948
- readonly summary: 'requirement invalid';
949
- readonly why: 'User may fail to get help determining whether a form item must be completed';
950
- readonly wcag: '1.3.5';
951
- readonly weight: 4;
1041
+ readonly imageTextBad: {
1042
+ readonly summary: 'image named with filename';
1043
+ readonly why: 'Helper gives a user the filename of an image instead of describing it';
1044
+ readonly wcag: '1.1.1';
1045
+ readonly weight: 3;
952
1046
  };
953
- readonly requirementRedundant: {
954
- readonly summary: 'requirement redundant';
955
- readonly why: 'Help determining whether a form item must be completed is at risk of corruption';
956
- readonly wcag: '1.3.5';
1047
+ readonly imageTextImage: {
1048
+ readonly summary: 'image name contains image';
1049
+ readonly why: 'User is redundantly told an image is an image';
1050
+ readonly wcag: '1.1.1';
957
1051
  readonly weight: 1;
958
1052
  };
959
- readonly contrastAA: {
960
- readonly summary: 'contrast poor';
961
- readonly why: 'Content is difficult to understand';
962
- readonly wcag: '1.4.3';
963
- readonly weight: 4;
1053
+ readonly imageTextLong: {
1054
+ readonly summary: 'image alt long';
1055
+ readonly why: 'Helper gives a user an overly verbose explanation of an image';
1056
+ readonly wcag: '1.1.1';
1057
+ readonly weight: 2;
964
1058
  };
965
- readonly contrastAAA: {
966
- readonly summary: 'text contrast improvable';
967
- readonly why: 'Content is not easy to understand';
968
- readonly wcag: '1.4.6';
1059
+ readonly imageTextRedundant: {
1060
+ readonly summary: 'image name redundant';
1061
+ readonly why: 'Helper repeats the explanation of an image';
1062
+ readonly wcag: '1.1.1';
969
1063
  readonly weight: 1;
970
1064
  };
971
- readonly contrastRisk: {
972
- readonly summary: 'text contrast not testable';
973
- readonly why: 'Text may be difficult to read';
974
- readonly wcag: '1.4.3';
1065
+ readonly imageTextRisk: {
1066
+ readonly summary: 'image dubiously named';
1067
+ readonly why: 'Helper may describe an image inadequately';
1068
+ readonly wcag: '1.1.1';
1069
+ readonly weight: 1;
1070
+ };
1071
+ readonly imageTextSpaces: {
1072
+ readonly summary: 'image name contains only spacing characters';
1073
+ readonly why: 'User cannot get help understanding an image';
1074
+ readonly wcag: '1.1.1';
1075
+ readonly weight: 4;
1076
+ };
1077
+ readonly inconsistentStyles: {
1078
+ readonly summary: 'inconsistent heading, link, or button styles';
1079
+ readonly why: 'User cannot easily distinguish items of different types';
1080
+ readonly wcag: '3.2.4';
975
1081
  readonly weight: 1;
976
1082
  };
977
1083
  readonly infoNeedsColor: {
@@ -980,943 +1086,1018 @@ declare const issuesData: {
980
1086
  readonly wcag: '1.4.1';
981
1087
  readonly weight: 1;
982
1088
  };
983
- readonly colorNamedRisk: {
984
- readonly summary: 'color perception required?';
985
- readonly why: 'Content is impossible to perceive under some conditions';
986
- readonly wcag: '1.4.1';
1089
+ readonly inputInTable: {
1090
+ readonly summary: 'input embedded in table';
1091
+ readonly why: 'Entry of data in a form may confuse a keyboard-only user';
1092
+ readonly wcag: '2.1.1';
987
1093
  readonly weight: 1;
988
1094
  };
989
- readonly sensoryDependenceRisk: {
990
- readonly summary: 'instruction requires particular sense?';
991
- readonly why: 'Content is impossible to perceive under some conditions';
992
- readonly wcag: '1.4.1';
1095
+ readonly inputLabelInvisibleRisk: {
1096
+ readonly summary: 'input label invisible?';
1097
+ readonly why: 'User cannot understand where to enter information';
1098
+ readonly wcag: '2.4.6';
993
1099
  readonly weight: 1;
994
1100
  };
995
- readonly idEmpty: {
996
- readonly summary: 'ID empty';
997
- readonly why: 'Item behaves improperly';
998
- readonly wcag: '1.3.1';
999
- readonly weight: 4;
1000
- };
1001
- readonly targetEmpty: {
1002
- readonly summary: 'target empty';
1003
- readonly why: 'Item is displayed improperly';
1004
- readonly wcag: '1.3.1';
1005
- readonly weight: 4;
1006
- };
1007
- readonly headingsEmbedded: {
1008
- readonly summary: 'heading within a heading';
1009
- readonly why: 'User cannot understand the page organization';
1101
+ readonly inputNoText: {
1102
+ readonly summary: 'input not named';
1103
+ readonly why: 'User cannot get help on what information to enter in a form item';
1010
1104
  readonly wcag: '4.1.2';
1011
1105
  readonly weight: 4;
1012
1106
  };
1013
- readonly headingEmpty: {
1014
- readonly summary: 'heading empty';
1015
- readonly why: 'User cannot get help on the topic of a part of the page';
1016
- readonly wcag: '2.4.6';
1107
+ readonly inputOnlyPlaceholder: {
1108
+ readonly summary: 'input has placeholder instead of name';
1109
+ readonly why: 'User cannot get reliable help on what information to enter in a form item';
1110
+ readonly wcag: '4.1.2';
1017
1111
  readonly weight: 3;
1018
1112
  };
1019
- readonly headingOfNothing: {
1020
- readonly summary: 'heading heads nothing';
1021
- readonly why: 'Helper misdescribes the page';
1113
+ readonly internalLinkBroken: {
1114
+ readonly summary: 'internal link broken';
1115
+ readonly why: 'User cannot reach a promised page location';
1022
1116
  readonly wcag: '1.3.1';
1023
- readonly weight: 2;
1117
+ readonly weight: 4;
1024
1118
  };
1025
- readonly typeBad: {
1026
- readonly summary: 'type invalid';
1027
- readonly why: 'Document styles are at risk of corruption';
1119
+ readonly itemIDBad: {
1120
+ readonly summary: 'itemid invalid';
1121
+ readonly why: 'User cannot get help to identify a referent';
1028
1122
  readonly wcag: '1.3.1';
1029
1123
  readonly weight: 4;
1030
1124
  };
1031
- readonly typeRedundant: {
1032
- readonly summary: 'type redundant';
1033
- readonly why: 'Document includes unnecessary code';
1125
+ readonly itemTypeBad: {
1126
+ readonly summary: 'itemtype invalid';
1127
+ readonly why: 'User cannot get help on the definition of a term';
1034
1128
  readonly wcag: '1.3.1';
1035
- readonly weight: 1;
1036
- };
1037
- readonly imageTextRedundant: {
1038
- readonly summary: 'image name redundant';
1039
- readonly why: 'Helper repeats the explanation of an image';
1040
- readonly wcag: '1.1.1';
1041
- readonly weight: 1;
1129
+ readonly weight: 4;
1042
1130
  };
1043
- readonly decorativeTitle: {
1044
- readonly summary: 'decorative element has title';
1045
- readonly why: 'Hovering-produced information is denied to a keyboard-only user';
1046
- readonly wcag: '1.3.1';
1131
+ readonly justification: {
1132
+ readonly summary: 'text fully justified';
1133
+ readonly why: 'Text is difficult to read';
1134
+ readonly wcag: '1.4.8';
1047
1135
  readonly weight: 2;
1048
1136
  };
1049
- readonly titleRedundant: {
1050
- readonly summary: 'title attribute redundant';
1051
- readonly why: 'Helper repeats the explanation of an item';
1052
- readonly wcag: '1.3.1';
1137
+ readonly justificationRisk: {
1138
+ readonly summary: 'justification undefined?';
1139
+ readonly why: 'Text may be difficult to read';
1140
+ readonly wcag: '1.4.8';
1053
1141
  readonly weight: 1;
1054
1142
  };
1055
- readonly titleEmpty: {
1056
- readonly summary: 'title attribute empty';
1057
- readonly why: 'Hovering does not get the promised explanation of an item';
1058
- readonly wcag: '1.3.1';
1059
- readonly weight: 1;
1143
+ readonly keyboardScroll: {
1144
+ readonly summary: 'element not scrollable';
1145
+ readonly why: 'Keyboard-only user cannot scroll an item';
1146
+ readonly wcag: '2.1.1';
1147
+ readonly weight: 4;
1060
1148
  };
1061
- readonly docTypeMissing: {
1062
- readonly summary: 'DOCTYPE missing';
1063
- readonly why: 'Browser processes the page improperly';
1149
+ readonly labelBadID: {
1150
+ readonly summary: 'label reference invalid';
1151
+ readonly why: 'User cannot get help understanding an item in a form';
1064
1152
  readonly wcag: '1.3.1';
1065
1153
  readonly weight: 4;
1066
- readonly max: 1;
1067
1154
  };
1068
- readonly docTypeMisplaced: {
1069
- readonly summary: 'DOCTYPE in invalid location';
1070
- readonly why: 'Browser processes the page improperly';
1155
+ readonly labelClash: {
1156
+ readonly summary: 'label types incompatible';
1157
+ readonly why: 'User cannot get reliable help on the topics of form items';
1071
1158
  readonly wcag: '1.3.1';
1072
- readonly weight: 4;
1073
- readonly max: 1;
1159
+ readonly weight: 2;
1074
1160
  };
1075
- readonly docTypeBad: {
1076
- readonly summary: 'DOCTYPE invalid';
1077
- readonly why: 'Browser processes the page improperly';
1078
- readonly wcag: '1.3.1';
1079
- readonly weight: 3;
1080
- readonly max: 1;
1161
+ readonly labelConfusionRisk: {
1162
+ readonly summary: 'label location dubious';
1163
+ readonly why: 'User may fail to notice the explanation of an item in a form';
1164
+ readonly wcag: '3.3.2';
1165
+ readonly weight: 1;
1081
1166
  };
1082
- readonly pageTitleBad: {
1083
- readonly summary: 'page title invalid';
1084
- readonly why: 'Browser processes the page improperly';
1167
+ readonly labeledHidden: {
1168
+ readonly summary: 'control hidden but labeled';
1169
+ readonly why: 'Page includes unnecessary code';
1085
1170
  readonly wcag: '1.3.1';
1086
- readonly weight: 3;
1087
- readonly max: 1;
1088
- };
1089
- readonly pageTitle: {
1090
- readonly summary: 'page title missing';
1091
- readonly why: 'User is not informed of the topic of the page';
1092
- readonly wcag: '2.4.2';
1093
- readonly weight: 4;
1094
- readonly max: 1;
1171
+ readonly weight: 1;
1095
1172
  };
1096
- readonly headElementsBad: {
1097
- readonly summary: 'element in head invalid';
1098
- readonly why: 'Browser processes the page improperly';
1099
- readonly wcag: '4.1.1';
1173
+ readonly labelEmpty: {
1174
+ readonly summary: 'label empty';
1175
+ readonly why: 'User cannot get help on the topics of form items';
1176
+ readonly wcag: '1.3.1';
1100
1177
  readonly weight: 3;
1101
1178
  };
1102
- readonly headingLevelSkip: {
1103
- readonly summary: 'heading level skipped';
1104
- readonly why: 'Helper misdescribes the page';
1179
+ readonly labelForBad: {
1180
+ readonly summary: 'label referent ineligible';
1181
+ readonly why: 'User cannot get help understanding an item in a form';
1105
1182
  readonly wcag: '1.3.1';
1106
- readonly weight: 2;
1183
+ readonly weight: 4;
1107
1184
  };
1108
- readonly headingStructure: {
1109
- readonly summary: 'heading structure illogical';
1110
- readonly why: 'Helper misdescribes the page';
1185
+ readonly labelNot1: {
1186
+ readonly summary: 'element referenced by multiple labels';
1187
+ readonly why: 'User cannot get reliable help on the topics of form items';
1111
1188
  readonly wcag: '1.3.1';
1112
- readonly weight: 2;
1189
+ readonly weight: 1;
1113
1190
  };
1114
- readonly headingConfusion: {
1115
- readonly summary: 'heading names repeated';
1116
- readonly why: 'User cannot differentiate parts of the page';
1191
+ readonly labelNoText: {
1192
+ readonly summary: 'label not named';
1193
+ readonly why: 'User cannot get help on the topic of a form item';
1117
1194
  readonly wcag: '1.3.1';
1118
- readonly weight: 2;
1195
+ readonly weight: 4;
1119
1196
  };
1120
- readonly headingMisuseRisk: {
1121
- readonly summary: 'heading used for styling?';
1122
- readonly why: 'User cannot understand the page structure';
1123
- readonly wcag: '1.3.1';
1124
- readonly weight: 2;
1197
+ readonly labelRisk: {
1198
+ readonly summary: 'labeling risky';
1199
+ readonly why: 'User may misunderstand a form control';
1200
+ readonly wcag: '3.3.2';
1201
+ readonly weight: 1;
1125
1202
  };
1126
- readonly headingNone: {
1127
- readonly summary: 'headings missing';
1128
- readonly why: 'User cannot survey parts of the page';
1129
- readonly wcag: '1.3.1';
1203
+ readonly landmarkConfusion: {
1204
+ readonly summary: 'landmarks not distinctly named';
1205
+ readonly why: 'User cannot get help on how some of the page is organized';
1206
+ readonly wcag: '1.3.6';
1130
1207
  readonly weight: 3;
1131
- readonly max: 1;
1132
1208
  };
1133
- readonly h1Not1: {
1134
- readonly summary: 'not exactly 1 h1 heading';
1135
- readonly why: 'User cannot understand the topic of the page';
1136
- readonly wcag: '1.3.1';
1137
- readonly weight: 2;
1138
- readonly max: 1;
1209
+ readonly landmarkInNav: {
1210
+ readonly summary: 'invalid landmark child of navigation role';
1211
+ readonly why: 'User cannot get help on how some of the page is organized';
1212
+ readonly wcag: '1.3.6';
1213
+ readonly weight: 4;
1139
1214
  };
1140
- readonly h1Not1st: {
1141
- readonly summary: 'h1 not 1st heading';
1142
- readonly why: 'User cannot understand the topic of the page';
1143
- readonly wcag: '1.3.1';
1215
+ readonly languageChange: {
1216
+ readonly summary: 'language change invalid';
1217
+ readonly why: 'Speaking helper may mispronounce the text of an item';
1218
+ readonly wcag: '3.1.2';
1144
1219
  readonly weight: 3;
1145
- readonly max: 1;
1146
1220
  };
1147
- readonly docHeadingNotH1: {
1148
- readonly summary: 'primary heading not h1';
1149
- readonly why: 'User cannot understand the topic of the page';
1221
+ readonly layoutTable: {
1222
+ readonly summary: 'table misused';
1223
+ readonly why: 'Helper misinforms a user about whether items are cells of a table';
1150
1224
  readonly wcag: '1.3.1';
1151
1225
  readonly weight: 2;
1152
- readonly max: 1;
1153
1226
  };
1154
- readonly articleHeadingless: {
1155
- readonly summary: 'article heading missing';
1156
- readonly why: 'User cannot understand the topic of a part of the page';
1157
- readonly wcag: '1.3.1';
1158
- readonly weight: 1;
1227
+ readonly legendMisplaced: {
1228
+ readonly summary: 'legend location invalid';
1229
+ readonly why: 'User cannot get help on the topic of a group of form items';
1230
+ readonly wcag: '4.1.2';
1231
+ readonly weight: 4;
1159
1232
  };
1160
- readonly sectionHeadingless: {
1161
- readonly summary: 'section heading missing';
1162
- readonly why: 'User cannot understand the topic of a part of the page';
1163
- readonly wcag: '1.3.1';
1164
- readonly weight: 1;
1233
+ readonly legendMissing: {
1234
+ readonly summary: 'legend missing';
1235
+ readonly why: 'User cannot get help on the topic of a group of form items';
1236
+ readonly wcag: '4.1.2';
1237
+ readonly weight: 2;
1165
1238
  };
1166
- readonly headingLength: {
1167
- readonly summary: 'heading abnormally long';
1168
- readonly why: 'User has difficulty understanding the topic of a part of the page';
1169
- readonly wcag: '1.3.1';
1170
- readonly weight: 1;
1239
+ readonly lineHeightAbsolute: {
1240
+ readonly summary: 'line height absolute';
1241
+ readonly why: 'User cannot adjust the line height of text for readability';
1242
+ readonly wcag: '1.4.12';
1243
+ readonly weight: 2;
1171
1244
  };
1172
- readonly blockQuoteShort: {
1173
- readonly summary: 'block quote abnormally short';
1174
- readonly why: 'Content can be made easier to read';
1245
+ readonly lineHeightBad: {
1246
+ readonly summary: 'line height misdefined';
1247
+ readonly why: 'Text is difficult to read';
1175
1248
  readonly wcag: '1.4.8';
1176
- readonly weight: 1;
1249
+ readonly weight: 4;
1177
1250
  };
1178
- readonly justification: {
1179
- readonly summary: 'text fully justified';
1251
+ readonly lineHeightLow: {
1252
+ readonly summary: 'line height low';
1180
1253
  readonly why: 'Text is difficult to read';
1181
1254
  readonly wcag: '1.4.8';
1182
1255
  readonly weight: 2;
1183
1256
  };
1184
- readonly justificationRisk: {
1185
- readonly summary: 'justification undefined?';
1186
- readonly why: 'Text may be difficult to read';
1187
- readonly wcag: '1.4.8';
1188
- readonly weight: 1;
1257
+ readonly linkAltSame: {
1258
+ readonly summary: 'link image alt duplicative';
1259
+ readonly why: 'Helper repeats the explanation of a link';
1260
+ readonly wcag: '1.1.1';
1261
+ readonly weight: 2;
1189
1262
  };
1190
- readonly nonSemanticText: {
1191
- readonly summary: 'semantic properties represented with styles';
1192
- readonly why: 'User cannot get help to fully understand the text';
1263
+ readonly linkBrokenRisk: {
1264
+ readonly summary: 'link incomplete';
1265
+ readonly why: 'User may fail to reach a promised location';
1193
1266
  readonly wcag: '1.3.1';
1194
1267
  readonly weight: 2;
1195
1268
  };
1196
- readonly hrConfusionRisk: {
1197
- readonly summary: 'hr misused';
1198
- readonly why: 'User cannot get help on the nature of segments of the page';
1199
- readonly wcag: '1.3.1';
1269
+ readonly linkConfusionRisk: {
1270
+ readonly summary: 'links dubiously share name';
1271
+ readonly why: 'User may be unable to get help differentiating links';
1272
+ readonly wcag: '2.4.4';
1200
1273
  readonly weight: 1;
1201
1274
  };
1202
- readonly pseudoCodeRisk: {
1203
- readonly summary: 'pre use dubious';
1204
- readonly why: 'User may be unable to get help to fully understand the text';
1275
+ readonly linkElementBad: {
1276
+ readonly summary: 'link element invalid';
1277
+ readonly why: 'Page fails to get a needed external resource';
1205
1278
  readonly wcag: '1.3.1';
1206
- readonly weight: 1;
1279
+ readonly weight: 4;
1207
1280
  };
1208
- readonly pseudoParagraphRisk: {
1209
- readonly summary: 'double br use dubious';
1210
- readonly why: 'User may be unable to get help to fully understand the text';
1281
+ readonly linkElementMisplaced: {
1282
+ readonly summary: 'link element misplaced';
1283
+ readonly why: 'Page fails to get a needed external resource';
1211
1284
  readonly wcag: '1.3.1';
1212
- readonly weight: 1;
1285
+ readonly weight: 4;
1213
1286
  };
1214
- readonly pseudoHeadingRisk: {
1215
- readonly summary: 'heading-like styles dubious';
1216
- readonly why: 'User may be unable to understand the topic of a part of the page';
1217
- readonly wcag: '1.3.1';
1218
- readonly weight: 1;
1287
+ readonly linkElNoHref: {
1288
+ readonly summary: 'link element href missing';
1289
+ readonly why: 'User cannot reach a promised location';
1290
+ readonly wcag: '4.1';
1291
+ readonly weight: 3;
1219
1292
  };
1220
- readonly pseudoLinkScriptRisk: {
1221
- readonly summary: 'script used instead of link';
1222
- readonly why: 'Link may misbehave';
1223
- readonly wcag: '1.3.1';
1224
- readonly weight: 1;
1293
+ readonly linkElNoSource: {
1294
+ readonly summary: 'link element href or imagesrcset missing';
1295
+ readonly why: 'User cannot reach a promised location';
1296
+ readonly wcag: '4.1';
1297
+ readonly weight: 3;
1225
1298
  };
1226
- readonly pseudoLinkUnderlineRisk: {
1227
- readonly summary: 'underlining dubious';
1228
- readonly why: 'User may be misled into believing some text is a link';
1229
- readonly wcag: '1.3.1';
1299
+ readonly linkFileName: {
1300
+ readonly summary: 'link names a file instead of a purpose';
1301
+ readonly why: 'User may fail to understand what a link points to';
1302
+ readonly wcag: '2.4.4';
1230
1303
  readonly weight: 1;
1231
1304
  };
1232
- readonly listChild: {
1233
- readonly summary: 'list child invalid';
1234
- readonly why: 'User cannot get help on which items are in a list';
1235
- readonly wcag: '1.3.1';
1236
- readonly weight: 4;
1305
+ readonly linkImageTextURL: {
1306
+ readonly summary: 'text alternative of link image a URL';
1307
+ readonly why: 'User cannot understand what a link points to';
1308
+ readonly wcag: '2.4.4';
1309
+ readonly weight: 3;
1237
1310
  };
1238
- readonly listItemOrphan: {
1239
- readonly summary: 'list item orphan';
1240
- readonly why: 'User cannot get help on whether an item is in a list';
1241
- readonly wcag: '1.3.1';
1242
- readonly weight: 4;
1311
+ readonly linkIndication: {
1312
+ readonly summary: 'link indication poor';
1313
+ readonly why: 'User cannot differentiate a link from plain text';
1314
+ readonly wcag: '1.3.3';
1315
+ readonly weight: 2;
1243
1316
  };
1244
- readonly descriptionOrphan: {
1245
- readonly summary: 'description list orphan';
1246
- readonly why: 'User cannot get help on whether an item is in a list';
1247
- readonly wcag: '1.3.1';
1248
- readonly weight: 4;
1317
+ readonly linkNameRisk: {
1318
+ readonly summary: 'image link text suspect';
1319
+ readonly why: 'Keyboard-only user may misunderstand the effect of following a link';
1320
+ readonly wcag: '2.4.4';
1321
+ readonly weight: 1;
1249
1322
  };
1250
- readonly descriptionOrder: {
1251
- readonly summary: 'description list misordered';
1252
- readonly why: 'User cannot get help on the structure of a list';
1253
- readonly wcag: '1.3.1';
1323
+ readonly linkNoText: {
1324
+ readonly summary: 'link not named';
1325
+ readonly why: 'User cannot get help understanding what a link points to';
1326
+ readonly wcag: '2.4.4';
1254
1327
  readonly weight: 4;
1255
1328
  };
1256
- readonly pseudoList: {
1257
- readonly summary: 'list-like br use dubious';
1258
- readonly why: 'User cannot get help recognizing a list of items';
1259
- readonly wcag: '1.3.1';
1260
- readonly weight: 1;
1261
- };
1262
- readonly pseudoListRisk: {
1263
- readonly summary: 'list not marked as such?';
1264
- readonly why: 'User may be unable to get help on which items are in lists';
1265
- readonly wcag: '1.3.1';
1266
- readonly weight: 1;
1329
+ readonly linkPair: {
1330
+ readonly summary: 'adjacent links not combined';
1331
+ readonly why: 'Keyboard-only user expends extra effort to skip a link';
1332
+ readonly wcag: '2.4.4';
1333
+ readonly weight: 2;
1267
1334
  };
1268
- readonly pseudoOrderedListRisk: {
1269
- readonly summary: 'ordered list not coded as such?';
1270
- readonly why: 'User may be unable to get help on whether a list is ordered';
1271
- readonly wcag: '1.3.1';
1335
+ readonly linkPairRisk: {
1336
+ readonly summary: 'text and image link may merit combination';
1337
+ readonly why: 'Keyboard-only user may expend extra effort to skip a link';
1338
+ readonly wcag: '2.4.4';
1272
1339
  readonly weight: 1;
1273
1340
  };
1274
- readonly pseudoNavList: {
1275
- readonly summary: 'nav links not list';
1276
- readonly why: 'User cannot get help recognizing a list of navigation links';
1341
+ readonly linksNoNav: {
1342
+ readonly summary: 'links not grouped as nav';
1343
+ readonly why: 'User cannot get help identifying links as a navigation tool';
1277
1344
  readonly wcag: '1.3.1';
1278
1345
  readonly weight: 2;
1279
1346
  };
1280
- readonly pseudoQuoteRisk: {
1281
- readonly summary: 'quotation miscoded?';
1282
- readonly why: 'User may be unable to get help identifying a quotation';
1283
- readonly wcag: '3.2.4';
1284
- readonly weight: 1;
1347
+ readonly linkTextsSame: {
1348
+ readonly summary: 'links named identically';
1349
+ readonly why: 'User cannot get help differentiating links';
1350
+ readonly wcag: '2.4.4';
1351
+ readonly weight: 2;
1285
1352
  };
1286
- readonly nonQuoteRisk: {
1287
- readonly summary: 'nonquotation coded as block quote?';
1288
- readonly why: 'User may misunderstand text as a quotation';
1289
- readonly wcag: '3.2.4';
1353
+ readonly linkVaguenessRisk: {
1354
+ readonly summary: 'link name vague';
1355
+ readonly why: 'User may misunderstand what a link points to';
1356
+ readonly wcag: '2.4.4';
1290
1357
  readonly weight: 1;
1291
1358
  };
1292
- readonly selectNoText: {
1293
- readonly summary: 'select not named';
1294
- readonly why: 'User cannot get help on the topic of a list of options';
1295
- readonly wcag: '4.1.2';
1296
- readonly weight: 3;
1297
- };
1298
- readonly optionNoText: {
1299
- readonly summary: 'option not named';
1300
- readonly why: 'User cannot get help to understand an option';
1301
- readonly wcag: '4.1.2';
1359
+ readonly listChild: {
1360
+ readonly summary: 'list child invalid';
1361
+ readonly why: 'User cannot get help on which items are in a list';
1362
+ readonly wcag: '1.3.1';
1302
1363
  readonly weight: 4;
1303
1364
  };
1304
- readonly selectFlatRisk: {
1305
- readonly summary: 'option groups not marked?';
1306
- readonly why: 'User may be unable to get help recognizing groups of options';
1365
+ readonly listItemOrphan: {
1366
+ readonly summary: 'list item orphan';
1367
+ readonly why: 'User cannot get help on whether an item is in a list';
1307
1368
  readonly wcag: '1.3.1';
1308
- readonly weight: 1;
1309
- };
1310
- readonly noOptionFocusable: {
1311
- readonly summary: 'no option focusable';
1312
- readonly why: 'Keyboard-only user cannot choose an option';
1313
- readonly wcag: '2.1.1';
1314
- readonly weight: 1;
1369
+ readonly weight: 4;
1315
1370
  };
1316
- readonly accessKeyDuplicate: {
1317
- readonly summary: 'duplicate access key';
1318
- readonly why: 'Keyboard shortcut does not reliably trigger the intended action';
1319
- readonly wcag: '1.3.1';
1371
+ readonly mainConfusion: {
1372
+ readonly summary: 'mains not distinctly named';
1373
+ readonly why: 'User cannot get help on how some of the page is organized';
1374
+ readonly wcag: '1.3.6';
1320
1375
  readonly weight: 3;
1321
1376
  };
1322
- readonly fieldSetMissing: {
1323
- readonly summary: 'fieldset missing';
1324
- readonly why: 'User cannot get help recognizing a group of related form items';
1325
- readonly wcag: '1.3.1';
1377
+ readonly mainNone: {
1378
+ readonly summary: 'main missing';
1379
+ readonly why: 'User cannot get help on how some of the page is organized';
1380
+ readonly wcag: '1.3.6';
1326
1381
  readonly weight: 2;
1382
+ readonly max: 1;
1327
1383
  };
1328
- readonly fieldSetRisk: {
1329
- readonly summary: 'fieldset missing?';
1330
- readonly why: 'User may be unable to get help recognizing a group of related form items';
1331
- readonly wcag: '1.3.1';
1332
- readonly weight: 1;
1333
- };
1334
- readonly legendMisplaced: {
1335
- readonly summary: 'legend location invalid';
1336
- readonly why: 'User cannot get help on the topic of a group of form items';
1337
- readonly wcag: '4.1.2';
1338
- readonly weight: 4;
1339
- };
1340
- readonly legendMissing: {
1341
- readonly summary: 'legend missing';
1342
- readonly why: 'User cannot get help on the topic of a group of form items';
1343
- readonly wcag: '4.1.2';
1384
+ readonly mainNot1: {
1385
+ readonly summary: 'multiple mains';
1386
+ readonly why: 'User cannot get help on how some of the page is organized';
1387
+ readonly wcag: '1.3.6';
1344
1388
  readonly weight: 2;
1389
+ readonly max: 1;
1345
1390
  };
1346
- readonly groupName: {
1347
- readonly summary: 'group not named';
1348
- readonly why: 'User cannot get help on the topic of a group of form items';
1349
- readonly wcag: '4.1.2';
1350
- readonly weight: 3;
1351
- };
1352
- readonly layoutTable: {
1353
- readonly summary: 'table misused';
1354
- readonly why: 'Helper misinforms a user about whether items are cells of a table';
1355
- readonly wcag: '1.3.1';
1391
+ readonly mainNotTop: {
1392
+ readonly summary: 'main child of landmark';
1393
+ readonly why: 'User cannot get help on how some of the page is organized';
1394
+ readonly wcag: '1.3.6';
1356
1395
  readonly weight: 2;
1357
1396
  };
1358
- readonly tabularTableless: {
1359
- readonly summary: 'table not marked as such';
1360
- readonly why: 'Helper misinforms a user about whether items are cells of a table';
1397
+ readonly menuItemless: {
1398
+ readonly summary: 'menu items missing';
1399
+ readonly why: 'User cannot reach promised menu items';
1361
1400
  readonly wcag: '1.3.1';
1362
- readonly weight: 3;
1401
+ readonly weight: 4;
1363
1402
  };
1364
- readonly tableColumnsVary: {
1365
- readonly summary: 'table column counts vary';
1366
- readonly why: 'User cannot get help on the dimensions of a table';
1367
- readonly wcag: '1.3.1';
1368
- readonly weight: 3;
1403
+ readonly menuItemNoText: {
1404
+ readonly summary: 'menu item not named';
1405
+ readonly why: 'User cannot get help explaing a menu item';
1406
+ readonly wcag: '4.1.2';
1407
+ readonly weight: 4;
1369
1408
  };
1370
- readonly tableCaption: {
1371
- readonly summary: 'table caption missing';
1372
- readonly why: 'User cannot get help on the topic of a table';
1373
- readonly wcag: '1.3.1';
1374
- readonly weight: 1;
1409
+ readonly menuNavigation: {
1410
+ readonly summary: 'menu navigation nonstandard';
1411
+ readonly why: 'Menus behave improperly for a keyboard-only user';
1412
+ readonly wcag: '2.1.1';
1413
+ readonly weight: 2;
1375
1414
  };
1376
- readonly tableCaptionLoc: {
1377
- readonly summary: 'table caption location invalid';
1378
- readonly why: 'User cannot get help on the topic of a table';
1379
- readonly wcag: '1.3.1';
1415
+ readonly metaAttributeBad: {
1416
+ readonly summary: 'meta attribute value invalid';
1417
+ readonly why: 'Browser processes the page incorrectly';
1418
+ readonly wcag: '4.1';
1380
1419
  readonly weight: 3;
1381
1420
  };
1382
- readonly tableCapSum: {
1383
- readonly summary: 'table summary duplicative';
1384
- readonly why: 'Helper informs a user repetitively about the topic of a table';
1385
- readonly wcag: '1.3.1';
1386
- readonly weight: 2;
1421
+ readonly metaAttributesWrong: {
1422
+ readonly summary: 'prohibited or missing meta attributes';
1423
+ readonly why: 'Browser processes the page incorrectly';
1424
+ readonly wcag: '4.1';
1425
+ readonly weight: 3;
1387
1426
  };
1388
- readonly tableSum: {
1389
- readonly summary: 'table summary empty';
1390
- readonly why: 'User cannot get help summarizing a table';
1391
- readonly wcag: '1.3.1';
1427
+ readonly metaBansZoom: {
1428
+ readonly summary: 'meta bans zoom';
1429
+ readonly why: 'User cannot adjust the page size for readability';
1430
+ readonly wcag: '1.4.4';
1392
1431
  readonly weight: 4;
1432
+ readonly max: 1;
1393
1433
  };
1394
- readonly tableLabelID: {
1395
- readonly summary: 'table aria-labelledby invalid';
1396
- readonly why: 'User cannot get help on the topic of a table';
1397
- readonly wcag: '1.3.1';
1434
+ readonly metaCharsetLate: {
1435
+ readonly summary: 'meta charset declared too late';
1436
+ readonly why: 'Browser may display incorrect text';
1437
+ readonly wcag: '4.1';
1398
1438
  readonly weight: 4;
1399
1439
  };
1400
- readonly tableDescriptionID: {
1401
- readonly summary: 'table aria-describedby invalid';
1402
- readonly why: 'User cannot get help on the topic of a table';
1403
- readonly wcag: '1.3.1';
1404
- readonly weight: 4;
1440
+ readonly metaDuplicated: {
1441
+ readonly summary: 'meta element duplicated';
1442
+ readonly why: 'Browser may process the page incorrectly';
1443
+ readonly wcag: '4.1';
1444
+ readonly weight: 3;
1405
1445
  };
1406
- readonly cellHeadersNotInferrable: {
1407
- readonly summary: 'cell headers not inferrable';
1408
- readonly why: 'User cannot get help on relationships in a table';
1409
- readonly wcag: '1.3.1';
1446
+ readonly metaMisplaced: {
1447
+ readonly summary: 'meta element in invalid location';
1448
+ readonly why: 'Browser may process the page incorrectly';
1449
+ readonly wcag: '4.1';
1410
1450
  readonly weight: 4;
1411
1451
  };
1412
- readonly cellHeadersOutsideTable: {
1413
- readonly summary: 'cell headers outside table';
1414
- readonly why: 'User cannot get help on relationships in a table';
1452
+ readonly metaXUACompatible: {
1453
+ readonly summary: 'meta X-UA-Compatible incomplete';
1454
+ readonly why: 'Internet Explorer may display the page incorrectly';
1455
+ readonly wcag: '4.1';
1456
+ readonly weight: 3;
1457
+ };
1458
+ readonly multipleLabelees: {
1459
+ readonly summary: 'labeled element ambiguous';
1460
+ readonly why: 'User cannot get help on the topic of a form item';
1415
1461
  readonly wcag: '1.3.1';
1416
1462
  readonly weight: 4;
1417
1463
  };
1418
- readonly cellHeadersAmbiguityRisk: {
1419
- readonly summary: 'cell headers ambiguous?';
1420
- readonly why: 'User may be unable to get help on relationships in a table';
1421
- readonly wcag: '1.3.1';
1422
- readonly weight: 2;
1464
+ readonly navConfusion: {
1465
+ readonly summary: 'navigations not distinctly named';
1466
+ readonly why: 'User cannot get help on how some of the page is organized';
1467
+ readonly wcag: '1.3.6';
1468
+ readonly weight: 3;
1423
1469
  };
1424
- readonly tableHeaderless: {
1425
- readonly summary: 'table headers missing';
1426
- readonly why: 'User cannot get help on relationships in a table';
1427
- readonly wcag: '1.3.1';
1470
+ readonly negativeIndent: {
1471
+ readonly summary: 'negative text-indent';
1472
+ readonly why: 'Helper may hide content from a user';
1473
+ readonly wcag: '4.1';
1428
1474
  readonly weight: 3;
1429
1475
  };
1430
- readonly tableCellHeaderless: {
1431
- readonly summary: 'table-cell header missing';
1432
- readonly why: 'User cannot get help on the topic of a table cell';
1433
- readonly wcag: '1.3.1';
1476
+ readonly nestingBad: {
1477
+ readonly summary: 'nesting invalid';
1478
+ readonly why: 'Page contains invalid code';
1479
+ readonly wcag: '4.1';
1434
1480
  readonly weight: 3;
1435
1481
  };
1436
- readonly tableHeaderCellless: {
1437
- readonly summary: 'table-header cell missing';
1438
- readonly why: 'User cannot get help on relationships in a table';
1439
- readonly wcag: '1.3.1';
1440
- readonly weight: 4;
1482
+ readonly newTabSurprise: {
1483
+ readonly summary: 'tab-opening link action unstated';
1484
+ readonly why: 'Following a link opens a new window, surprising a user';
1485
+ readonly wcag: '3.2.5';
1486
+ readonly weight: 3;
1441
1487
  };
1442
- readonly TableHeaderScopeRisk: {
1443
- readonly summary: 'Table scope ambiguous?';
1444
- readonly why: 'User may be unable to get help on relationships in a table';
1445
- readonly wcag: '1.3.1';
1488
+ readonly newTabSurpriseRisk: {
1489
+ readonly summary: 'tab-opening link action unstated?';
1490
+ readonly why: 'Following a link opens a new window, possibly surprising a user';
1491
+ readonly wcag: '3.2.5';
1446
1492
  readonly weight: 1;
1447
1493
  };
1448
- readonly tableHeaderEmpty: {
1449
- readonly summary: 'table header empty';
1450
- readonly why: 'User cannot get help on relationships in a table';
1451
- readonly wcag: '1.3.1';
1494
+ readonly noLandmarks: {
1495
+ readonly summary: 'no landmarks';
1496
+ readonly why: 'User cannot get help on how the page is organized';
1497
+ readonly wcag: '1.3.6';
1452
1498
  readonly weight: 2;
1499
+ readonly max: 1;
1453
1500
  };
1454
- readonly tableHead: {
1455
- readonly summary: 'thead missing';
1456
- readonly why: 'User cannot get help on parts of a table';
1501
+ readonly nonElement: {
1502
+ readonly summary: 'element unknown';
1503
+ readonly why: 'Page includes an unknown element that the browser cannot process';
1504
+ readonly wcag: '4.1';
1505
+ readonly weight: 4;
1506
+ };
1507
+ readonly nonLabelableRole: {
1508
+ readonly summary: 'aria-label on non-labelable role';
1509
+ readonly why: 'User is misinformed about an item';
1457
1510
  readonly wcag: '1.3.1';
1458
1511
  readonly weight: 1;
1459
1512
  };
1460
- readonly tableBody: {
1461
- readonly summary: 'tbody missing';
1462
- readonly why: 'User cannot get help on parts of a table';
1463
- readonly wcag: '1.3.1';
1513
+ readonly nonQuoteRisk: {
1514
+ readonly summary: 'nonquotation coded as block quote?';
1515
+ readonly why: 'User may misunderstand text as a quotation';
1516
+ readonly wcag: '3.2.4';
1464
1517
  readonly weight: 1;
1465
1518
  };
1466
- readonly tableEmbedded: {
1467
- readonly summary: 'table embedded in table';
1468
- readonly why: 'User cannot get help on relationships in a table';
1519
+ readonly nonSemanticText: {
1520
+ readonly summary: 'semantic properties represented with styles';
1521
+ readonly why: 'User cannot get help to fully understand the text';
1469
1522
  readonly wcag: '1.3.1';
1470
1523
  readonly weight: 2;
1471
1524
  };
1472
- readonly divInTable: {
1473
- readonly summary: 'div embedded in table';
1474
- readonly why: 'Blocks of content within a table cell may confuse a user';
1475
- readonly wcag: '1.4';
1525
+ readonly nonWebLink: {
1526
+ readonly summary: 'link to non-web resource';
1527
+ readonly why: 'Page points to harder-to-use resources';
1528
+ readonly wcag: '4.1';
1476
1529
  readonly weight: 1;
1477
1530
  };
1478
- readonly formInTable: {
1479
- readonly summary: 'form embedded in table';
1480
- readonly why: 'Navigation in a form may confuse a keyboard-only user';
1531
+ readonly noOptionFocusable: {
1532
+ readonly summary: 'no option focusable';
1533
+ readonly why: 'Keyboard-only user cannot choose an option';
1481
1534
  readonly wcag: '2.1.1';
1482
1535
  readonly weight: 1;
1483
1536
  };
1484
- readonly inputInTable: {
1485
- readonly summary: 'input embedded in table';
1486
- readonly why: 'Entry of data in a form may confuse a keyboard-only user';
1487
- readonly wcag: '2.1.1';
1537
+ readonly noScriptRisk: {
1538
+ readonly summary: 'noscript element not equivalent?';
1539
+ readonly why: 'User who has disabled JavaScript may be denied some content';
1540
+ readonly wcag: '4.1';
1488
1541
  readonly weight: 1;
1489
1542
  };
1490
- readonly tableHeading: {
1491
- readonly summary: 'heading located in table';
1492
- readonly why: 'Complex relationships in a table may confuse a user';
1493
- readonly wcag: '1.3.1';
1543
+ readonly notValidatable: {
1544
+ readonly summary: 'item makes testing inconclusive';
1545
+ readonly why: 'Item prevents a conclusive accessibility test';
1546
+ readonly wcag: '4.1';
1494
1547
  readonly weight: 1;
1495
1548
  };
1496
- readonly controlNoText: {
1497
- readonly summary: 'control not named';
1498
- readonly why: 'User cannot get help on how to operate a form item';
1499
- readonly wcag: '1.3.1';
1500
- readonly weight: 4;
1549
+ readonly objectAudioRisk: {
1550
+ readonly summary: 'non-audio element plays audio?';
1551
+ readonly why: 'User may get inadequate help consuming audio content';
1552
+ readonly wcag: '3.2';
1553
+ readonly weight: 1;
1501
1554
  };
1502
- readonly controlLabelInvisible: {
1503
- readonly summary: 'control label invisible';
1504
- readonly why: 'User cannot understand how to operate a form item';
1505
- readonly wcag: '2.4.6';
1555
+ readonly objectBlurKeyboardRisk: {
1556
+ readonly summary: 'object not keyboard-blurrable?';
1557
+ readonly why: 'Custom item may trap a keyboard-only user';
1558
+ readonly wcag: '2.1.1';
1559
+ readonly weight: 1;
1560
+ };
1561
+ readonly objectNoText: {
1562
+ readonly summary: 'object not named';
1563
+ readonly why: 'User cannot get help explaining a custom item';
1564
+ readonly wcag: '1.1.1';
1506
1565
  readonly weight: 4;
1507
1566
  };
1508
- readonly inputLabelInvisibleRisk: {
1509
- readonly summary: 'input label invisible?';
1510
- readonly why: 'User cannot understand where to enter information';
1511
- readonly wcag: '2.4.6';
1567
+ readonly objectTextRisk: {
1568
+ readonly summary: 'object dubiously named';
1569
+ readonly why: 'Helper may explain a custom item inadequately';
1570
+ readonly wcag: '1.1.1';
1512
1571
  readonly weight: 1;
1513
1572
  };
1514
- readonly titleAsLabel: {
1515
- readonly summary: 'control has title instead of label';
1516
- readonly why: 'User cannot get help on how to operate a form item';
1517
- readonly wcag: '2.4.6';
1573
+ readonly obsolete: {
1574
+ readonly summary: 'code obsolete';
1575
+ readonly why: 'Page contains code that is no longer standard';
1576
+ readonly wcag: '4.1';
1518
1577
  readonly weight: 3;
1519
1578
  };
1520
- readonly visibleLabelNotInName: {
1521
- readonly summary: 'visible label not in name';
1522
- readonly why: 'User cannot get help choosing a form control to operate';
1523
- readonly wcag: '2.5.3';
1524
- readonly weight: 3;
1579
+ readonly optionNoText: {
1580
+ readonly summary: 'option not named';
1581
+ readonly why: 'User cannot get help to understand an option';
1582
+ readonly wcag: '4.1.2';
1583
+ readonly weight: 4;
1525
1584
  };
1526
- readonly targetSmall: {
1527
- readonly summary: 'target small';
1528
- readonly why: 'User cannot reliably choose an item to click or tap';
1529
- readonly wcag: '2.5.5';
1585
+ readonly orientationRisk: {
1586
+ readonly summary: 'orientation issues not testable';
1587
+ readonly why: 'User may need to read sideways after rotating a device';
1588
+ readonly wcag: '1.3.4';
1530
1589
  readonly weight: 1;
1590
+ readonly max: 1;
1531
1591
  };
1532
- readonly targetTiny: {
1533
- readonly summary: 'target very small';
1534
- readonly why: 'User cannot reliably choose an item to click or tap';
1535
- readonly wcag: '2.5.8';
1536
- readonly weight: 3;
1537
- };
1538
- readonly targetsNear: {
1539
- readonly summary: 'small targets too near to each other';
1540
- readonly why: 'User cannot reliably choose an item to click or tap';
1541
- readonly wcag: '2.5.8';
1542
- readonly weight: 3;
1592
+ readonly overflowHidden: {
1593
+ readonly summary: 'overflow hidden';
1594
+ readonly why: 'User cannot enlarge the text for readability';
1595
+ readonly wcag: '1.4.4';
1596
+ readonly weight: 4;
1543
1597
  };
1544
- readonly visibleBulk: {
1545
- readonly summary: 'large visible-element count';
1546
- readonly why: 'User cannot easily find items in the page';
1547
- readonly wcag: '2.4';
1598
+ readonly overflowHiddenRisk: {
1599
+ readonly summary: 'overflow hidden?';
1600
+ readonly why: 'User may be unable to enlarge the text for readability';
1601
+ readonly wcag: '1.4.4';
1548
1602
  readonly weight: 1;
1603
+ };
1604
+ readonly paddingBad: {
1605
+ readonly summary: 'CSS padding invalid';
1606
+ readonly why: 'Content is displayed improperly';
1607
+ readonly wcag: '4.1';
1608
+ readonly weight: 4;
1609
+ };
1610
+ readonly pageLanguage: {
1611
+ readonly summary: 'page language missing';
1612
+ readonly why: 'Speaking helper may mispronounce the page text';
1613
+ readonly wcag: '3.1.1';
1614
+ readonly weight: 4;
1549
1615
  readonly max: 1;
1550
1616
  };
1551
- readonly activeEmbedding: {
1552
- readonly summary: 'control child of link or button';
1553
- readonly why: 'User cannot reliably choose an item to click or tap';
1554
- readonly wcag: '2.5.5';
1617
+ readonly pageLanguageBad: {
1618
+ readonly summary: 'page language invalid';
1619
+ readonly why: 'Speaking helper may mispronounce the page text';
1620
+ readonly wcag: '3.1.1';
1621
+ readonly weight: 4;
1622
+ readonly max: 1;
1623
+ };
1624
+ readonly pageNewWindow: {
1625
+ readonly summary: 'page immediately opens window';
1626
+ readonly why: 'User promised a page gets another page, too';
1627
+ readonly wcag: '3.2.5';
1555
1628
  readonly weight: 3;
1629
+ readonly max: 1;
1556
1630
  };
1557
- readonly unfocusability: {
1558
- readonly summary: 'element not focusable';
1559
- readonly why: 'Keyboard-only user cannot choose an item to operate';
1560
- readonly wcag: '2.1.1';
1631
+ readonly pageTitle: {
1632
+ readonly summary: 'page title missing';
1633
+ readonly why: 'User is not informed of the topic of the page';
1634
+ readonly wcag: '2.4.2';
1561
1635
  readonly weight: 4;
1636
+ readonly max: 1;
1562
1637
  };
1563
- readonly focusDiscrepancy: {
1564
- readonly summary: 'Tab-focusable elements wrong';
1565
- readonly why: 'Item selections by a keyboard-only user are useless or impossible';
1566
- readonly wcag: '2.1.1';
1567
- readonly weight: 4;
1638
+ readonly pageTitleBad: {
1639
+ readonly summary: 'page title invalid';
1640
+ readonly why: 'Browser processes the page improperly';
1641
+ readonly wcag: '2.4.2';
1642
+ readonly weight: 3;
1643
+ readonly max: 1;
1568
1644
  };
1569
- readonly focusIndicationBad: {
1570
- readonly summary: 'focus indication poor';
1571
- readonly why: 'Keyboard-only user cannot choose an item to operate';
1572
- readonly wcag: '2.4.7';
1645
+ readonly parentBad: {
1646
+ readonly summary: 'parent invalid';
1647
+ readonly why: 'User cannot properly operate an item';
1648
+ readonly wcag: '1.3.1';
1573
1649
  readonly weight: 4;
1574
1650
  };
1575
- readonly focusIndicationImprovable: {
1576
- readonly summary: 'focus indication improvable';
1577
- readonly why: 'Keyboard-only user cannot easily choose an item to operate';
1578
- readonly wcag: '2.4.7';
1579
- readonly weight: 2;
1651
+ readonly parentMissing: {
1652
+ readonly summary: 'parent missing';
1653
+ readonly why: 'Keyboard-only user cannot operate a custom tool';
1654
+ readonly wcag: '1.3.1';
1655
+ readonly weight: 4;
1580
1656
  };
1581
- readonly focusIndicationRisk: {
1582
- readonly summary: 'focus indication poor?';
1583
- readonly why: 'Keyboard-only user cannot choose an item to operate';
1584
- readonly wcag: '2.4.7';
1585
- readonly weight: 1;
1657
+ readonly parseError: {
1658
+ readonly summary: 'code invalid';
1659
+ readonly why: 'Invalid code in the page may prevent a helper from working';
1660
+ readonly wcag: '4.1';
1661
+ readonly weight: 3;
1586
1662
  };
1587
- readonly boxInvisibleRisk: {
1588
- readonly summary: 'border or outline invisible?';
1589
- readonly why: 'User cannot perceive the boundary of an item';
1590
- readonly wcag: '2.5.8';
1591
- readonly weight: 1;
1663
+ readonly placeholderPlusAria: {
1664
+ readonly summary: 'element has competing placeholder attributes';
1665
+ readonly why: 'User gets conflicting help on what information to enter in a form item';
1666
+ readonly wcag: '4.1.2';
1667
+ readonly weight: 3;
1592
1668
  };
1593
- readonly allCaps: {
1594
- readonly summary: 'all-capital text';
1595
- readonly why: 'Text is difficult to read';
1596
- readonly wcag: '3.1.5';
1669
+ readonly positionSticky: {
1670
+ readonly summary: 'position sticky';
1671
+ readonly why: 'User may be unable to see needed content or may be forced to scroll in both dimensions';
1672
+ readonly wcag: '1.4.10';
1597
1673
  readonly weight: 1;
1598
1674
  };
1599
- readonly allItalics: {
1600
- readonly summary: 'all-italic text';
1601
- readonly why: 'Text is difficult to read';
1602
- readonly wcag: '3.1.5';
1675
+ readonly preselectedOption: {
1676
+ readonly summary: 'no default option';
1677
+ readonly why: 'User may risk erroneously submitting a form';
1678
+ readonly wcag: '4.1.2';
1603
1679
  readonly weight: 1;
1604
1680
  };
1605
- readonly textDistortion: {
1606
- readonly summary: 'text distortion';
1607
- readonly why: 'Text is difficult to read';
1608
- readonly wcag: '3.1.5';
1609
- readonly weight: 1;
1681
+ readonly presentationChild: {
1682
+ readonly summary: 'presentation element has child';
1683
+ readonly why: 'Keyboard-only user cannot reach an item intended to be reachable';
1684
+ readonly wcag: '1.3.1';
1685
+ readonly weight: 4;
1610
1686
  };
1611
- readonly noLandmarks: {
1612
- readonly summary: 'no landmarks';
1613
- readonly why: 'User cannot get help on how the page is organized';
1614
- readonly wcag: '1.3.6';
1615
- readonly weight: 2;
1616
- readonly max: 1;
1687
+ readonly presentationGlobal: {
1688
+ readonly summary: 'global ARIA attribute nullifies presentation role';
1689
+ readonly why: 'User encounters content intended to be hidden';
1690
+ readonly wcag: '1.3.1';
1691
+ readonly weight: 1;
1617
1692
  };
1618
- readonly contentBeyondLandmarks: {
1619
- readonly summary: 'content beyond landmarks';
1620
- readonly why: 'User cannot get help on how some of the page is organized';
1621
- readonly wcag: '1.3.6';
1693
+ readonly presentationTabIndexed: {
1694
+ readonly summary: 'tabindex attribute nullifies presentation role';
1695
+ readonly why: 'User encounters content intended to be hidden';
1696
+ readonly wcag: '1.3.1';
1622
1697
  readonly weight: 1;
1623
1698
  };
1624
- readonly footerNotTop: {
1625
- readonly summary: 'footer child of landmark';
1626
- readonly why: 'User cannot get help on how some of the page is organized';
1627
- readonly wcag: '1.3.6';
1699
+ readonly progressNoText: {
1700
+ readonly summary: 'progress bar not named';
1701
+ readonly why: 'User cannot get help understanding the state of a process';
1702
+ readonly wcag: '4.1.2';
1703
+ readonly weight: 4;
1704
+ };
1705
+ readonly pseudoCodeRisk: {
1706
+ readonly summary: 'pre use dubious';
1707
+ readonly why: 'User may be unable to get help to fully understand the text';
1708
+ readonly wcag: '1.3.1';
1628
1709
  readonly weight: 1;
1629
1710
  };
1630
- readonly asideNotTop: {
1631
- readonly summary: 'aside child of landmark';
1632
- readonly why: 'User cannot get help on how some of the page is organized';
1633
- readonly wcag: '1.3.6';
1634
- readonly weight: 2;
1711
+ readonly pseudoHeadingRisk: {
1712
+ readonly summary: 'heading-like styles dubious';
1713
+ readonly why: 'User may be unable to understand the topic of a part of the page';
1714
+ readonly wcag: '1.3.1';
1715
+ readonly weight: 1;
1635
1716
  };
1636
- readonly mainNotTop: {
1637
- readonly summary: 'main child of landmark';
1638
- readonly why: 'User cannot get help on how some of the page is organized';
1639
- readonly wcag: '1.3.6';
1640
- readonly weight: 2;
1717
+ readonly pseudoLinkScriptRisk: {
1718
+ readonly summary: 'script used instead of link';
1719
+ readonly why: 'Link may misbehave';
1720
+ readonly wcag: '1.3.1';
1721
+ readonly weight: 1;
1641
1722
  };
1642
- readonly mainConfusion: {
1643
- readonly summary: 'mains not distinctly named';
1644
- readonly why: 'User cannot get help on how some of the page is organized';
1645
- readonly wcag: '1.3.6';
1646
- readonly weight: 3;
1723
+ readonly pseudoLinkUnderlineRisk: {
1724
+ readonly summary: 'underlining dubious';
1725
+ readonly why: 'User may be misled into believing some text is a link';
1726
+ readonly wcag: '1.3.1';
1727
+ readonly weight: 1;
1647
1728
  };
1648
- readonly mainNone: {
1649
- readonly summary: 'main missing';
1650
- readonly why: 'User cannot get help on how some of the page is organized';
1651
- readonly wcag: '1.3.6';
1652
- readonly weight: 2;
1653
- readonly max: 1;
1729
+ readonly pseudoList: {
1730
+ readonly summary: 'list-like br use dubious';
1731
+ readonly why: 'User cannot get help recognizing a list of items';
1732
+ readonly wcag: '1.3.1';
1733
+ readonly weight: 1;
1654
1734
  };
1655
- readonly mainNot1: {
1656
- readonly summary: 'multiple mains';
1657
- readonly why: 'User cannot get help on how some of the page is organized';
1658
- readonly wcag: '1.3.6';
1659
- readonly weight: 2;
1660
- readonly max: 1;
1735
+ readonly pseudoListRisk: {
1736
+ readonly summary: 'list not marked as such?';
1737
+ readonly why: 'User may be unable to get help on which items are in lists';
1738
+ readonly wcag: '1.3.1';
1739
+ readonly weight: 1;
1661
1740
  };
1662
- readonly bannerNot1: {
1663
- readonly summary: 'multiple banners';
1664
- readonly why: 'User cannot get help on how some of the page is organized';
1665
- readonly wcag: '1.3.6';
1741
+ readonly pseudoNavList: {
1742
+ readonly summary: 'nav links not list';
1743
+ readonly why: 'User cannot get help recognizing a list of navigation links';
1744
+ readonly wcag: '1.3.1';
1666
1745
  readonly weight: 2;
1667
- readonly max: 1;
1668
1746
  };
1669
- readonly bannerNotTop: {
1670
- readonly summary: 'banner child of landmark';
1671
- readonly why: 'User cannot get help on how some of the page is organized';
1672
- readonly wcag: '1.3.6';
1673
- readonly weight: 2;
1747
+ readonly pseudoOrderedListRisk: {
1748
+ readonly summary: 'ordered list not coded as such?';
1749
+ readonly why: 'User may be unable to get help on whether a list is ordered';
1750
+ readonly wcag: '1.3.1';
1751
+ readonly weight: 1;
1674
1752
  };
1675
- readonly footerConfusion: {
1676
- readonly summary: 'contentinfos not distinctly named';
1677
- readonly why: 'User cannot get help on how some of the page is organized';
1678
- readonly wcag: '1.3.6';
1679
- readonly weight: 3;
1753
+ readonly pseudoParagraphRisk: {
1754
+ readonly summary: 'double br use dubious';
1755
+ readonly why: 'User may be unable to get help to fully understand the text';
1756
+ readonly wcag: '1.3.1';
1757
+ readonly weight: 1;
1680
1758
  };
1681
- readonly footerNot1: {
1682
- readonly summary: 'multiple contentinfos';
1683
- readonly why: 'User cannot get help on how some of the page is organized';
1684
- readonly wcag: '1.3.6';
1685
- readonly weight: 2;
1686
- readonly max: 1;
1759
+ readonly pseudoQuoteRisk: {
1760
+ readonly summary: 'quotation miscoded?';
1761
+ readonly why: 'User may be unable to get help identifying a quotation';
1762
+ readonly wcag: '3.2.4';
1763
+ readonly weight: 1;
1687
1764
  };
1688
- readonly landmarkConfusion: {
1689
- readonly summary: 'landmarks not distinctly named';
1690
- readonly why: 'User cannot get help on how some of the page is organized';
1691
- readonly wcag: '1.3.6';
1765
+ readonly refresh: {
1766
+ readonly summary: 'element reloads or redirects';
1767
+ readonly why: 'Page change may surprise a user';
1768
+ readonly wcag: '2.2.1';
1692
1769
  readonly weight: 3;
1693
1770
  };
1694
- readonly documentConfusion: {
1695
- readonly summary: 'page elements not distinctly named';
1771
+ readonly regionConfusion: {
1772
+ readonly summary: 'regions not distinctly named';
1696
1773
  readonly why: 'User cannot get help on how some of the page is organized';
1697
1774
  readonly wcag: '1.3.6';
1698
1775
  readonly weight: 3;
1699
1776
  };
1700
- readonly formsNested: {
1701
- readonly summary: 'form nested in another form';
1702
- readonly why: 'User cannot predict effect of actions in a form';
1703
- readonly wcag: '4.1';
1777
+ readonly regionNoText: {
1778
+ readonly summary: 'region not named';
1779
+ readonly why: 'User cannot get help surveying the parts of the page';
1780
+ readonly wcag: '4.1.2';
1704
1781
  readonly weight: 4;
1705
1782
  };
1706
- readonly formConfusion: {
1707
- readonly summary: 'forms not distinctly named';
1708
- readonly why: 'User cannot get help on how some of the page is organized';
1709
- readonly wcag: '1.3.6';
1710
- readonly weight: 3;
1783
+ readonly repeatedContentRisk: {
1784
+ readonly summary: 'skip method missing or invalid?';
1785
+ readonly why: 'Keyboard-only user may be unable easily to reach the specific content of the page';
1786
+ readonly wcag: '2.4.1';
1787
+ readonly weight: 1;
1788
+ readonly max: 2;
1711
1789
  };
1712
- readonly applicationNoText: {
1713
- readonly summary: 'application not named';
1714
- readonly why: 'User cannot get help on how some of the page is organized';
1715
- readonly wcag: '1.3.6';
1790
+ readonly requirementBad: {
1791
+ readonly summary: 'requirement invalid';
1792
+ readonly why: 'User may fail to get help determining whether a form item must be completed';
1793
+ readonly wcag: '1.3.5';
1716
1794
  readonly weight: 4;
1717
1795
  };
1718
- readonly applicationConfusion: {
1719
- readonly summary: 'applications not distinctly named';
1720
- readonly why: 'User cannot get help on how some of the page is organized';
1721
- readonly wcag: '1.3.6';
1722
- readonly weight: 3;
1796
+ readonly requirementRedundant: {
1797
+ readonly summary: 'requirement redundant';
1798
+ readonly why: 'Help determining whether a form item must be completed is at risk of corruption';
1799
+ readonly wcag: '1.3.5';
1800
+ readonly weight: 1;
1723
1801
  };
1724
- readonly asideConfusion: {
1725
- readonly summary: 'asides not distinctly named';
1726
- readonly why: 'User cannot get help on how some of the page is organized';
1727
- readonly wcag: '1.3.6';
1802
+ readonly roleBad: {
1803
+ readonly summary: 'role invalid';
1804
+ readonly why: 'User cannot get help on the nature of an item';
1805
+ readonly wcag: '4.1.2';
1728
1806
  readonly weight: 3;
1729
1807
  };
1730
- readonly bannerConfusion: {
1731
- readonly summary: 'banners not distinctly named';
1732
- readonly why: 'User cannot get help on how some of the page is organized';
1733
- readonly wcag: '1.3.6';
1808
+ readonly roleConfusion: {
1809
+ readonly summary: 'role assigned instead of implicit';
1810
+ readonly why: 'User may misunderstand the purpose of an item';
1811
+ readonly wcag: '4.1.2';
1812
+ readonly weight: 1;
1813
+ };
1814
+ readonly roleHierarchyBad: {
1815
+ readonly summary: 'ancestor and descendant roles incompatible';
1816
+ readonly why: 'User may misunderstand or be blocked from exposure to an item';
1817
+ readonly wcag: '4.1.2';
1818
+ readonly weight: 4;
1819
+ };
1820
+ readonly roleMissing: {
1821
+ readonly summary: 'role missing';
1822
+ readonly why: 'Item behaves improperly';
1823
+ readonly wcag: '4.1.2';
1734
1824
  readonly weight: 3;
1735
1825
  };
1736
- readonly navConfusion: {
1737
- readonly summary: 'navigations not distinctly named';
1738
- readonly why: 'User cannot get help on how some of the page is organized';
1739
- readonly wcag: '1.3.6';
1826
+ readonly roleMissingRisk: {
1827
+ readonly summary: 'role missing?';
1828
+ readonly why: 'Item may behave improperly';
1829
+ readonly wcag: '4.1.2';
1830
+ readonly weight: 1;
1831
+ };
1832
+ readonly roleNoText: {
1833
+ readonly summary: 'no role-required name';
1834
+ readonly why: 'User cannot get help understanding an item';
1835
+ readonly wcag: '4.1.2';
1836
+ readonly weight: 4;
1837
+ };
1838
+ readonly roleRedundant: {
1839
+ readonly summary: 'role redundant';
1840
+ readonly why: 'Page includes unnecessary code';
1841
+ readonly wcag: '4.1.2';
1842
+ readonly weight: 1;
1843
+ };
1844
+ readonly scriptBanned: {
1845
+ readonly summary: 'script prohibited';
1846
+ readonly why: 'Browser processes the page improperly';
1847
+ readonly wcag: '4.1';
1740
1848
  readonly weight: 3;
1741
1849
  };
1742
- readonly landmarkInNav: {
1743
- readonly summary: 'invalid landmark child of navigation role';
1744
- readonly why: 'User cannot get help on how some of the page is organized';
1745
- readonly wcag: '1.3.6';
1850
+ readonly scriptElementBad: {
1851
+ readonly summary: 'script element invalid';
1852
+ readonly why: 'Browser processes the page improperly';
1853
+ readonly wcag: '1.3.1';
1746
1854
  readonly weight: 4;
1747
1855
  };
1748
- readonly regionConfusion: {
1749
- readonly summary: 'regions not distinctly named';
1750
- readonly why: 'User cannot get help on how some of the page is organized';
1751
- readonly wcag: '1.3.6';
1856
+ readonly scriptNotDeferrable: {
1857
+ readonly summary: 'script element invalidly deferred';
1858
+ readonly why: 'Browser processes the page improperly';
1859
+ readonly wcag: '1.3.1';
1860
+ readonly weight: 4;
1861
+ };
1862
+ readonly scrollFocus: {
1863
+ readonly summary: 'scrollable element and children nonfocusable';
1864
+ readonly why: 'User may be unable to see all of an item without scrolling in both dimensions';
1865
+ readonly wcag: '2.1.1';
1752
1866
  readonly weight: 3;
1753
1867
  };
1868
+ readonly scrollRisk: {
1869
+ readonly summary: 'container size unit not percentage';
1870
+ readonly why: 'User may be unable to see all of an item without scrolling in both dimensions';
1871
+ readonly wcag: '1.4.10';
1872
+ readonly weight: 1;
1873
+ };
1754
1874
  readonly searchConfusion: {
1755
1875
  readonly summary: 'searches not distinctly named';
1756
1876
  readonly why: 'User cannot get help on how some of the page is organized';
1757
1877
  readonly wcag: '1.3.6';
1758
1878
  readonly weight: 3;
1759
1879
  };
1760
- readonly complementaryNoText: {
1761
- readonly summary: 'complementary not named';
1762
- readonly why: 'User cannot get help on how some of the page is organized';
1763
- readonly wcag: '1.3.6';
1880
+ readonly sectionHeadingless: {
1881
+ readonly summary: 'section heading missing';
1882
+ readonly why: 'User cannot understand the topic of a part of the page';
1883
+ readonly wcag: '1.3.1';
1764
1884
  readonly weight: 1;
1765
1885
  };
1766
- readonly labelNoText: {
1767
- readonly summary: 'label not named';
1768
- readonly why: 'User cannot get help on the topic of a form item';
1769
- readonly wcag: '1.3.1';
1886
+ readonly selectBad: {
1887
+ readonly summary: 'select element invalid';
1888
+ readonly why: 'User cannot properly select among options';
1889
+ readonly wcag: '4.1.2';
1770
1890
  readonly weight: 4;
1771
1891
  };
1772
- readonly focusableOperable: {
1773
- readonly summary: 'element focusability and operability conflict';
1774
- readonly why: 'Keyboard-only user cannot operate an item';
1775
- readonly wcag: '2.1.1';
1776
- readonly weight: 3;
1892
+ readonly selectFlatRisk: {
1893
+ readonly summary: 'option groups not marked?';
1894
+ readonly why: 'User may be unable to get help recognizing groups of options';
1895
+ readonly wcag: '1.3.1';
1896
+ readonly weight: 1;
1777
1897
  };
1778
- readonly focusableRole: {
1779
- readonly summary: 'focusable element not active';
1780
- readonly why: 'Keyboard-only user cannot navigate properly to the operable items';
1898
+ readonly selectNavSurpriseRisk: {
1899
+ readonly summary: 'navigating selection-change action unstated?';
1900
+ readonly why: 'Changing a selected option opens a new window, possibly surprising a user';
1901
+ readonly wcag: '3.2.5';
1902
+ readonly weight: 1;
1903
+ };
1904
+ readonly selectNoText: {
1905
+ readonly summary: 'select not named';
1906
+ readonly why: 'User cannot get help on the topic of a list of options';
1781
1907
  readonly wcag: '4.1.2';
1782
1908
  readonly weight: 3;
1783
1909
  };
1784
- readonly focusableHidden: {
1785
- readonly summary: 'focusable element hidden';
1786
- readonly why: 'Keyboard-only user cannot navigate properly to the operable items';
1787
- readonly wcag: '4.1.2';
1910
+ readonly sensoryDependenceRisk: {
1911
+ readonly summary: 'instruction requires particular sense?';
1912
+ readonly why: 'Content is impossible to perceive under some conditions';
1913
+ readonly wcag: '1.4.1';
1914
+ readonly weight: 1;
1915
+ };
1916
+ readonly sizesAttributeBad: {
1917
+ readonly summary: 'sizes attribute invalid';
1918
+ readonly why: 'Item behaves improperly';
1919
+ readonly wcag: '1.3.1';
1788
1920
  readonly weight: 4;
1789
1921
  };
1790
- readonly focusedAway: {
1791
- readonly summary: 'element beyond display when focused';
1792
- readonly why: 'Keyboard-only user cannot navigate properly to the operable items';
1793
- readonly wcag: '1.4.10';
1922
+ readonly skipRepeatedContent: {
1923
+ readonly summary: 'skip method missing or invalid';
1924
+ readonly why: 'Keyboard-only user cannot easily reach the specific content of the page';
1925
+ readonly wcag: '2.4.1';
1794
1926
  readonly weight: 3;
1927
+ readonly max: 2;
1795
1928
  };
1796
- readonly focusableDescendants: {
1797
- readonly summary: 'presentational child focusable';
1798
- readonly why: 'Keyboard-only user cannot navigate properly to the operable items';
1799
- readonly wcag: '4.1.2';
1929
+ readonly sourceEmpty: {
1930
+ readonly summary: 'src empty';
1931
+ readonly why: 'Image, audio, or video to be shown cannot be found';
1932
+ readonly wcag: '1.3.1';
1800
1933
  readonly weight: 4;
1801
1934
  };
1802
- readonly datalistRef: {
1803
- readonly summary: 'ambiguous or missing datalist reference';
1804
- readonly why: 'User cannot get help on the permitted input values';
1805
- readonly wcag: '3.3.2';
1935
+ readonly specRulesScriptBad: {
1936
+ readonly summary: 'speculation rules script element invalid';
1937
+ readonly why: 'Page navigation performs poorly';
1938
+ readonly wcag: '1.3.1';
1939
+ readonly weight: 1;
1940
+ };
1941
+ readonly spontaneousMotion: {
1942
+ readonly summary: 'page content moves spontaneously';
1943
+ readonly why: 'Motion-sensitive user may suffer harm';
1944
+ readonly wcag: '2.2.2';
1945
+ readonly weight: 2;
1946
+ readonly max: 1;
1947
+ };
1948
+ readonly stylesheetBanned: {
1949
+ readonly summary: 'stylesheet prohibited';
1950
+ readonly why: 'Browser displays the page improperly';
1951
+ readonly wcag: '1.4';
1952
+ readonly weight: 3;
1953
+ };
1954
+ readonly submitButton: {
1955
+ readonly summary: 'form submission button missing';
1956
+ readonly why: 'User cannot easily submit a form';
1957
+ readonly wcag: '3.2.2';
1958
+ readonly weight: 3;
1959
+ };
1960
+ readonly svgImageNoText: {
1961
+ readonly summary: 'svg image not named';
1962
+ readonly why: 'User cannot get help understanding an image';
1963
+ readonly wcag: '1.1.1';
1806
1964
  readonly weight: 4;
1807
1965
  };
1808
- readonly multipleLabelees: {
1809
- readonly summary: 'labeled element ambiguous';
1810
- readonly why: 'User cannot get help on the topic of a form item';
1966
+ readonly svgLabelID: {
1967
+ readonly summary: 'svg label referent invalid';
1968
+ readonly why: 'User cannot get help understanding an image';
1969
+ readonly wcag: '1.1.1';
1970
+ readonly weight: 4;
1971
+ };
1972
+ readonly svgNoText: {
1973
+ readonly summary: 'SVG image not named';
1974
+ readonly why: 'User cannot get help to know what is in an image';
1975
+ readonly wcag: '1.1.1';
1976
+ readonly weight: 4;
1977
+ };
1978
+ readonly svgNotValidatable: {
1979
+ readonly summary: 'SVG version not 1.1';
1980
+ readonly why: 'Item prevents testing image for accessibility';
1981
+ readonly wcag: '4.1';
1982
+ readonly weight: 1;
1983
+ };
1984
+ readonly tabIndexEmpty: {
1985
+ readonly summary: 'tabindex empty';
1986
+ readonly why: 'Keyboard-only user cannot follow the intended navigation sequence';
1987
+ readonly wcag: '1.3.1';
1988
+ readonly weight: 4;
1989
+ };
1990
+ readonly tabIndexExtra: {
1991
+ readonly summary: 'tabindex redundant';
1992
+ readonly why: 'Revision risks interfering with navigation by a keyboard-only user';
1993
+ readonly wcag: '1.3.1';
1994
+ readonly weight: 1;
1995
+ };
1996
+ readonly tabIndexInt: {
1997
+ readonly summary: 'tabindex not integer';
1998
+ readonly why: 'Keyboard-only user cannot follow the intended navigation sequence';
1811
1999
  readonly wcag: '1.3.1';
1812
2000
  readonly weight: 4;
1813
2001
  };
1814
- readonly labeledHidden: {
1815
- readonly summary: 'control hidden but labeled';
1816
- readonly why: 'Document includes unnecessary code';
2002
+ readonly tabIndexPositive: {
2003
+ readonly summary: 'tabindex positive';
2004
+ readonly why: 'Keyboard-only user cannot predict the navigation sequence';
2005
+ readonly wcag: '2.4.3';
2006
+ readonly weight: 1;
2007
+ };
2008
+ readonly tableBody: {
2009
+ readonly summary: 'tbody missing';
2010
+ readonly why: 'User cannot get help on parts of a table';
1817
2011
  readonly wcag: '1.3.1';
1818
2012
  readonly weight: 1;
1819
2013
  };
1820
- readonly contentHidden: {
1821
- readonly summary: 'page hidden';
1822
- readonly why: 'User cannot get the page content';
1823
- readonly wcag: '2.4.7';
1824
- readonly weight: 4;
1825
- readonly max: 1;
2014
+ readonly tableCapSum: {
2015
+ readonly summary: 'table summary duplicative';
2016
+ readonly why: 'Helper informs a user repetitively about the topic of a table';
2017
+ readonly wcag: '1.3.1';
2018
+ readonly weight: 2;
1826
2019
  };
1827
- readonly hideFailureRisk: {
1828
- readonly summary: 'false aria-hidden value risky';
1829
- readonly why: 'User may be misled by erroneously hidden or revealed page content';
1830
- readonly wcag: '2.4.6';
2020
+ readonly tableCaption: {
2021
+ readonly summary: 'table caption missing';
2022
+ readonly why: 'User cannot get help on the topic of a table';
2023
+ readonly wcag: '1.3.1';
1831
2024
  readonly weight: 1;
1832
2025
  };
1833
- readonly negativeIndent: {
1834
- readonly summary: 'negative text-indent';
1835
- readonly why: 'Helper may hide content from a user';
1836
- readonly wcag: '4.1';
2026
+ readonly tableCaptionLoc: {
2027
+ readonly summary: 'table caption location invalid';
2028
+ readonly why: 'User cannot get help on the topic of a table';
2029
+ readonly wcag: '1.3.1';
1837
2030
  readonly weight: 3;
1838
2031
  };
1839
- readonly frameSandboxRisk: {
1840
- readonly summary: 'iframe sandbox attributes risky';
1841
- readonly why: 'Document may be unsafe to use';
1842
- readonly wcag: '4.1';
1843
- readonly weight: 2;
1844
- };
1845
- readonly hoverIndication: {
1846
- readonly summary: 'hover indication poor';
1847
- readonly why: 'User cannot explore the page reliably with a mouse';
1848
- readonly wcag: '3.3.2';
2032
+ readonly tableCellHeaderless: {
2033
+ readonly summary: 'table-cell header missing';
2034
+ readonly why: 'User cannot get help on the topic of a table cell';
2035
+ readonly wcag: '1.3.1';
1849
2036
  readonly weight: 3;
1850
2037
  };
1851
- readonly hoverSurprise: {
1852
- readonly summary: 'hovering changes content';
1853
- readonly why: 'User cannot explore the page reliably with a mouse';
1854
- readonly wcag: '3.2.5';
1855
- readonly weight: 1;
2038
+ readonly tableColumnsVary: {
2039
+ readonly summary: 'table column counts vary';
2040
+ readonly why: 'User cannot get help on the dimensions of a table';
2041
+ readonly wcag: '1.3.1';
2042
+ readonly weight: 3;
1856
2043
  };
1857
- readonly formSurpriseRisk: {
1858
- readonly summary: 'form interaction changes content?';
1859
- readonly why: 'User experiences unexpected page change when using a form';
1860
- readonly wcag: '3.2.5';
1861
- readonly weight: 1;
2044
+ readonly tableDescriptionID: {
2045
+ readonly summary: 'table aria-describedby invalid';
2046
+ readonly why: 'User cannot get help on the topic of a table';
2047
+ readonly wcag: '1.3.1';
2048
+ readonly weight: 4;
1862
2049
  };
1863
- readonly labelClash: {
1864
- readonly summary: 'label types incompatible';
1865
- readonly why: 'User cannot get reliable help on the topics of form items';
2050
+ readonly tableEmbedded: {
2051
+ readonly summary: 'table embedded in table';
2052
+ readonly why: 'User cannot get help on relationships in a table';
1866
2053
  readonly wcag: '1.3.1';
1867
2054
  readonly weight: 2;
1868
2055
  };
1869
- readonly labelNot1: {
1870
- readonly summary: 'element referenced by multiple labels';
1871
- readonly why: 'User cannot get reliable help on the topics of form items';
2056
+ readonly tableHead: {
2057
+ readonly summary: 'thead missing';
2058
+ readonly why: 'User cannot get help on parts of a table';
1872
2059
  readonly wcag: '1.3.1';
1873
2060
  readonly weight: 1;
1874
2061
  };
1875
- readonly labelEmpty: {
1876
- readonly summary: 'label empty';
1877
- readonly why: 'User cannot get help on the topics of form items';
2062
+ readonly tableHeaderCellless: {
2063
+ readonly summary: 'table-header cell missing';
2064
+ readonly why: 'User cannot get help on relationships in a table';
1878
2065
  readonly wcag: '1.3.1';
1879
- readonly weight: 3;
2066
+ readonly weight: 4;
1880
2067
  };
1881
- readonly labelRisk: {
1882
- readonly summary: 'labeling risky';
1883
- readonly why: 'User may misunderstand a form control';
1884
- readonly wcag: '3.3.2';
1885
- readonly weight: 1;
2068
+ readonly tableHeaderEmpty: {
2069
+ readonly summary: 'table header empty';
2070
+ readonly why: 'User cannot get help on relationships in a table';
2071
+ readonly wcag: '1.3.1';
2072
+ readonly weight: 2;
1886
2073
  };
1887
- readonly linkVaguenessRisk: {
1888
- readonly summary: 'link name vague';
1889
- readonly why: 'User may misunderstand what a link points to';
1890
- readonly wcag: '2.4.4';
1891
- readonly weight: 1;
2074
+ readonly tableHeaderless: {
2075
+ readonly summary: 'table headers missing';
2076
+ readonly why: 'User cannot get help on relationships in a table';
2077
+ readonly wcag: '1.3.1';
2078
+ readonly weight: 3;
1892
2079
  };
1893
- readonly linkFileName: {
1894
- readonly summary: 'link names a file instead of a purpose';
1895
- readonly why: 'User may fail to understand what a link points to';
1896
- readonly wcag: '2.4.4';
2080
+ readonly TableHeaderScopeRisk: {
2081
+ readonly summary: 'Table scope ambiguous?';
2082
+ readonly why: 'User may be unable to get help on relationships in a table';
2083
+ readonly wcag: '1.3.1';
1897
2084
  readonly weight: 1;
1898
2085
  };
1899
- readonly nonWebLink: {
1900
- readonly summary: 'link to non-web resource';
1901
- readonly why: 'Document points to harder-to-use resources';
1902
- readonly wcag: '1.3.3';
2086
+ readonly tableHeading: {
2087
+ readonly summary: 'heading located in table';
2088
+ readonly why: 'Complex relationships in a table may confuse a user';
2089
+ readonly wcag: '1.3.1';
1903
2090
  readonly weight: 1;
1904
2091
  };
1905
- readonly linkIndication: {
1906
- readonly summary: 'link indication poor';
1907
- readonly why: 'User cannot differentiate a link from plain text';
1908
- readonly wcag: '1.3.3';
1909
- readonly weight: 2;
1910
- };
1911
- readonly menuNavigation: {
1912
- readonly summary: 'menu navigation nonstandard';
1913
- readonly why: 'Menus behave improperly for a keyboard-only user';
1914
- readonly wcag: '2.1.1';
1915
- readonly weight: 2;
2092
+ readonly tableLabelID: {
2093
+ readonly summary: 'table aria-labelledby invalid';
2094
+ readonly why: 'User cannot get help on the topic of a table';
2095
+ readonly wcag: '1.3.1';
2096
+ readonly weight: 4;
1916
2097
  };
1917
- readonly menuItemless: {
1918
- readonly summary: 'menu items missing';
1919
- readonly why: 'User cannot reach promised menu items';
2098
+ readonly tableSum: {
2099
+ readonly summary: 'table summary empty';
2100
+ readonly why: 'User cannot get help summarizing a table';
1920
2101
  readonly wcag: '1.3.1';
1921
2102
  readonly weight: 4;
1922
2103
  };
@@ -1926,131 +2107,118 @@ declare const issuesData: {
1926
2107
  readonly wcag: '2.1.1';
1927
2108
  readonly weight: 2;
1928
2109
  };
1929
- readonly spontaneousMotion: {
1930
- readonly summary: 'page content moves spontaneously';
1931
- readonly why: 'Motion-sensitive user may suffer harm';
1932
- readonly wcag: '2.2.2';
1933
- readonly weight: 2;
1934
- readonly max: 1;
1935
- };
1936
- readonly animationLong: {
1937
- readonly summary: 'animation long or repetitive';
1938
- readonly why: 'Motion-sensitive user may suffer harm';
1939
- readonly wcag: '2.2.2';
2110
+ readonly tabularTableless: {
2111
+ readonly summary: 'table not marked as such';
2112
+ readonly why: 'Helper misinforms a user about whether items are cells of a table';
2113
+ readonly wcag: '1.3.1';
1940
2114
  readonly weight: 3;
1941
2115
  };
1942
- readonly blink: {
1943
- readonly summary: 'blink element';
1944
- readonly why: 'Motion-sensitive user may suffer harm';
1945
- readonly wcag: '2.2.2';
2116
+ readonly targetEmpty: {
2117
+ readonly summary: 'target empty';
2118
+ readonly why: 'Item is displayed improperly';
2119
+ readonly wcag: '1.3.1';
1946
2120
  readonly weight: 4;
1947
2121
  };
1948
- readonly autoplay: {
1949
- readonly summary: 'autoplay';
1950
- readonly why: 'Motion- or noise-sensitive user may suffer harm';
1951
- readonly wcag: '1.4.2';
1952
- readonly weight: 2;
1953
- };
1954
- readonly autoplayLong: {
1955
- readonly summary: 'autoplay long';
1956
- readonly why: 'Motion- or noise-sensitive user may suffer harm';
1957
- readonly wcag: '1.4.2';
1958
- readonly weight: 2;
2122
+ readonly targetSmall: {
2123
+ readonly summary: 'target small';
2124
+ readonly why: 'User cannot reliably choose an item to click or tap';
2125
+ readonly wcag: '2.5.5';
2126
+ readonly weight: 1;
1959
2127
  };
1960
- readonly autoplayControl: {
1961
- readonly summary: 'autoplay control';
1962
- readonly why: 'Motion- or noise-sensitive user may suffer harm';
1963
- readonly wcag: '1.4.2';
1964
- readonly weight: 2;
2128
+ readonly targetsNear: {
2129
+ readonly summary: 'small targets too near to each other';
2130
+ readonly why: 'User cannot reliably choose an item to click or tap';
2131
+ readonly wcag: '2.5.8';
2132
+ readonly weight: 3;
1965
2133
  };
1966
- readonly refresh: {
1967
- readonly summary: 'element reloads or redirects';
1968
- readonly why: 'Document change may surprise a user';
1969
- readonly wcag: '2.2.1';
2134
+ readonly targetTiny: {
2135
+ readonly summary: 'target very small';
2136
+ readonly why: 'User cannot reliably choose an item to click or tap';
2137
+ readonly wcag: '2.5.8';
1970
2138
  readonly weight: 3;
1971
2139
  };
1972
- readonly parentBad: {
1973
- readonly summary: 'parent invalid';
1974
- readonly why: 'User cannot properly operate an item';
1975
- readonly wcag: '1.3.1';
2140
+ readonly textAreaNoText: {
2141
+ readonly summary: 'text area not named';
2142
+ readonly why: 'User cannot get help on what information to enter in a form item';
2143
+ readonly wcag: '4.1.2';
1976
2144
  readonly weight: 4;
1977
2145
  };
1978
- readonly inconsistentStyles: {
1979
- readonly summary: 'inconsistent heading, link, or button styles';
1980
- readonly why: 'User cannot easily distinguish items of different types';
1981
- readonly wcag: '3.2.4';
2146
+ readonly textContentBad: {
2147
+ readonly summary: 'element text content invalid';
2148
+ readonly why: 'User may be unable to read all the page text';
2149
+ readonly wcag: '4.1';
2150
+ readonly weight: 3;
2151
+ };
2152
+ readonly textDistortion: {
2153
+ readonly summary: 'text distortion';
2154
+ readonly why: 'Text is difficult to read';
2155
+ readonly wcag: '3.1.5';
1982
2156
  readonly weight: 1;
1983
2157
  };
1984
- readonly zIndexNotZero: {
1985
- readonly summary: 'z-index not zero';
1986
- readonly why: 'User cannot predict the effect of clicking';
1987
- readonly wcag: '1.4';
2158
+ readonly titleAsLabel: {
2159
+ readonly summary: 'control has title instead of label';
2160
+ readonly why: 'User cannot get help on how to operate a form item';
2161
+ readonly wcag: '2.4.6';
2162
+ readonly weight: 3;
2163
+ };
2164
+ readonly titleBad: {
2165
+ readonly summary: 'title attribute invalid';
2166
+ readonly why: 'User gets too little, too much, or repeated help explaining an item';
2167
+ readonly wcag: '1.3.1';
1988
2168
  readonly weight: 1;
1989
2169
  };
1990
- readonly tabIndexPositive: {
1991
- readonly summary: 'tabindex positive';
1992
- readonly why: 'Keyboard-only user cannot predict the navigation sequence';
1993
- readonly wcag: '2.4.3';
2170
+ readonly titleEmpty: {
2171
+ readonly summary: 'title attribute empty';
2172
+ readonly why: 'Hovering does not get the promised explanation of an item';
2173
+ readonly wcag: '1.3.1';
1994
2174
  readonly weight: 1;
1995
2175
  };
1996
- readonly tabIndexEmpty: {
1997
- readonly summary: 'tabindex empty';
1998
- readonly why: 'Keyboard-only user cannot follow the intended navigation sequence';
2176
+ readonly titleLong: {
2177
+ readonly summary: 'title long';
2178
+ readonly why: 'Hovering makes an overly verbose explanation pop up';
1999
2179
  readonly wcag: '1.3.1';
2000
- readonly weight: 4;
2180
+ readonly weight: 2;
2001
2181
  };
2002
- readonly tabIndexInt: {
2003
- readonly summary: 'tabindex not integer';
2004
- readonly why: 'Keyboard-only user cannot follow the intended navigation sequence';
2182
+ readonly titleNotText: {
2183
+ readonly summary: 'title contains ASCII art';
2184
+ readonly why: 'Hovering makes a hard-to-understand explanation pop up';
2005
2185
  readonly wcag: '1.3.1';
2006
- readonly weight: 4;
2186
+ readonly weight: 2;
2007
2187
  };
2008
- readonly tabIndexExtra: {
2009
- readonly summary: 'tabindex redundant';
2010
- readonly why: 'Revision risks interfering with navigation by a keyboard-only user';
2188
+ readonly titleRedundant: {
2189
+ readonly summary: 'title attribute redundant';
2190
+ readonly why: 'Helper repeats the explanation of an item';
2011
2191
  readonly wcag: '1.3.1';
2012
2192
  readonly weight: 1;
2013
2193
  };
2014
- readonly presentationGlobal: {
2015
- readonly summary: 'global ARIA attribute nullifies presentation role';
2016
- readonly why: 'User encounters content intended to be hidden';
2194
+ readonly typeBad: {
2195
+ readonly summary: 'type invalid';
2196
+ readonly why: 'Page styles are at risk of corruption';
2017
2197
  readonly wcag: '1.3.1';
2018
- readonly weight: 1;
2198
+ readonly weight: 4;
2019
2199
  };
2020
- readonly presentationTabIndexed: {
2021
- readonly summary: 'tabindex attribute nullifies presentation role';
2022
- readonly why: 'User encounters content intended to be hidden';
2200
+ readonly typeRedundant: {
2201
+ readonly summary: 'type redundant';
2202
+ readonly why: 'Page includes unnecessary code';
2023
2203
  readonly wcag: '1.3.1';
2024
2204
  readonly weight: 1;
2025
2205
  };
2026
- readonly avNoText: {
2027
- readonly summary: 'audio or video caption track missing';
2028
- readonly why: 'User cannot get help reading speech as text';
2029
- readonly wcag: '1.2.1';
2206
+ readonly unfocusability: {
2207
+ readonly summary: 'element not focusable';
2208
+ readonly why: 'Keyboard-only user cannot choose an item to operate';
2209
+ readonly wcag: '2.1.1';
2030
2210
  readonly weight: 4;
2031
2211
  };
2032
- readonly audioNoText: {
2033
- readonly summary: 'audio track missing';
2034
- readonly why: 'User cannot get help reading speech as text';
2035
- readonly wcag: '1.2.1';
2212
+ readonly verticalSpacingFrozen: {
2213
+ readonly summary: 'vertical text spacing frozen';
2214
+ readonly why: 'User cannot adjust the vertical text spacing for readability';
2215
+ readonly wcag: '1.4.12';
2036
2216
  readonly weight: 4;
2037
2217
  };
2038
- readonly audioTextRisk: {
2039
- readonly summary: 'audio not named?';
2040
- readonly why: 'User may be unable to get help reading speech as text';
2218
+ readonly videoAlternative: {
2219
+ readonly summary: 'video alternative missing';
2220
+ readonly why: 'User cannot get help consuming a video recording as text or speech';
2041
2221
  readonly wcag: '1.2.1';
2042
- readonly weight: 1;
2043
- };
2044
- readonly videoNoText: {
2045
- readonly summary: 'video not named';
2046
- readonly why: 'User cannot get help reading video content as text';
2047
- readonly wcag: '1.2.2';
2048
- readonly weight: 4;
2049
- };
2050
- readonly videoNoTranscript: {
2051
- readonly summary: 'video transcript missing';
2052
- readonly why: 'User cannot get help reading video content as text';
2053
- readonly wcag: '1.2.2';
2054
2222
  readonly weight: 4;
2055
2223
  };
2056
2224
  readonly videoCaptionRisk: {
@@ -2062,7 +2230,7 @@ declare const issuesData: {
2062
2230
  readonly videoNoAudioDescription: {
2063
2231
  readonly summary: 'video audio description missing';
2064
2232
  readonly why: 'User cannot get help hearing video content as speech';
2065
- readonly wcag: '1.2.1';
2233
+ readonly wcag: '1.2.5';
2066
2234
  readonly weight: 4;
2067
2235
  };
2068
2236
  readonly videoNoAudioTrack: {
@@ -2071,203 +2239,35 @@ declare const issuesData: {
2071
2239
  readonly wcag: '1.2.1';
2072
2240
  readonly weight: 4;
2073
2241
  };
2074
- readonly videoAlternative: {
2075
- readonly summary: 'video alternative missing';
2076
- readonly why: 'User cannot get help consuming a video recording as text or speech';
2077
- readonly wcag: '1.2.1';
2078
- readonly weight: 4;
2079
- };
2080
- readonly keyboardScroll: {
2081
- readonly summary: 'element not scrollable';
2082
- readonly why: 'Keyboard-only user cannot scroll an item';
2083
- readonly wcag: '2.1.1';
2242
+ readonly videoNoText: {
2243
+ readonly summary: 'no video text alternative';
2244
+ readonly why: 'User cannot get help reading video content as text';
2245
+ readonly wcag: '1.2.2';
2084
2246
  readonly weight: 4;
2085
2247
  };
2086
- readonly positionSticky: {
2087
- readonly summary: 'position sticky';
2088
- readonly why: 'User may be unable to see needed content or may be forced to scroll in both dimensions';
2089
- readonly wcag: '1.4.10';
2090
- readonly weight: 1;
2091
- };
2092
- readonly scrollFocus: {
2093
- readonly summary: 'scrollable element and children nonfocusable';
2094
- readonly why: 'User may be unable to see all of an item without scrolling in both dimensions';
2095
- readonly wcag: '2.1.1';
2096
- readonly weight: 3;
2097
- };
2098
- readonly scrollRisk: {
2099
- readonly summary: 'container size unit not percentage';
2100
- readonly why: 'User may be unable to see all of an item without scrolling in both dimensions';
2101
- readonly wcag: '1.4.10';
2102
- readonly weight: 1;
2103
- };
2104
- readonly skipRepeatedContent: {
2105
- readonly summary: 'skip method missing or invalid';
2106
- readonly why: 'Keyboard-only user cannot easily reach the specific content of the page';
2107
- readonly wcag: '2.4.1';
2108
- readonly weight: 3;
2109
- readonly max: 2;
2110
- };
2111
- readonly repeatedContentRisk: {
2112
- readonly summary: 'skip method missing or invalid?';
2113
- readonly why: 'Keyboard-only user may be unable easily to reach the specific content of the page';
2114
- readonly wcag: '2.4.1';
2115
- readonly weight: 1;
2116
- readonly max: 2;
2117
- };
2118
- readonly submitButton: {
2119
- readonly summary: 'form submission button missing';
2120
- readonly why: 'User cannot easily submit a form';
2121
- readonly wcag: '3.2.2';
2122
- readonly weight: 3;
2123
- };
2124
- readonly fragmentaryNoticeRisk: {
2125
- readonly summary: 'assertive region not atomic';
2126
- readonly why: 'User may be unable to get help on what content has changed';
2127
- readonly wcag: '4.1.3';
2128
- readonly weight: 2;
2129
- };
2130
- readonly errorReferenceBad: {
2131
- readonly summary: 'error reference invalid';
2132
- readonly why: 'User cannot correct a form error';
2133
- readonly wcag: '3.3.1';
2248
+ readonly videoNoTranscript: {
2249
+ readonly summary: 'video transcript missing';
2250
+ readonly why: 'User cannot get help reading video content as text';
2251
+ readonly wcag: '1.2.1';
2134
2252
  readonly weight: 4;
2135
2253
  };
2136
- readonly noScriptRisk: {
2137
- readonly summary: 'noscript element not equivalent?';
2138
- readonly why: 'User who has disabled JavaScript may be denied some content';
2139
- readonly wcag: '4.1';
2140
- readonly weight: 1;
2141
- };
2142
- readonly flash: {
2143
- readonly summary: 'flash content';
2144
- readonly why: 'Document includes code that may not work and may jeopardize user security';
2145
- readonly wcag: '4.1';
2254
+ readonly visibleBulk: {
2255
+ readonly summary: 'large visible-element count';
2256
+ readonly why: 'User cannot easily find items in the page';
2257
+ readonly wcag: '2.4';
2146
2258
  readonly weight: 1;
2147
2259
  readonly max: 1;
2148
2260
  };
2149
- readonly browserSupportRisk: {
2150
- readonly summary: 'inputmode attribute';
2151
- readonly why: 'Document may include code that the browser cannot process';
2152
- readonly wcag: '4.1';
2153
- readonly weight: 1;
2154
- };
2155
- readonly attributeObsolete: {
2156
- readonly summary: 'attribute obsolete';
2157
- readonly why: 'Document includes obsolete code that the browser may fail to process';
2158
- readonly wcag: '4.1';
2159
- readonly weight: 3;
2160
- };
2161
- readonly nonElement: {
2162
- readonly summary: 'element unknown';
2163
- readonly why: 'Document includes an unknown element that the browser cannot process';
2164
- readonly wcag: '4.1';
2165
- readonly weight: 4;
2166
- };
2167
- readonly elementObsolete: {
2168
- readonly summary: 'element obsolete';
2169
- readonly why: 'Document includes obsolete code that the browser may fail to process';
2170
- readonly wcag: '4.1';
2171
- readonly weight: 3;
2172
- };
2173
- readonly obsolete: {
2174
- readonly summary: 'code obsolete';
2175
- readonly why: 'Document contains code that is no longer standard';
2176
- readonly wcag: '4.1';
2177
- readonly weight: 3;
2178
- };
2179
- readonly atRuleInvalid: {
2180
- readonly summary: 'invalid at-rule';
2181
- readonly why: 'Document cannot be properly displayed in particular contexts';
2182
- readonly wcag: '4.1';
2183
- readonly weight: 3;
2184
- };
2185
- readonly cssInvalid: {
2186
- readonly summary: 'CSS invalid';
2187
- readonly why: 'Document cannot be properly displayed';
2188
- readonly wcag: '4.1';
2189
- readonly weight: 3;
2190
- };
2191
- readonly elementClosure: {
2192
- readonly summary: 'element closure invalid';
2193
- readonly why: 'Document contains invalid code';
2194
- readonly wcag: '4.1.1';
2195
- readonly weight: 3;
2196
- };
2197
- readonly nestingBad: {
2198
- readonly summary: 'nesting invalid';
2199
- readonly why: 'Document contains invalid code';
2200
- readonly wcag: '4.1.1';
2201
- readonly weight: 3;
2202
- };
2203
- readonly characterBad: {
2204
- readonly summary: 'invalid character';
2205
- readonly why: 'Invalid character makes the page behave incorrectly';
2206
- readonly wcag: '4.1';
2207
- readonly weight: 3;
2208
- };
2209
- readonly entityBad: {
2210
- readonly summary: 'named character reference invalid';
2211
- readonly why: 'User may be unable to read all the page text';
2212
- readonly wcag: '4.1';
2213
- readonly weight: 4;
2214
- };
2215
- readonly textContentBad: {
2216
- readonly summary: 'element text content invalid';
2217
- readonly why: 'User may be unable to read all the page text';
2218
- readonly wcag: '4.1';
2219
- readonly weight: 3;
2220
- };
2221
- readonly parseError: {
2222
- readonly summary: 'code invalid';
2223
- readonly why: 'Invalid code in the page may prevent a helper from working';
2224
- readonly wcag: '4.1';
2261
+ readonly visibleLabelNotInName: {
2262
+ readonly summary: 'visible label not in name';
2263
+ readonly why: 'User cannot get help choosing a form control to operate';
2264
+ readonly wcag: '2.5.3';
2225
2265
  readonly weight: 3;
2226
2266
  };
2227
- readonly encodingMisdeclared: {
2228
- readonly summary: 'text encoding wrongly declared';
2229
- readonly why: 'User cannot read all of the text';
2230
- readonly wcag: '3.1.3';
2231
- readonly weight: 4;
2232
- readonly max: 1;
2233
- };
2234
- readonly encodingBad: {
2235
- readonly summary: 'text not Unicode-compliant';
2236
- readonly why: 'User cannot read all of the text';
2237
- readonly wcag: '3.1.3';
2238
- readonly weight: 4;
2239
- };
2240
- readonly encodingPrivate: {
2241
- readonly summary: 'text in Private Use Area';
2242
- readonly why: 'User cannot read all of the text';
2243
- readonly wcag: '3.1.3';
2244
- readonly weight: 4;
2245
- readonly max: 1;
2246
- };
2247
- readonly captcha2: {
2248
- readonly summary: 'captcha2';
2249
- readonly why: 'User is prevented from consuming the page';
2250
- readonly wcag: '1.1.1';
2251
- readonly weight: 1;
2252
- readonly max: 1;
2253
- };
2254
- readonly fatalError: {
2255
- readonly summary: 'fatal error';
2256
- readonly why: 'Document prevents testing for accessibility';
2257
- readonly wcag: '4.1';
2258
- readonly weight: 4;
2259
- readonly max: 1;
2260
- };
2261
- readonly notValidatable: {
2262
- readonly summary: 'item makes testing inconclusive';
2263
- readonly why: 'Item prevents a conclusive accessibility test';
2264
- readonly wcag: '4.1';
2265
- readonly weight: 1;
2266
- };
2267
- readonly svgNotValidatable: {
2268
- readonly summary: 'SVG version not 1.1';
2269
- readonly why: 'Item prevents testing image for accessibility';
2270
- readonly wcag: '4.1';
2267
+ readonly zIndexNotZero: {
2268
+ readonly summary: 'z-index not zero';
2269
+ readonly why: 'User cannot predict the effect of clicking';
2270
+ readonly wcag: '1.4';
2271
2271
  readonly weight: 1;
2272
2272
  };
2273
2273
  };