testaro-issues 0.5.1 → 0.6.0

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