testaro-issues 0.5.0 → 0.5.2

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 +1799 -1724
  2. package/dist/index.d.cts +1634 -1634
  3. package/dist/index.d.mts +1634 -1634
  4. package/dist/index.mjs +1799 -1724
  5. package/package.json +1 -1
package/dist/index.d.mts CHANGED
@@ -1,12 +1,12 @@
1
1
  //#region src/index.d.ts
2
2
  declare const outcomes: readonly ['failed', 'cantTell'];
3
3
  declare const uncertainties: readonly ['not-computable', 'judgement-required', 'runtime-dependent', 'spec-only', 'equivalence-unknown', 'out-of-scope'];
4
- declare const whyIgnore: readonly ['invalid', 'irrelevant', 'duplicative', 'unreliable'];
4
+ declare const whyIgnore: readonly ['duplicative', 'invalid', 'irrelevant', 'speculative', 'unreliable'];
5
5
  type IssueID = keyof typeof issuesData;
6
6
  type IssueEngineRuleCounts = Record<string, number>;
7
7
  type Outcome = typeof outcomes[number];
8
8
  type Uncertainty = typeof uncertainties[number];
9
- type Ignore = typeof whyIgnore[number];
9
+ type WhyIgnore = typeof whyIgnore[number];
10
10
  interface Issue {
11
11
  summary: string;
12
12
  why: string;
@@ -25,953 +25,1059 @@ interface RuleEntry {
25
25
  supersededBy?: string | null;
26
26
  outcome?: Outcome;
27
27
  uncertainty?: Uncertainty;
28
- review?: string;
29
- ignore?: Ignore;
28
+ toCheck?: string;
29
+ whyIgnore?: WhyIgnore;
30
30
  }
31
31
  interface EngineRules {
32
32
  invariant: Record<string, RuleEntry>;
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: 'Document 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;
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;
161
161
  };
162
- readonly sourceEmpty: {
163
- readonly summary: 'src empty';
164
- readonly why: 'Image, audio, or video to be shown cannot be found';
162
+ readonly atRuleInvalid: {
163
+ readonly summary: 'invalid at-rule';
164
+ readonly why: 'Document cannot be properly displayed in particular contexts';
165
+ readonly wcag: '4.1';
166
+ readonly weight: 3;
167
+ };
168
+ readonly attributeBad: {
169
+ readonly summary: 'attribute invalid';
170
+ readonly why: 'Item behaves improperly';
165
171
  readonly wcag: '1.3.1';
166
172
  readonly weight: 4;
167
173
  };
168
- readonly borderBad: {
169
- readonly summary: 'CSS border invalid';
170
- readonly why: 'Border is displayed improperly';
171
- readonly wcag: '4.1';
174
+ readonly attributeMissing: {
175
+ readonly summary: 'attribute missing';
176
+ readonly why: 'Item behaves improperly';
177
+ readonly wcag: '4.1.2';
172
178
  readonly weight: 4;
173
179
  };
174
- readonly flexBad: {
175
- readonly summary: 'CSS flex invalid';
176
- readonly why: 'Content is displayed improperly';
180
+ readonly attributeObsolete: {
181
+ readonly summary: 'attribute obsolete';
182
+ readonly why: 'Document includes obsolete code that the browser may fail to process';
177
183
  readonly wcag: '4.1';
178
- readonly weight: 4;
184
+ readonly weight: 3;
179
185
  };
180
- readonly paddingBad: {
181
- readonly summary: 'CSS padding invalid';
182
- readonly why: 'Content is displayed improperly';
183
- 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';
184
190
  readonly weight: 4;
185
191
  };
186
- readonly gapBad: {
187
- readonly summary: 'CSS gap invalid';
188
- readonly why: 'Content is displayed improperly';
189
- readonly wcag: '4.1';
190
- readonly weight: 4;
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;
191
197
  };
192
- readonly backgroundBad: {
193
- readonly summary: 'CSS background invalid';
194
- readonly why: 'Background is displayed improperly';
195
- readonly wcag: '4.1';
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';
196
202
  readonly weight: 4;
197
203
  };
198
- readonly backgroundImageBad: {
199
- readonly summary: 'background image invalid';
200
- readonly why: 'Background image is displayed improperly';
201
- readonly wcag: '4.1';
202
- readonly weight: 4;
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
+ readonly weight: 1;
203
209
  };
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';
208
- readonly weight: 1;
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';
214
+ readonly weight: 3;
209
215
  };
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;
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;
215
221
  };
216
- readonly imageBanned: {
217
- readonly summary: 'image prohibited';
218
- readonly why: 'Browser fails to display an image';
219
- readonly wcag: '1.4';
220
- readonly weight: 3;
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;
221
227
  };
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';
228
+ readonly autoplay: {
229
+ readonly summary: 'autoplay';
230
+ readonly why: 'Motion- or noise-sensitive user may suffer harm';
231
+ readonly wcag: '1.4.2';
226
232
  readonly weight: 2;
227
233
  };
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';
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';
232
238
  readonly weight: 2;
233
239
  };
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;
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';
276
- readonly weight: 4;
277
- };
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';
282
- readonly weight: 4;
283
- };
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';
288
- readonly weight: 1;
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;
289
276
  };
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';
294
- readonly weight: 1;
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;
295
282
  };
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';
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';
300
287
  readonly weight: 4;
301
288
  };
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';
289
+ readonly blink: {
290
+ readonly summary: 'blink element';
291
+ readonly why: 'Motion-sensitive user may suffer harm';
292
+ readonly wcag: '2.2.2';
306
293
  readonly weight: 4;
307
294
  };
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';
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';
299
+ readonly weight: 1;
300
+ };
301
+ readonly borderBad: {
302
+ readonly summary: 'CSS border invalid';
303
+ readonly why: 'Border is displayed improperly';
304
+ readonly wcag: '4.1';
312
305
  readonly weight: 4;
313
306
  };
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';
307
+ readonly boxInvisibleRisk: {
308
+ readonly summary: 'border or outline invisible?';
309
+ readonly why: 'User cannot perceive the boundary of an item';
310
+ readonly wcag: '2.5.8';
318
311
  readonly weight: 1;
319
312
  };
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;
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;
325
318
  };
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';
319
+ readonly browserSupportRisk: {
320
+ readonly summary: 'inputmode attribute';
321
+ readonly why: 'Document may include code that the browser cannot process';
322
+ readonly wcag: '4.1';
330
323
  readonly weight: 1;
331
324
  };
332
- readonly internalLinkBroken: {
333
- readonly summary: 'internal link broken';
334
- readonly why: 'User cannot reach a promised page location';
335
- readonly wcag: '1.3.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';
336
329
  readonly weight: 4;
337
330
  };
338
- readonly labelForBad: {
339
- readonly summary: 'label referent ineligible';
340
- readonly why: 'User cannot get help understanding an item in a form';
341
- readonly wcag: '1.3.1';
342
- readonly weight: 4;
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';
335
+ readonly weight: 1;
343
336
  };
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';
347
- readonly wcag: '1.3.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';
348
341
  readonly weight: 4;
349
342
  };
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';
343
+ readonly captcha2: {
344
+ readonly summary: 'captcha2';
345
+ readonly why: 'User is prevented from consuming the page';
346
+ readonly wcag: '1.1.1';
354
347
  readonly weight: 1;
348
+ readonly max: 1;
355
349
  };
356
- readonly ariaLabelWrongRisk: {
357
- readonly summary: 'dubious aria-label';
358
- readonly why: 'User may fail to get help understanding an item in a form';
350
+ readonly cellHeadersAmbiguityRisk: {
351
+ readonly summary: 'cell headers ambiguous?';
352
+ readonly why: 'User may be unable to get help on relationships in a table';
359
353
  readonly wcag: '1.3.1';
360
- readonly weight: 1;
354
+ readonly weight: 2;
361
355
  };
362
- readonly activeDescendantBadID: {
363
- readonly summary: 'aria-activedescendant invalid';
364
- readonly why: 'Keyboard-only user cannot reach an item in a menu';
356
+ readonly cellHeadersNotInferrable: {
357
+ readonly summary: 'cell headers not inferrable';
358
+ readonly why: 'User cannot get help on relationships in a table';
365
359
  readonly wcag: '1.3.1';
366
360
  readonly weight: 4;
367
361
  };
368
- readonly governedBadID: {
369
- readonly summary: 'aria-controls or -owns invalid';
370
- readonly why: 'Keyboard-only user cannot reach an item';
362
+ readonly cellHeadersOutsideTable: {
363
+ readonly summary: 'cell headers outside table';
364
+ readonly why: 'User cannot get help on relationships in a table';
371
365
  readonly wcag: '1.3.1';
372
366
  readonly weight: 4;
373
367
  };
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;
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;
379
373
  };
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';
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.4.4';
384
378
  readonly weight: 1;
385
379
  };
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';
390
- readonly weight: 4;
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';
384
+ readonly weight: 1;
391
385
  };
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';
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;
391
+ };
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';
396
396
  readonly weight: 4;
397
397
  };
398
- readonly applicationRisk: {
399
- readonly summary: 'dubious application role';
400
- readonly why: 'User actions may have unexpected effects';
401
- readonly wcag: '1.3.1';
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';
402
402
  readonly weight: 1;
403
403
  };
404
- readonly directionRisk: {
405
- readonly summary: 'dubious direction';
406
- readonly why: 'Item may behave incorrectly';
407
- readonly wcag: '1.3.2';
404
+ readonly contentHidden: {
405
+ readonly summary: 'page hidden';
406
+ readonly why: 'User cannot get the page content';
407
+ readonly wcag: '2.4.7';
408
+ readonly weight: 4;
409
+ readonly max: 1;
410
+ };
411
+ readonly contrastAA: {
412
+ readonly summary: 'contrast poor';
413
+ readonly why: 'Content is difficult to understand';
414
+ readonly wcag: '1.4.3';
415
+ readonly weight: 4;
416
+ };
417
+ readonly contrastAAA: {
418
+ readonly summary: 'text contrast improvable';
419
+ readonly why: 'Content is not easy to understand';
420
+ readonly wcag: '1.4.6';
408
421
  readonly weight: 1;
409
422
  };
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';
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';
414
427
  readonly weight: 1;
415
428
  };
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';
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';
420
433
  readonly weight: 4;
421
434
  };
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';
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';
426
439
  readonly weight: 4;
427
440
  };
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;
433
- };
434
- readonly linkBrokenRisk: {
435
- readonly summary: 'link incomplete';
436
- readonly why: 'User may fail to reach a promised location';
441
+ readonly controlNoText: {
442
+ readonly summary: 'control not named';
443
+ readonly why: 'User cannot get help on how to operate a form item';
437
444
  readonly wcag: '1.3.1';
438
- readonly weight: 2;
445
+ readonly weight: 4;
439
446
  };
440
- readonly linkElNoHref: {
441
- readonly summary: 'link element href missing';
442
- readonly why: 'User cannot reach a promised location';
443
- readonly wcag: '4.1';
444
- 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;
445
452
  };
446
- readonly linkElNoSource: {
447
- readonly summary: 'link element href or imagesrcset missing';
448
- readonly why: 'User cannot reach a promised location';
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;
458
+ };
459
+ readonly cssInvalid: {
460
+ readonly summary: 'CSS invalid';
461
+ readonly why: 'Document cannot be properly displayed';
449
462
  readonly wcag: '4.1';
450
463
  readonly weight: 3;
451
464
  };
452
- readonly destinationNotURL: {
453
- readonly summary: 'link destination not URL';
454
- readonly why: 'Helper cannot properly explain a link to a user';
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;
470
+ };
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: '1.3.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: '1.3.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: '1.3.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.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.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: 'Document contains invalid code';
622
+ readonly wcag: '4.1.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: 'Document 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: '3.1.3';
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: 'Document 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: 'Document 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';
741
+ readonly weight: 3;
742
+ };
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';
711
747
  readonly weight: 4;
712
748
  };
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;
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;
718
754
  };
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';
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';
723
759
  readonly weight: 4;
724
760
  };
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';
729
- 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;
730
766
  };
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;
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;
736
772
  };
737
- readonly metaAttributesWrong: {
738
- readonly summary: 'prohibited or missing meta attributes';
739
- readonly why: 'Browser processes the page incorrectly';
740
- readonly wcag: '4.1';
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: 'Document 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';
777
- readonly weight: 3;
778
- };
779
- readonly scriptNotDeferrable: {
780
- readonly summary: 'script element invalidly deferred';
781
- readonly why: 'Browser processes the page improperly';
846
+ readonly governedBadID: {
847
+ readonly summary: 'aria-controls or -owns invalid';
848
+ readonly why: 'Keyboard-only user cannot reach an item';
782
849
  readonly wcag: '1.3.1';
783
850
  readonly weight: 4;
784
851
  };
785
- readonly scriptBanned: {
786
- readonly summary: 'script prohibited';
787
- readonly why: 'Browser processes the page improperly';
788
- readonly wcag: '4.1';
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';
789
856
  readonly weight: 3;
790
857
  };
791
- readonly scriptElementBad: {
792
- readonly summary: 'script element invalid';
793
- 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';
794
861
  readonly wcag: '1.3.1';
795
- readonly weight: 4;
862
+ readonly weight: 2;
863
+ readonly max: 1;
796
864
  };
797
- readonly specRulesScriptBad: {
798
- readonly summary: 'speculation rules script element invalid';
799
- readonly why: 'Document navigation performs poorly';
865
+ readonly h1Not1st: {
866
+ readonly summary: 'h1 not 1st heading';
867
+ readonly why: 'User cannot understand the topic of the page';
800
868
  readonly wcag: '1.3.1';
801
- readonly weight: 1;
869
+ readonly weight: 3;
870
+ readonly max: 1;
802
871
  };
803
- readonly itemIDBad: {
804
- readonly summary: 'itemid invalid';
805
- readonly why: 'User cannot get help to identify a referent';
872
+ readonly haspopupBad: {
873
+ readonly summary: 'aria-haspopup invalid';
874
+ readonly why: 'Keyboard-only user cannot operate a custom tool';
806
875
  readonly wcag: '1.3.1';
807
876
  readonly weight: 4;
808
877
  };
809
- readonly itemTypeBad: {
810
- readonly summary: 'itemtype invalid';
811
- readonly why: 'User cannot get help on the definition of a term';
812
- readonly wcag: '1.3.1';
813
- readonly weight: 4;
878
+ readonly headElementsBad: {
879
+ readonly summary: 'element in head invalid';
880
+ readonly why: 'Browser processes the page improperly';
881
+ readonly wcag: '4.1.1';
882
+ readonly weight: 3;
814
883
  };
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;
884
+ readonly headingConfusion: {
885
+ readonly summary: 'heading names repeated';
886
+ readonly why: 'User cannot differentiate parts of the page';
887
+ readonly wcag: '1.3.1';
888
+ readonly weight: 2;
820
889
  };
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';
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';
825
894
  readonly weight: 3;
826
895
  };
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';
830
- readonly wcag: '4.1.2';
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';
831
900
  readonly weight: 4;
832
901
  };
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;
838
- };
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';
843
- readonly weight: 1;
844
- };
845
- readonly dirBad: {
846
- readonly summary: 'dir invalid';
847
- readonly why: 'Item may behave improperly';
848
- readonly wcag: '4.1.2';
902
+ readonly headingLength: {
903
+ readonly summary: 'heading abnormally long';
904
+ readonly why: 'User has difficulty understanding the topic of a part of the page';
905
+ readonly wcag: '1.3.1';
849
906
  readonly weight: 1;
850
907
  };
851
- readonly attributeBad: {
852
- readonly summary: 'attribute invalid';
853
- readonly why: 'Item behaves improperly';
908
+ readonly headingLevelSkip: {
909
+ readonly summary: 'heading level skipped';
910
+ readonly why: 'Helper misdescribes the page';
854
911
  readonly wcag: '1.3.1';
855
- readonly weight: 4;
912
+ readonly weight: 2;
856
913
  };
857
- readonly sizesAttributeBad: {
858
- readonly summary: 'sizes attribute invalid';
859
- readonly why: 'Item behaves improperly';
914
+ readonly headingMisuseRisk: {
915
+ readonly summary: 'heading used for styling?';
916
+ readonly why: 'User cannot understand the page structure';
860
917
  readonly wcag: '1.3.1';
861
- readonly weight: 4;
918
+ readonly weight: 2;
862
919
  };
863
- readonly attributeValueBad: {
864
- readonly summary: 'attribute value invalid';
865
- readonly why: 'Item behaves improperly';
920
+ readonly headingNone: {
921
+ readonly summary: 'headings missing';
922
+ readonly why: 'User cannot survey parts of the page';
866
923
  readonly wcag: '1.3.1';
867
- readonly weight: 4;
924
+ readonly weight: 3;
925
+ readonly max: 1;
868
926
  };
869
- readonly attributeValueRisk: {
870
- readonly summary: 'attribute value bad?';
871
- readonly why: 'Item may behave improperly';
872
- readonly wcag: '4.1.2';
873
- readonly weight: 1;
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;
874
932
  };
875
- readonly attributeMissing: {
876
- readonly summary: 'attribute missing';
877
- readonly why: 'Item behaves improperly';
933
+ readonly headingsEmbedded: {
934
+ readonly summary: 'heading within a heading';
935
+ readonly why: 'User cannot understand the page organization';
878
936
  readonly wcag: '4.1.2';
879
937
  readonly weight: 4;
880
938
  };
881
- readonly roleMissing: {
882
- readonly summary: 'role missing';
883
- readonly why: 'Item behaves improperly';
884
- readonly wcag: '4.1.2';
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;
944
+ };
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: '2.4.6';
949
+ readonly weight: 1;
950
+ };
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: '3.3.2';
885
961
  readonly weight: 3;
886
962
  };
887
- readonly roleMissingRisk: {
888
- readonly summary: 'role missing?';
889
- readonly why: 'Item may behave improperly';
890
- readonly wcag: '4.1.2';
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';
891
967
  readonly weight: 1;
892
968
  };
893
- readonly ariaMissing: {
894
- readonly summary: 'aria attribute missing';
969
+ readonly hrConfusionRisk: {
970
+ readonly summary: 'hr misused';
971
+ readonly why: 'User cannot get help on the nature of segments of the page';
972
+ readonly wcag: '1.3.1';
973
+ readonly weight: 1;
974
+ };
975
+ readonly idEmpty: {
976
+ readonly summary: 'ID empty';
895
977
  readonly why: 'Item behaves improperly';
896
- readonly wcag: '4.1.2';
978
+ readonly wcag: '1.3.1';
897
979
  readonly weight: 4;
898
980
  };
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';
981
+ readonly iframeTitleBad: {
982
+ readonly summary: 'iframe not named';
983
+ readonly why: 'User cannot get help on the topic of an embedded page';
908
984
  readonly wcag: '4.1.2';
909
985
  readonly weight: 4;
910
986
  };
911
- readonly ariaRedundant: {
912
- readonly summary: 'aria attribute redundant';
913
- readonly why: 'Document includes unnecessary code';
914
- 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: '';
915
991
  readonly weight: 1;
916
992
  };
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';
993
+ readonly imageBanned: {
994
+ readonly summary: 'image prohibited';
995
+ readonly why: 'Browser fails to display an image';
996
+ readonly wcag: '1.4';
997
+ readonly weight: 3;
998
+ };
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';
921
1003
  readonly weight: 4;
922
1004
  };
923
- readonly ariaReferenceBad: {
924
- readonly summary: 'aria reference invalid';
925
- readonly why: 'Item behavior violates user expectations';
926
- readonly wcag: '1.3.1';
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';
927
1009
  readonly weight: 4;
928
1010
  };
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;
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';
1015
+ readonly weight: 4;
934
1016
  };
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';
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';
939
1021
  readonly weight: 4;
940
1022
  };
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';
945
- readonly weight: 1;
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;
946
1028
  };
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';
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';
951
1033
  readonly weight: 4;
952
1034
  };
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';
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';
957
1039
  readonly weight: 1;
958
1040
  };
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;
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;
964
1046
  };
965
- readonly contrastAAA: {
966
- readonly summary: 'text contrast improvable';
967
- readonly why: 'Content is not easy to understand';
968
- readonly wcag: '1.4.6';
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';
969
1051
  readonly weight: 1;
970
1052
  };
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';
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;
1058
+ };
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';
1063
+ readonly weight: 1;
1064
+ };
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,253 +1086,274 @@ 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;
1129
+ readonly weight: 4;
1036
1130
  };
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;
1131
+ readonly justification: {
1132
+ readonly summary: 'text fully justified';
1133
+ readonly why: 'Text is difficult to read';
1134
+ readonly wcag: '1.4.8';
1135
+ readonly weight: 2;
1042
1136
  };
1043
- readonly decorativeTitle: {
1044
- readonly summary: 'decorative element has title';
1045
- readonly why: 'Hovering-produced information is denied to a keyboard-only user';
1137
+ readonly justificationRisk: {
1138
+ readonly summary: 'justification undefined?';
1139
+ readonly why: 'Text may be difficult to read';
1140
+ readonly wcag: '1.4.8';
1141
+ readonly weight: 1;
1142
+ };
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;
1148
+ };
1149
+ readonly labelBadID: {
1150
+ readonly summary: 'label reference invalid';
1151
+ readonly why: 'User cannot get help understanding an item in a form';
1046
1152
  readonly wcag: '1.3.1';
1047
- readonly weight: 2;
1153
+ readonly weight: 4;
1048
1154
  };
1049
- readonly titleRedundant: {
1050
- readonly summary: 'title attribute redundant';
1051
- readonly why: 'Helper repeats the explanation of an item';
1155
+ readonly labelClash: {
1156
+ readonly summary: 'label types incompatible';
1157
+ readonly why: 'User cannot get reliable help on the topics of form items';
1052
1158
  readonly wcag: '1.3.1';
1159
+ readonly weight: 2;
1160
+ };
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';
1053
1165
  readonly weight: 1;
1054
1166
  };
1055
- readonly titleEmpty: {
1056
- readonly summary: 'title attribute empty';
1057
- readonly why: 'Hovering does not get the promised explanation of an item';
1167
+ readonly labeledHidden: {
1168
+ readonly summary: 'control hidden but labeled';
1169
+ readonly why: 'Document includes unnecessary code';
1058
1170
  readonly wcag: '1.3.1';
1059
1171
  readonly weight: 1;
1060
1172
  };
1061
- readonly docTypeMissing: {
1062
- readonly summary: 'DOCTYPE missing';
1063
- readonly why: 'Browser processes the page improperly';
1173
+ readonly labelEmpty: {
1174
+ readonly summary: 'label empty';
1175
+ readonly why: 'User cannot get help on the topics of form items';
1064
1176
  readonly wcag: '1.3.1';
1065
- readonly weight: 4;
1066
- readonly max: 1;
1177
+ readonly weight: 3;
1067
1178
  };
1068
- readonly docTypeMisplaced: {
1069
- readonly summary: 'DOCTYPE in invalid location';
1070
- readonly why: 'Browser processes the page improperly';
1179
+ readonly labelForBad: {
1180
+ readonly summary: 'label referent ineligible';
1181
+ readonly why: 'User cannot get help understanding an item in a form';
1071
1182
  readonly wcag: '1.3.1';
1072
1183
  readonly weight: 4;
1073
- readonly max: 1;
1074
1184
  };
1075
- readonly docTypeBad: {
1076
- readonly summary: 'DOCTYPE invalid';
1077
- readonly why: 'Browser processes the page improperly';
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';
1078
1188
  readonly wcag: '1.3.1';
1079
- readonly weight: 3;
1080
- readonly max: 1;
1189
+ readonly weight: 1;
1081
1190
  };
1082
- readonly pageTitleBad: {
1083
- readonly summary: 'page title invalid';
1084
- readonly why: 'Browser processes the page improperly';
1191
+ readonly labelNoText: {
1192
+ readonly summary: 'label not named';
1193
+ readonly why: 'User cannot get help on the topic of a form item';
1085
1194
  readonly wcag: '1.3.1';
1195
+ readonly weight: 4;
1196
+ };
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;
1202
+ };
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';
1086
1207
  readonly weight: 3;
1087
- readonly max: 1;
1088
1208
  };
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';
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';
1093
1213
  readonly weight: 4;
1094
- readonly max: 1;
1095
1214
  };
1096
- readonly headElementsBad: {
1097
- readonly summary: 'element in head invalid';
1098
- readonly why: 'Browser processes the page improperly';
1099
- readonly wcag: '4.1.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';
1100
1219
  readonly weight: 3;
1101
1220
  };
1102
- readonly headingLevelSkip: {
1103
- readonly summary: 'heading level skipped';
1104
- readonly why: 'Helper misdescribes 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';
1105
1224
  readonly wcag: '1.3.1';
1106
1225
  readonly weight: 2;
1107
1226
  };
1108
- readonly headingStructure: {
1109
- readonly summary: 'heading structure illogical';
1110
- readonly why: 'Helper misdescribes the page';
1111
- readonly wcag: '1.3.1';
1112
- readonly weight: 2;
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;
1113
1232
  };
1114
- readonly headingConfusion: {
1115
- readonly summary: 'heading names repeated';
1116
- readonly why: 'User cannot differentiate parts of the page';
1117
- readonly wcag: '1.3.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';
1118
1237
  readonly weight: 2;
1119
1238
  };
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';
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';
1124
1243
  readonly weight: 2;
1125
1244
  };
1126
- readonly headingNone: {
1127
- readonly summary: 'headings missing';
1128
- readonly why: 'User cannot survey parts of the page';
1129
- readonly wcag: '1.3.1';
1130
- readonly weight: 3;
1131
- readonly max: 1;
1245
+ readonly lineHeightBad: {
1246
+ readonly summary: 'line height misdefined';
1247
+ readonly why: 'Text is difficult to read';
1248
+ readonly wcag: '1.4.8';
1249
+ readonly weight: 4;
1132
1250
  };
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';
1251
+ readonly lineHeightLow: {
1252
+ readonly summary: 'line height low';
1253
+ readonly why: 'Text is difficult to read';
1254
+ readonly wcag: '1.4.8';
1137
1255
  readonly weight: 2;
1138
- readonly max: 1;
1139
1256
  };
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';
1144
- readonly weight: 3;
1145
- readonly max: 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;
1146
1262
  };
1147
- readonly docHeadingNotH1: {
1148
- readonly summary: 'primary heading not h1';
1149
- readonly why: 'User cannot understand the topic of the page';
1263
+ readonly linkBrokenRisk: {
1264
+ readonly summary: 'link incomplete';
1265
+ readonly why: 'User may fail to reach a promised location';
1150
1266
  readonly wcag: '1.3.1';
1151
1267
  readonly weight: 2;
1152
- readonly max: 1;
1153
1268
  };
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';
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';
1158
1273
  readonly weight: 1;
1159
1274
  };
1160
- readonly sectionHeadingless: {
1161
- readonly summary: 'section heading missing';
1162
- readonly why: 'User cannot understand the topic of a part of the page';
1275
+ readonly linkElementBad: {
1276
+ readonly summary: 'link element invalid';
1277
+ readonly why: 'Document fails to get a needed external resource';
1163
1278
  readonly wcag: '1.3.1';
1164
- readonly weight: 1;
1279
+ readonly weight: 4;
1165
1280
  };
1166
- readonly headingLength: {
1167
- readonly summary: 'heading abnormally long';
1168
- readonly why: 'User has difficulty understanding the topic of a part of the page';
1281
+ readonly linkElementMisplaced: {
1282
+ readonly summary: 'link element misplaced';
1283
+ readonly why: 'Document fails to get a needed external resource';
1169
1284
  readonly wcag: '1.3.1';
1170
- readonly weight: 1;
1285
+ readonly weight: 4;
1171
1286
  };
1172
- readonly blockQuoteShort: {
1173
- readonly summary: 'block quote abnormally short';
1174
- readonly why: 'Content can be made easier to read';
1175
- readonly wcag: '1.4.8';
1176
- 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;
1177
1292
  };
1178
- readonly justification: {
1179
- readonly summary: 'text fully justified';
1180
- readonly why: 'Text is difficult to read';
1181
- readonly wcag: '1.4.8';
1182
- readonly weight: 2;
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;
1183
1298
  };
1184
- readonly justificationRisk: {
1185
- readonly summary: 'justification undefined?';
1186
- readonly why: 'Text may be difficult to read';
1187
- readonly wcag: '1.4.8';
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';
1188
1303
  readonly weight: 1;
1189
1304
  };
1190
- readonly nonSemanticText: {
1191
- readonly summary: 'semantic properties represented with styles';
1192
- readonly why: 'User cannot get help to fully understand the text';
1193
- readonly wcag: '1.3.1';
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;
1310
+ };
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';
1194
1315
  readonly weight: 2;
1195
1316
  };
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';
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';
1200
1321
  readonly weight: 1;
1201
1322
  };
1202
- readonly pseudoCodeRisk: {
1203
- readonly summary: 'pre use dubious';
1204
- readonly why: 'User may be unable to get help to fully understand the text';
1205
- readonly wcag: '1.3.1';
1206
- readonly weight: 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';
1327
+ readonly weight: 4;
1207
1328
  };
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';
1211
- readonly wcag: '1.3.1';
1212
- 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;
1213
1334
  };
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';
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';
1218
1339
  readonly weight: 1;
1219
1340
  };
1220
- readonly pseudoLinkScriptRisk: {
1221
- readonly summary: 'script used instead of link';
1222
- readonly why: 'Link may misbehave';
1341
+ readonly linksNoNav: {
1342
+ readonly summary: 'links not grouped as nav';
1343
+ readonly why: 'User cannot get help identifying links as a navigation tool';
1223
1344
  readonly wcag: '1.3.1';
1224
- readonly weight: 1;
1345
+ readonly weight: 2;
1225
1346
  };
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';
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;
1352
+ };
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';
1230
1357
  readonly weight: 1;
1231
1358
  };
1232
1359
  readonly listChild: {
@@ -1241,46 +1368,146 @@ declare const issuesData: {
1241
1368
  readonly wcag: '1.3.1';
1242
1369
  readonly weight: 4;
1243
1370
  };
1244
- readonly descriptionOrphan: {
1245
- readonly summary: 'description list orphan';
1246
- readonly why: 'User cannot get help on whether an item is in a list';
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';
1375
+ readonly weight: 3;
1376
+ };
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';
1381
+ readonly weight: 2;
1382
+ readonly max: 1;
1383
+ };
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';
1388
+ readonly weight: 2;
1389
+ readonly max: 1;
1390
+ };
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';
1395
+ readonly weight: 2;
1396
+ };
1397
+ readonly menuItemless: {
1398
+ readonly summary: 'menu items missing';
1399
+ readonly why: 'User cannot reach promised menu items';
1247
1400
  readonly wcag: '1.3.1';
1248
1401
  readonly weight: 4;
1249
1402
  };
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';
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';
1254
1407
  readonly weight: 4;
1255
1408
  };
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;
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;
1261
1414
  };
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;
1415
+ readonly metaAttributeBad: {
1416
+ readonly summary: 'meta attribute value invalid';
1417
+ readonly why: 'Browser processes the page incorrectly';
1418
+ readonly wcag: '4.1';
1419
+ readonly weight: 3;
1267
1420
  };
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';
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;
1426
+ };
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';
1431
+ readonly weight: 4;
1432
+ readonly max: 1;
1433
+ };
1434
+ readonly metaCharsetLate: {
1435
+ readonly summary: 'meta charset declared too late';
1436
+ readonly why: 'Browser may display incorrect text';
1437
+ readonly wcag: '4.1';
1438
+ readonly weight: 4;
1439
+ };
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;
1445
+ };
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';
1450
+ readonly weight: 4;
1451
+ };
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';
1271
1461
  readonly wcag: '1.3.1';
1462
+ readonly weight: 4;
1463
+ };
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;
1469
+ };
1470
+ readonly negativeIndent: {
1471
+ readonly summary: 'negative text-indent';
1472
+ readonly why: 'Helper may hide content from a user';
1473
+ readonly wcag: '4.1';
1474
+ readonly weight: 3;
1475
+ };
1476
+ readonly nestingBad: {
1477
+ readonly summary: 'nesting invalid';
1478
+ readonly why: 'Document contains invalid code';
1479
+ readonly wcag: '4.1.1';
1480
+ readonly weight: 3;
1481
+ };
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;
1487
+ };
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';
1272
1492
  readonly weight: 1;
1273
1493
  };
1274
- readonly pseudoNavList: {
1275
- readonly summary: 'nav links not list';
1276
- readonly why: 'User cannot get help recognizing a list of navigation links';
1277
- 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';
1278
1498
  readonly weight: 2;
1499
+ readonly max: 1;
1279
1500
  };
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';
1501
+ readonly nonElement: {
1502
+ readonly summary: 'element unknown';
1503
+ readonly why: 'Document 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';
1510
+ readonly wcag: '1.3.1';
1284
1511
  readonly weight: 1;
1285
1512
  };
1286
1513
  readonly nonQuoteRisk: {
@@ -1289,22 +1516,16 @@ declare const issuesData: {
1289
1516
  readonly wcag: '3.2.4';
1290
1517
  readonly weight: 1;
1291
1518
  };
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';
1302
- readonly weight: 4;
1303
- };
1304
- readonly selectFlatRisk: {
1305
- readonly summary: 'option groups not marked?';
1306
- readonly why: 'User may be unable to get help recognizing groups of options';
1519
+ readonly nonSemanticText: {
1520
+ readonly summary: 'semantic properties represented with styles';
1521
+ readonly why: 'User cannot get help to fully understand the text';
1307
1522
  readonly wcag: '1.3.1';
1523
+ readonly weight: 2;
1524
+ };
1525
+ readonly nonWebLink: {
1526
+ readonly summary: 'link to non-web resource';
1527
+ readonly why: 'Document points to harder-to-use resources';
1528
+ readonly wcag: '1.3.3';
1308
1529
  readonly weight: 1;
1309
1530
  };
1310
1531
  readonly noOptionFocusable: {
@@ -1313,610 +1534,570 @@ declare const issuesData: {
1313
1534
  readonly wcag: '2.1.1';
1314
1535
  readonly weight: 1;
1315
1536
  };
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';
1320
- readonly weight: 3;
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';
1541
+ readonly weight: 1;
1321
1542
  };
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';
1326
- readonly weight: 2;
1543
+ readonly notValidatable: {
1544
+ readonly summary: 'item makes testing inconclusive';
1545
+ readonly why: 'Item prevents a conclusive accessibility test';
1546
+ readonly wcag: '4.1';
1547
+ readonly weight: 1;
1327
1548
  };
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';
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: '1.1.1';
1332
1553
  readonly weight: 1;
1333
1554
  };
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;
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;
1339
1560
  };
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';
1344
- readonly weight: 2;
1345
- };
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;
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';
1565
+ readonly weight: 4;
1351
1566
  };
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';
1356
- readonly weight: 2;
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';
1571
+ readonly weight: 1;
1357
1572
  };
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';
1361
- readonly wcag: '1.3.1';
1573
+ readonly obsolete: {
1574
+ readonly summary: 'code obsolete';
1575
+ readonly why: 'Document contains code that is no longer standard';
1576
+ readonly wcag: '4.1';
1362
1577
  readonly weight: 3;
1363
1578
  };
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;
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;
1369
1584
  };
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';
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';
1374
1589
  readonly weight: 1;
1590
+ readonly max: 1;
1375
1591
  };
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';
1380
- 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;
1381
1597
  };
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;
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';
1602
+ readonly weight: 1;
1387
1603
  };
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';
1604
+ readonly paddingBad: {
1605
+ readonly summary: 'CSS padding invalid';
1606
+ readonly why: 'Content is displayed improperly';
1607
+ readonly wcag: '4.1';
1392
1608
  readonly weight: 4;
1393
1609
  };
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';
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';
1398
1614
  readonly weight: 4;
1615
+ readonly max: 1;
1399
1616
  };
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';
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';
1404
1621
  readonly weight: 4;
1622
+ readonly max: 1;
1405
1623
  };
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';
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';
1628
+ readonly weight: 3;
1629
+ readonly max: 1;
1630
+ };
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';
1410
1635
  readonly weight: 4;
1636
+ readonly max: 1;
1411
1637
  };
1412
- readonly cellHeadersOutsideTable: {
1413
- readonly summary: 'cell headers outside table';
1414
- readonly why: 'User cannot get help on relationships in a table';
1638
+ readonly pageTitleBad: {
1639
+ readonly summary: 'page title invalid';
1640
+ readonly why: 'Browser processes the page improperly';
1415
1641
  readonly wcag: '1.3.1';
1416
- readonly weight: 4;
1642
+ readonly weight: 3;
1643
+ readonly max: 1;
1417
1644
  };
1418
- readonly cellHeadersAmbiguityRisk: {
1419
- readonly summary: 'cell headers ambiguous?';
1420
- readonly why: 'User may be unable to get help on relationships in a table';
1645
+ readonly parentBad: {
1646
+ readonly summary: 'parent invalid';
1647
+ readonly why: 'User cannot properly operate an item';
1421
1648
  readonly wcag: '1.3.1';
1422
- readonly weight: 2;
1649
+ readonly weight: 4;
1423
1650
  };
1424
- readonly tableHeaderless: {
1425
- readonly summary: 'table headers missing';
1426
- readonly why: 'User cannot get help on relationships in a table';
1651
+ readonly parentMissing: {
1652
+ readonly summary: 'parent missing';
1653
+ readonly why: 'Keyboard-only user cannot operate a custom tool';
1427
1654
  readonly wcag: '1.3.1';
1655
+ readonly weight: 4;
1656
+ };
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';
1428
1661
  readonly weight: 3;
1429
1662
  };
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';
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';
1434
1667
  readonly weight: 3;
1435
1668
  };
1436
- readonly tableHeaderCellless: {
1437
- readonly summary: 'table-header cell missing';
1438
- readonly why: 'User cannot get help on relationships in a table';
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';
1673
+ readonly weight: 1;
1674
+ };
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';
1679
+ readonly weight: 1;
1680
+ };
1681
+ readonly presentationChild: {
1682
+ readonly summary: 'presentation element has child';
1683
+ readonly why: 'Keyboard-only user cannot reach an item intended to be reachable';
1439
1684
  readonly wcag: '1.3.1';
1440
1685
  readonly weight: 4;
1441
1686
  };
1442
- readonly TableHeaderScopeRisk: {
1443
- readonly summary: 'Table scope ambiguous?';
1444
- readonly why: 'User may be unable to get help on relationships in a table';
1687
+ readonly presentationGlobal: {
1688
+ readonly summary: 'global ARIA attribute nullifies presentation role';
1689
+ readonly why: 'User encounters content intended to be hidden';
1445
1690
  readonly wcag: '1.3.1';
1446
1691
  readonly weight: 1;
1447
1692
  };
1448
- readonly tableHeaderEmpty: {
1449
- readonly summary: 'table header empty';
1450
- readonly why: 'User cannot get help on relationships in a table';
1693
+ readonly presentationTabIndexed: {
1694
+ readonly summary: 'tabindex attribute nullifies presentation role';
1695
+ readonly why: 'User encounters content intended to be hidden';
1451
1696
  readonly wcag: '1.3.1';
1452
- readonly weight: 2;
1697
+ readonly weight: 1;
1453
1698
  };
1454
- readonly tableHead: {
1455
- readonly summary: 'thead missing';
1456
- readonly why: 'User cannot get help on parts of a table';
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';
1457
1708
  readonly wcag: '1.3.1';
1458
1709
  readonly weight: 1;
1459
1710
  };
1460
- readonly tableBody: {
1461
- readonly summary: 'tbody missing';
1462
- readonly why: 'User cannot get help on parts of a table';
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';
1463
1714
  readonly wcag: '1.3.1';
1464
1715
  readonly weight: 1;
1465
1716
  };
1466
- readonly tableEmbedded: {
1467
- readonly summary: 'table embedded in table';
1468
- readonly why: 'User cannot get help on relationships in a table';
1717
+ readonly pseudoLinkScriptRisk: {
1718
+ readonly summary: 'script used instead of link';
1719
+ readonly why: 'Link may misbehave';
1469
1720
  readonly wcag: '1.3.1';
1470
- readonly weight: 2;
1471
- };
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';
1476
1721
  readonly weight: 1;
1477
1722
  };
1478
- readonly formInTable: {
1479
- readonly summary: 'form embedded in table';
1480
- readonly why: 'Navigation in a form may confuse a keyboard-only user';
1481
- readonly wcag: '2.1.1';
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';
1482
1727
  readonly weight: 1;
1483
1728
  };
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';
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';
1488
1733
  readonly weight: 1;
1489
1734
  };
1490
- readonly tableHeading: {
1491
- readonly summary: 'heading located in table';
1492
- readonly why: 'Complex relationships in a table may confuse a user';
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';
1493
1738
  readonly wcag: '1.3.1';
1494
1739
  readonly weight: 1;
1495
1740
  };
1496
- readonly controlNoText: {
1497
- readonly summary: 'control not named';
1498
- readonly why: 'User cannot get help on how to operate a form item';
1741
+ readonly pseudoNavList: {
1742
+ readonly summary: 'nav links not list';
1743
+ readonly why: 'User cannot get help recognizing a list of navigation links';
1499
1744
  readonly wcag: '1.3.1';
1500
- readonly weight: 4;
1745
+ readonly weight: 2;
1501
1746
  };
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';
1506
- readonly weight: 4;
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;
1507
1752
  };
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';
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';
1512
1757
  readonly weight: 1;
1513
1758
  };
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';
1518
- readonly weight: 3;
1519
- };
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;
1525
- };
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';
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';
1530
1763
  readonly weight: 1;
1531
1764
  };
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';
1765
+ readonly refresh: {
1766
+ readonly summary: 'element reloads or redirects';
1767
+ readonly why: 'Document change may surprise a user';
1768
+ readonly wcag: '2.2.1';
1542
1769
  readonly weight: 3;
1543
1770
  };
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';
1548
- readonly weight: 1;
1549
- readonly max: 1;
1550
- };
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';
1771
+ readonly regionConfusion: {
1772
+ readonly summary: 'regions not distinctly named';
1773
+ readonly why: 'User cannot get help on how some of the page is organized';
1774
+ readonly wcag: '1.3.6';
1555
1775
  readonly weight: 3;
1556
1776
  };
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';
1561
- readonly weight: 4;
1562
- };
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;
1568
- };
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';
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';
1573
1781
  readonly weight: 4;
1574
1782
  };
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;
1580
- };
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';
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';
1585
1787
  readonly weight: 1;
1788
+ readonly max: 2;
1586
1789
  };
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;
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';
1794
+ readonly weight: 4;
1592
1795
  };
1593
- readonly allCaps: {
1594
- readonly summary: 'all-capital text';
1595
- readonly why: 'Text is difficult to read';
1596
- readonly wcag: '3.1.5';
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';
1597
1800
  readonly weight: 1;
1598
1801
  };
1599
- readonly allItalics: {
1600
- readonly summary: 'all-italic text';
1601
- readonly why: 'Text is difficult to read';
1602
- readonly wcag: '3.1.5';
1603
- readonly weight: 1;
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';
1806
+ readonly weight: 3;
1604
1807
  };
1605
- readonly textDistortion: {
1606
- readonly summary: 'text distortion';
1607
- readonly why: 'Text is difficult to read';
1608
- readonly wcag: '3.1.5';
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';
1609
1812
  readonly weight: 1;
1610
1813
  };
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;
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;
1617
1819
  };
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';
1622
- readonly weight: 1;
1820
+ readonly roleMissing: {
1821
+ readonly summary: 'role missing';
1822
+ readonly why: 'Item behaves improperly';
1823
+ readonly wcag: '4.1.2';
1824
+ readonly weight: 3;
1623
1825
  };
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';
1826
+ readonly roleMissingRisk: {
1827
+ readonly summary: 'role missing?';
1828
+ readonly why: 'Item may behave improperly';
1829
+ readonly wcag: '4.1.2';
1628
1830
  readonly weight: 1;
1629
1831
  };
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;
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;
1635
1837
  };
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;
1838
+ readonly roleRedundant: {
1839
+ readonly summary: 'role redundant';
1840
+ readonly why: 'Document includes unnecessary code';
1841
+ readonly wcag: '4.1.2';
1842
+ readonly weight: 1;
1641
1843
  };
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';
1844
+ readonly scriptBanned: {
1845
+ readonly summary: 'script prohibited';
1846
+ readonly why: 'Browser processes the page improperly';
1847
+ readonly wcag: '4.1';
1646
1848
  readonly weight: 3;
1647
1849
  };
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;
1654
- };
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;
1661
- };
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';
1666
- readonly weight: 2;
1667
- readonly max: 1;
1850
+ readonly scriptElementBad: {
1851
+ readonly summary: 'script element invalid';
1852
+ readonly why: 'Browser processes the page improperly';
1853
+ readonly wcag: '1.3.1';
1854
+ readonly weight: 4;
1668
1855
  };
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;
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;
1674
1861
  };
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';
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';
1679
1866
  readonly weight: 3;
1680
1867
  };
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;
1687
- };
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';
1692
- readonly weight: 3;
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;
1693
1873
  };
1694
- readonly documentConfusion: {
1695
- readonly summary: 'page elements not distinctly named';
1874
+ readonly searchConfusion: {
1875
+ readonly summary: 'searches not distinctly named';
1696
1876
  readonly why: 'User cannot get help on how some of the page is organized';
1697
1877
  readonly wcag: '1.3.6';
1698
1878
  readonly weight: 3;
1699
1879
  };
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';
1704
- readonly weight: 4;
1705
- };
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;
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';
1884
+ readonly weight: 1;
1711
1885
  };
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';
1886
+ readonly selectBad: {
1887
+ readonly summary: 'select element invalid';
1888
+ readonly why: 'User cannot properly select among options';
1889
+ readonly wcag: '4.1.2';
1716
1890
  readonly weight: 4;
1717
1891
  };
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;
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;
1723
1897
  };
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';
1728
- readonly weight: 3;
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;
1729
1903
  };
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';
1904
+ readonly selectNoText: {
1905
+ readonly summary: 'select not named';
1906
+ readonly why: 'User cannot get help on the topic of a list of options';
1907
+ readonly wcag: '4.1.2';
1734
1908
  readonly weight: 3;
1735
1909
  };
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';
1740
- readonly weight: 3;
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;
1741
1915
  };
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';
1916
+ readonly sizesAttributeBad: {
1917
+ readonly summary: 'sizes attribute invalid';
1918
+ readonly why: 'Item behaves improperly';
1919
+ readonly wcag: '1.3.1';
1746
1920
  readonly weight: 4;
1747
1921
  };
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';
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';
1752
1926
  readonly weight: 3;
1927
+ readonly max: 2;
1753
1928
  };
1754
- readonly searchConfusion: {
1755
- readonly summary: 'searches not distinctly named';
1756
- readonly why: 'User cannot get help on how some of the page is organized';
1757
- readonly wcag: '1.3.6';
1758
- readonly weight: 3;
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';
1933
+ readonly weight: 4;
1759
1934
  };
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';
1935
+ readonly specRulesScriptBad: {
1936
+ readonly summary: 'speculation rules script element invalid';
1937
+ readonly why: 'Document navigation performs poorly';
1938
+ readonly wcag: '1.3.1';
1764
1939
  readonly weight: 1;
1765
1940
  };
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';
1770
- readonly weight: 4;
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;
1771
1947
  };
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';
1948
+ readonly stylesheetBanned: {
1949
+ readonly summary: 'stylesheet prohibited';
1950
+ readonly why: 'Browser displays the page improperly';
1951
+ readonly wcag: '1.4';
1776
1952
  readonly weight: 3;
1777
1953
  };
1778
- readonly focusableRole: {
1779
- readonly summary: 'focusable element not active';
1780
- readonly why: 'Keyboard-only user cannot navigate properly to the operable items';
1781
- readonly wcag: '4.1.2';
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';
1782
1958
  readonly weight: 3;
1783
1959
  };
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';
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';
1788
1964
  readonly weight: 4;
1789
1965
  };
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';
1794
- readonly weight: 3;
1795
- };
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';
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';
1800
1970
  readonly weight: 4;
1801
1971
  };
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';
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';
1806
1976
  readonly weight: 4;
1807
1977
  };
1808
- readonly multipleLabelees: {
1809
- readonly summary: 'labeled element ambiguous';
1810
- readonly why: 'User cannot get help on the topic of a form item';
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';
1811
1987
  readonly wcag: '1.3.1';
1812
1988
  readonly weight: 4;
1813
1989
  };
1814
- readonly labeledHidden: {
1815
- readonly summary: 'control hidden but labeled';
1816
- readonly why: 'Document includes unnecessary code';
1990
+ readonly tabIndexExtra: {
1991
+ readonly summary: 'tabindex redundant';
1992
+ readonly why: 'Revision risks interfering with navigation by a keyboard-only user';
1817
1993
  readonly wcag: '1.3.1';
1818
1994
  readonly weight: 1;
1819
1995
  };
1820
- readonly contentHidden: {
1821
- readonly summary: 'page hidden';
1822
- readonly why: 'User cannot get the page content';
1823
- readonly wcag: '2.4.7';
1996
+ readonly tabIndexInt: {
1997
+ readonly summary: 'tabindex not integer';
1998
+ readonly why: 'Keyboard-only user cannot follow the intended navigation sequence';
1999
+ readonly wcag: '1.3.1';
1824
2000
  readonly weight: 4;
1825
- readonly max: 1;
1826
2001
  };
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';
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';
2011
+ readonly wcag: '1.3.1';
2012
+ readonly weight: 1;
2013
+ };
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;
2019
+ };
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';
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';
1975
2143
  readonly wcag: '1.3.1';
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';
1982
- readonly weight: 1;
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;
1983
2151
  };
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';
2152
+ readonly textDistortion: {
2153
+ readonly summary: 'text distortion';
2154
+ readonly why: 'Text is difficult to read';
2155
+ readonly wcag: '3.1.5';
1988
2156
  readonly weight: 1;
1989
2157
  };
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';
1994
- readonly weight: 1;
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;
1995
2163
  };
1996
- readonly tabIndexEmpty: {
1997
- readonly summary: 'tabindex empty';
1998
- readonly why: 'Keyboard-only user cannot follow the intended navigation sequence';
2164
+ readonly titleBad: {
2165
+ readonly summary: 'title attribute invalid';
2166
+ readonly why: 'User gets too little, too much, or repeated help explaining an item';
1999
2167
  readonly wcag: '1.3.1';
2000
- readonly weight: 4;
2168
+ readonly weight: 1;
2001
2169
  };
2002
- readonly tabIndexInt: {
2003
- readonly summary: 'tabindex not integer';
2004
- readonly why: 'Keyboard-only user cannot follow the intended navigation sequence';
2170
+ readonly titleEmpty: {
2171
+ readonly summary: 'title attribute empty';
2172
+ readonly why: 'Hovering does not get the promised explanation of an item';
2005
2173
  readonly wcag: '1.3.1';
2006
- readonly weight: 4;
2174
+ readonly weight: 1;
2007
2175
  };
2008
- readonly tabIndexExtra: {
2009
- readonly summary: 'tabindex redundant';
2010
- readonly why: 'Revision risks interfering with navigation by a keyboard-only user';
2176
+ readonly titleLong: {
2177
+ readonly summary: 'title long';
2178
+ readonly why: 'Hovering makes an overly verbose explanation pop up';
2179
+ readonly wcag: '3.1.5';
2180
+ readonly weight: 2;
2181
+ };
2182
+ readonly titleNotText: {
2183
+ readonly summary: 'title contains ASCII art';
2184
+ readonly why: 'Hovering makes a hard-to-understand explanation pop up';
2185
+ readonly wcag: '3.1.5';
2186
+ readonly weight: 2;
2187
+ };
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: 'Document 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: 'Document 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: {
@@ -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: 'video not named';
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.2';
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
  };
@@ -2289,4 +2289,4 @@ declare const getEngineRuleCounts: (ruleTable?: Record<string, EngineRules>) =>
2289
2289
  declare const issueRules: Record<string, Record<string, ruleIDsByType>>;
2290
2290
  declare const issueStats: Record<string, IssueEngineRuleCounts>;
2291
2291
  //#endregion
2292
- export { Ignore, IssueEngineRuleCounts, Outcome, Uncertainty, getEditableData, getEngineRuleCounts, getSingleEngineIssues, issueRules, issueStats, issues, makeIssueRules, makeIssueStats, ruleIDsByType, rules };
2292
+ export { IssueEngineRuleCounts, Outcome, Uncertainty, WhyIgnore, getEditableData, getEngineRuleCounts, getSingleEngineIssues, issueRules, issueStats, issues, makeIssueRules, makeIssueStats, ruleIDsByType, rules };