testilo 3.2.0 → 3.4.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.
- package/README.md +33 -3
- package/compare.js +8 -8
- package/package.json +1 -1
- package/procs/compare/cp0/index.html +10 -5
- package/procs/compare/cp0/index.js +2 -4
- package/procs/compare/cp1/index.html +46 -0
- package/procs/compare/cp1/index.js +71 -0
- package/procs/digest/dp10a/index.html +3 -3
- package/procs/digest/dp10b/index.html +74 -0
- package/procs/digest/dp10b/index.js +130 -0
- package/procs/digest/dp10c/index.html +55 -0
- package/procs/digest/dp10c/index.js +129 -0
- package/procs/score/sp10b.js +507 -0
- package/procs/score/sp10c.js +465 -0
- package/reports/comparative/railsites.html +47 -0
- package/reports/comparative/style.css +4 -0
- package/reports/digested/35k1r-railpass.html +1130 -844
- package/reports/digested/3aee6-eurail.html +36233 -0
- package/reports/digested/dp10a/35k1r-railpass.html +9302 -0
- package/reports/digested/dp10a/3aee6-eurail.html +35782 -0
- package/reports/digested/style.css +2 -2
- package/reports/raw/3aee6-eurail.json +35250 -0
- package/reports/scored/35k1r-railpass.json +559 -175
- package/reports/scored/3aee6-eurail.json +35957 -0
- package/score.js +1 -1
- package/scoring/data/duplications.json +22 -22
- package/scoring/data/groups.json +335 -0
- package/scoring/data/packageRules/alfa.tsv +82 -0
- package/scoring/data/packageRules/axe.js +390 -0
- package/scoring/data/packageRules/ibm.tsv +159 -0
- package/scoring/data/packageRules/tenon.tsv +14 -0
- package/scoring/data/packageRules/wave.json +1617 -0
- package/scoring/data/packageRules/wave.tsv +55 -0
- package/scoring/data/testGroups.json +1067 -0
- package/scoring/{data → procs}/correlation.js +0 -0
- package/scoring/{data → procs}/dupCounts.js +0 -0
- package/scoring/procs/groups.js +61 -0
- package/scoring/{data → procs}/packageData.js +0 -0
- package/scoring/{data → procs}/packageIssues.js +0 -0
- package/scoring/procs/regroup.js +39 -0
- package/reports/comparative/35k1r-.html +0 -41
|
@@ -0,0 +1,1067 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tests": {
|
|
3
|
+
"aatt": {
|
|
4
|
+
"e:F77": {
|
|
5
|
+
"groupID": "duplicateID",
|
|
6
|
+
"what": "Duplicate id attribute value"
|
|
7
|
+
},
|
|
8
|
+
"e:H36": {
|
|
9
|
+
"groupID": "imageInputNoText",
|
|
10
|
+
"what": "Image submit button missing an alt attribute"
|
|
11
|
+
},
|
|
12
|
+
"e:H37": {
|
|
13
|
+
"groupID": "imageNoText",
|
|
14
|
+
"what": "Img element missing an alt attribute"
|
|
15
|
+
},
|
|
16
|
+
"e:H57": {
|
|
17
|
+
"groupID": "pageLanguage",
|
|
18
|
+
"what": "Lang attribute of the document element"
|
|
19
|
+
},
|
|
20
|
+
"e:H58": {
|
|
21
|
+
"groupID": "languageChange",
|
|
22
|
+
"what": "Change in language is not marked"
|
|
23
|
+
},
|
|
24
|
+
"w:G141": {
|
|
25
|
+
"groupID": "headingStructure",
|
|
26
|
+
"what": "Heading structure is not logically nested"
|
|
27
|
+
},
|
|
28
|
+
"e:ARIA6+H53": {
|
|
29
|
+
"groupID": "objectNoText",
|
|
30
|
+
"what": "Object elements must contain a text alternative"
|
|
31
|
+
},
|
|
32
|
+
"e:H24": {
|
|
33
|
+
"groupID": "imageMapAreaNoText",
|
|
34
|
+
"what": "Area element in an image map missing an alt attribute"
|
|
35
|
+
},
|
|
36
|
+
"w:G90": {
|
|
37
|
+
"groupID": "eventKeyboard",
|
|
38
|
+
"what": "Event handler functionality not available by keyboard"
|
|
39
|
+
},
|
|
40
|
+
"w:H44": {
|
|
41
|
+
"groupID": "labelForBadID",
|
|
42
|
+
"what": "Label for attribute is bad ID"
|
|
43
|
+
},
|
|
44
|
+
"w:H98": {
|
|
45
|
+
"groupID": "autocompleteBad",
|
|
46
|
+
"what": "Autocomplete attribute wrong"
|
|
47
|
+
},
|
|
48
|
+
"w:F24": {
|
|
49
|
+
"groupID": "contrastRisk",
|
|
50
|
+
"what": "Inline background color needs complementary foreground color"
|
|
51
|
+
},
|
|
52
|
+
"w:G18": {
|
|
53
|
+
"groupID": "contrastRisk",
|
|
54
|
+
"what": "Contrast adequacy not determinable"
|
|
55
|
+
},
|
|
56
|
+
"w:H42": {
|
|
57
|
+
"groupID": "pseudoHeadingRisk",
|
|
58
|
+
"what": "Heading coding should be used if intended as a heading"
|
|
59
|
+
},
|
|
60
|
+
"w:H48": {
|
|
61
|
+
"groupID": "pseudoListRisk",
|
|
62
|
+
"what": "Navigation links should be coded as list"
|
|
63
|
+
},
|
|
64
|
+
"w:H91": {
|
|
65
|
+
"groupID": "selectNoText",
|
|
66
|
+
"what": "Select element has no value available to an accessibility API"
|
|
67
|
+
},
|
|
68
|
+
"w:H85": {
|
|
69
|
+
"groupID": "selectFlatRisk",
|
|
70
|
+
"what": "If selection list contains groups of related options, they should be grouped with optgroup"
|
|
71
|
+
},
|
|
72
|
+
"e:F68": {
|
|
73
|
+
"groupID": "nameValue",
|
|
74
|
+
"what": "Form control wrongly labeled or unlabeled"
|
|
75
|
+
},
|
|
76
|
+
"e:H91": {
|
|
77
|
+
"groupID": "nameValue",
|
|
78
|
+
"what": "Missing name or value of form control or link"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"alfa": {
|
|
82
|
+
"r3": {
|
|
83
|
+
"groupID": "duplicateID",
|
|
84
|
+
"what": "Element ID is not unique"
|
|
85
|
+
},
|
|
86
|
+
"r28": {
|
|
87
|
+
"groupID": "imageInputNoText",
|
|
88
|
+
"what": "Image input element has no accessible name"
|
|
89
|
+
},
|
|
90
|
+
"r2": {
|
|
91
|
+
"groupID": "imageNoText",
|
|
92
|
+
"what": "Image has no accessible name"
|
|
93
|
+
},
|
|
94
|
+
"r4": {
|
|
95
|
+
"groupID": "pageLanguage",
|
|
96
|
+
"what": "Lang attribute missing, empty, or only whitespace"
|
|
97
|
+
},
|
|
98
|
+
"r5": {
|
|
99
|
+
"groupID": "pageLanguageBad",
|
|
100
|
+
"what": "Lang attribute has no valid primary language tag"
|
|
101
|
+
},
|
|
102
|
+
"r7": {
|
|
103
|
+
"groupID": "languageChange",
|
|
104
|
+
"what": "Lang attribute has no valid primary language subtag"
|
|
105
|
+
},
|
|
106
|
+
"r53": {
|
|
107
|
+
"groupID": "headingStructure",
|
|
108
|
+
"what": "Heading skips one or more levels"
|
|
109
|
+
},
|
|
110
|
+
"r11": {
|
|
111
|
+
"groupID": "linkNoText",
|
|
112
|
+
"what": "Link has no accessible name"
|
|
113
|
+
},
|
|
114
|
+
"r12": {
|
|
115
|
+
"groupID": "buttonNoText",
|
|
116
|
+
"what": "Button has no accessible name"
|
|
117
|
+
},
|
|
118
|
+
"r42": {
|
|
119
|
+
"groupID": "parentMissing",
|
|
120
|
+
"what": "Element is not owned by an element of its required context role"
|
|
121
|
+
},
|
|
122
|
+
"r43": {
|
|
123
|
+
"groupID": "svgImageNoText",
|
|
124
|
+
"what": "SVG image element has no accessible name"
|
|
125
|
+
},
|
|
126
|
+
"r47": {
|
|
127
|
+
"groupID": "metaBansZoom",
|
|
128
|
+
"what": "Meta element restricts zooming"
|
|
129
|
+
},
|
|
130
|
+
"r68": {
|
|
131
|
+
"groupID": "childMissing",
|
|
132
|
+
"what": "Element owns no elements as required by its semantic role"
|
|
133
|
+
},
|
|
134
|
+
"r93": {
|
|
135
|
+
"groupID": "leadingFrozen",
|
|
136
|
+
"what": "Style attribute with !important prevents adjusting line height"
|
|
137
|
+
},
|
|
138
|
+
"r73": {
|
|
139
|
+
"groupID": "noLeading",
|
|
140
|
+
"what": "Paragraphs of text have insufficient line height"
|
|
141
|
+
},
|
|
142
|
+
"r13": {
|
|
143
|
+
"groupID": "iframeNoText",
|
|
144
|
+
"what": "Iframe has no accessible name"
|
|
145
|
+
},
|
|
146
|
+
"r20": {
|
|
147
|
+
"groupID": "roleBadAttribute",
|
|
148
|
+
"what": "Aria- attribute is not defined"
|
|
149
|
+
},
|
|
150
|
+
"r10": {
|
|
151
|
+
"groupID": "autocompleteBad",
|
|
152
|
+
"what": "Autocomplete attribute has no valid value"
|
|
153
|
+
},
|
|
154
|
+
"r69": {
|
|
155
|
+
"groupID": "contrastAA",
|
|
156
|
+
"what": "Text outside widget has subminimum contrast"
|
|
157
|
+
},
|
|
158
|
+
"r66": {
|
|
159
|
+
"groupID": "contrastAAA",
|
|
160
|
+
"what": "Text contrast less than AAA requires"
|
|
161
|
+
},
|
|
162
|
+
"r65": {
|
|
163
|
+
"groupID": "focusIndication",
|
|
164
|
+
"what": "Element in sequential focus order has no visible focus"
|
|
165
|
+
},
|
|
166
|
+
"r57": {
|
|
167
|
+
"groupID": "textBeyondLandmarks",
|
|
168
|
+
"what": "Perceivable text content not included in any landmark"
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"axe": {
|
|
172
|
+
"duplicate-id": {
|
|
173
|
+
"groupID": "duplicateID",
|
|
174
|
+
"what": "ID attribute value must be unique"
|
|
175
|
+
},
|
|
176
|
+
"input-image-alt": {
|
|
177
|
+
"groupID": "imageInputNoText",
|
|
178
|
+
"what": "Image buttons must have alternate text"
|
|
179
|
+
},
|
|
180
|
+
"image-alt": {
|
|
181
|
+
"groupID": "imageNoText",
|
|
182
|
+
"what": "Images must have alternate text"
|
|
183
|
+
},
|
|
184
|
+
"html-has-lang": {
|
|
185
|
+
"groupID": "pageLanguage",
|
|
186
|
+
"what": "Html element must have a lang attribute"
|
|
187
|
+
},
|
|
188
|
+
"html-lang-valid": {
|
|
189
|
+
"groupID": "pageLanguageBad",
|
|
190
|
+
"what": "Html element must have a valid value for the lang attribute"
|
|
191
|
+
},
|
|
192
|
+
"valid-lang": {
|
|
193
|
+
"groupID": "languageChange",
|
|
194
|
+
"what": "Lang attribute must have a valid value"
|
|
195
|
+
},
|
|
196
|
+
"heading-order": {
|
|
197
|
+
"groupID": "headingStructure",
|
|
198
|
+
"what": "Heading levels should only increase by one"
|
|
199
|
+
},
|
|
200
|
+
"object-alt": {
|
|
201
|
+
"groupID": "objectNoText",
|
|
202
|
+
"what": "Object elements must have alternate text"
|
|
203
|
+
},
|
|
204
|
+
"area-alt": {
|
|
205
|
+
"groupID": "imageMapAreaNoText",
|
|
206
|
+
"what": "Active area elements must have alternate text"
|
|
207
|
+
},
|
|
208
|
+
"link-name": {
|
|
209
|
+
"groupID": "linkNoText",
|
|
210
|
+
"what": "Links must have discernible text"
|
|
211
|
+
},
|
|
212
|
+
"aria-command-name": {
|
|
213
|
+
"groupID": "buttonNoText",
|
|
214
|
+
"what": "ARIA commands must have an accessible name"
|
|
215
|
+
},
|
|
216
|
+
"aria-required-parent": {
|
|
217
|
+
"groupID": "parentMissing",
|
|
218
|
+
"what": "Certain ARIA roles must be contained by particular parents"
|
|
219
|
+
},
|
|
220
|
+
"svg-img-alt": {
|
|
221
|
+
"groupID": "svgImageNoText",
|
|
222
|
+
"what": "SVG elements with an img role must have an alternative text"
|
|
223
|
+
},
|
|
224
|
+
"meta-viewport": {
|
|
225
|
+
"groupID": "metaBansZoom",
|
|
226
|
+
"what": "Zooming and scaling should not be disabled"
|
|
227
|
+
},
|
|
228
|
+
"aria-required-children": {
|
|
229
|
+
"groupID": "childMissing",
|
|
230
|
+
"what": "Certain ARIA roles must contain particular children"
|
|
231
|
+
},
|
|
232
|
+
"avoid-inline-spacing": {
|
|
233
|
+
"groupID": "leadingFrozen",
|
|
234
|
+
"what": "Inline text spacing must be adjustable with custom stylesheets"
|
|
235
|
+
},
|
|
236
|
+
"frame-title": {
|
|
237
|
+
"groupID": "iframeNoText",
|
|
238
|
+
"what": "Frames must have an accessible name"
|
|
239
|
+
},
|
|
240
|
+
"aria-allowed-role": {
|
|
241
|
+
"groupID": "roleBad",
|
|
242
|
+
"what": "ARIA role should be appropriate for the element"
|
|
243
|
+
},
|
|
244
|
+
"aria-required-attr": {
|
|
245
|
+
"groupID": "roleMissingAttribute",
|
|
246
|
+
"what": "Required ARIA attributes must be provided"
|
|
247
|
+
},
|
|
248
|
+
"aria-valid-attr": {
|
|
249
|
+
"groupID": "roleBadAttribute",
|
|
250
|
+
"what": "ARIA attributes must conform to valid names"
|
|
251
|
+
},
|
|
252
|
+
"autocomplete-valid": {
|
|
253
|
+
"groupID": "autocompleteBad",
|
|
254
|
+
"what": "Autocomplete attribute must be used correctly"
|
|
255
|
+
},
|
|
256
|
+
"color-contrast": {
|
|
257
|
+
"groupID": "contrastAA",
|
|
258
|
+
"what": "Elements must have sufficient color contrast"
|
|
259
|
+
},
|
|
260
|
+
"empty-heading": {
|
|
261
|
+
"groupID": "headingEmpty",
|
|
262
|
+
"what": "Headings should not be empty"
|
|
263
|
+
},
|
|
264
|
+
"image-redundant-alt": {
|
|
265
|
+
"groupID": "imageTextRedundant",
|
|
266
|
+
"what": "Text of buttons and links should not be repeated in the image alternative"
|
|
267
|
+
},
|
|
268
|
+
"document-title": {
|
|
269
|
+
"groupID": "pageTitle",
|
|
270
|
+
"what": "Documents must contain a title element"
|
|
271
|
+
},
|
|
272
|
+
"page-has-heading-one": {
|
|
273
|
+
"groupID": "h1Missing",
|
|
274
|
+
"what": "Page should contain a level-one heading"
|
|
275
|
+
},
|
|
276
|
+
"select-name": {
|
|
277
|
+
"groupID": "selectNoText",
|
|
278
|
+
"what": "Select element must have an accessible name"
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
"ibm": {
|
|
282
|
+
"RPT_Elem_UniqueId": {
|
|
283
|
+
"groupID": "duplicateID",
|
|
284
|
+
"what": "Element id attribute values must be unique within a document"
|
|
285
|
+
},
|
|
286
|
+
"v:WCAG20_Input_ExplicitLabelImage": {
|
|
287
|
+
"groupID": "imageInputNoText",
|
|
288
|
+
"what": "Input element of type image should have a text alternative"
|
|
289
|
+
},
|
|
290
|
+
"v:WCAG20_Img_HasAlt": {
|
|
291
|
+
"groupID": "imageNoText",
|
|
292
|
+
"what": "Images must have an alt attribute if they convey meaning, or alt=\"\" if decorative"
|
|
293
|
+
},
|
|
294
|
+
"WCAG20_Html_HasLang": {
|
|
295
|
+
"groupID": "pageLanguage",
|
|
296
|
+
"what": "Page detected as HTML, but has no lang attribute"
|
|
297
|
+
},
|
|
298
|
+
"v:WCAG20_Elem_Lang_Valid": {
|
|
299
|
+
"groupID": "pageLanguageBad",
|
|
300
|
+
"what": "Lang attribute does not include a valid primary language"
|
|
301
|
+
},
|
|
302
|
+
"v:WCAG20_Object_HasText": {
|
|
303
|
+
"groupID": "objectNoText",
|
|
304
|
+
"what": "Object elements must have a text alternative"
|
|
305
|
+
},
|
|
306
|
+
"v:HAAC_Img_UsemapAlt": {
|
|
307
|
+
"groupID": "imageMapAreaNoText",
|
|
308
|
+
"what": "Image map or child area has no text alternative"
|
|
309
|
+
},
|
|
310
|
+
"v:WCAG20_Area_HasAlt": {
|
|
311
|
+
"groupID": "imageMapAreaNoText",
|
|
312
|
+
"what": "Area element in an image map has no text alternative"
|
|
313
|
+
},
|
|
314
|
+
"v:WCAG20_A_HasText": {
|
|
315
|
+
"groupID": "linkNoText",
|
|
316
|
+
"what": "Hyperlinks must have a text description"
|
|
317
|
+
},
|
|
318
|
+
"v:WCAG20_Frame_HasTitle": {
|
|
319
|
+
"groupID": "iframeNoText",
|
|
320
|
+
"what": "Inline frames must have a unique, non-empty title attribute"
|
|
321
|
+
},
|
|
322
|
+
"v:aria_semantics_role": {
|
|
323
|
+
"groupID": "roleBad",
|
|
324
|
+
"what": "ARIA roles must be valid for the element to which they are assigned"
|
|
325
|
+
},
|
|
326
|
+
"v:Rpt_Aria_RequiredProperties": {
|
|
327
|
+
"groupID": "roleMissingAttribute",
|
|
328
|
+
"what": "ARIA role on an element must have required attributes"
|
|
329
|
+
},
|
|
330
|
+
"v:Rpt_Aria_ValidProperty": {
|
|
331
|
+
"groupID": "roleBadAttribute",
|
|
332
|
+
"what": "ARIA attributes must be valid for the role"
|
|
333
|
+
},
|
|
334
|
+
"v:WCAG21_Input_Autocomplete": {
|
|
335
|
+
"groupID": "autocompleteBad",
|
|
336
|
+
"what": "Autocomplete attribute token(s) must be appropriate for the input form field"
|
|
337
|
+
},
|
|
338
|
+
"v:IBMA_Color_Contrast_WCAG2AA": {
|
|
339
|
+
"groupID": "contrastAA",
|
|
340
|
+
"what": "Contrast ratio of text with background must meet WCAG 2.1 AA"
|
|
341
|
+
},
|
|
342
|
+
"v:RPT_Header_HasContent": {
|
|
343
|
+
"groupID": "headingEmpty",
|
|
344
|
+
"what": "Heading elements must provide descriptive text"
|
|
345
|
+
},
|
|
346
|
+
"v:WCAG20_Img_LinkTextNotRedundant": {
|
|
347
|
+
"groupID": "imageTextRedundant",
|
|
348
|
+
"what": "Text alternative for image within link should not repeat link text or adjacent link text"
|
|
349
|
+
},
|
|
350
|
+
"v:Rpt_Aria_ValidIdRef": {
|
|
351
|
+
"groupID": "ariaReferenceBad",
|
|
352
|
+
"what": "ARIA property must reference non-empty unique id of visible element"
|
|
353
|
+
},
|
|
354
|
+
"v:WCAG20_Elem_UniqueAccessKey": {
|
|
355
|
+
"groupID": "accessKeyDuplicate",
|
|
356
|
+
"what": "Accesskey attribute values on each element must be unique for the page"
|
|
357
|
+
},
|
|
358
|
+
"v:WCAG20_Input_RadioChkInFieldSet": {
|
|
359
|
+
"groupID": "fieldSetMissing",
|
|
360
|
+
"what": "Input is in a different group than another with the name"
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"wave": {
|
|
364
|
+
"e:alt_input_missing": {
|
|
365
|
+
"groupID": "imageInputNoText",
|
|
366
|
+
"what": "Image button missing alternative text"
|
|
367
|
+
},
|
|
368
|
+
"e:alt_missing": {
|
|
369
|
+
"groupID": "imageNoText",
|
|
370
|
+
"what": "Missing alternative text"
|
|
371
|
+
},
|
|
372
|
+
"e:language_missing": {
|
|
373
|
+
"groupID": "pageLanguage",
|
|
374
|
+
"what": "Language missing or invalid"
|
|
375
|
+
},
|
|
376
|
+
"a:heading_skipped": {
|
|
377
|
+
"groupID": "headingStructure",
|
|
378
|
+
"what": "Skipped heading level"
|
|
379
|
+
},
|
|
380
|
+
"a:plugin": {
|
|
381
|
+
"groupID": "objectNoText",
|
|
382
|
+
"what": "An unidentified plugin is present"
|
|
383
|
+
},
|
|
384
|
+
"e:alt_area_missing": {
|
|
385
|
+
"groupID": "imageMapAreaNoText",
|
|
386
|
+
"what": "Image map area missing alternative text"
|
|
387
|
+
},
|
|
388
|
+
"a:event_handler": {
|
|
389
|
+
"groupID": "eventKeyboard",
|
|
390
|
+
"what": "Device-dependent event handler"
|
|
391
|
+
},
|
|
392
|
+
"a:label_orphaned": {
|
|
393
|
+
"groupID": "labelForBadID",
|
|
394
|
+
"what": "Orphaned form label"
|
|
395
|
+
},
|
|
396
|
+
"e:link_empty": {
|
|
397
|
+
"groupID": "linkNoText",
|
|
398
|
+
"what": "Link contains no text"
|
|
399
|
+
},
|
|
400
|
+
"a:link_redundant": {
|
|
401
|
+
"groupID": "linkPair",
|
|
402
|
+
"what": "Adjacent links go to same URL"
|
|
403
|
+
},
|
|
404
|
+
"e:button_empty": {
|
|
405
|
+
"groupID": "buttonNoText",
|
|
406
|
+
"what": "Button is empty or has no value text"
|
|
407
|
+
},
|
|
408
|
+
"c:contrast": {
|
|
409
|
+
"groupID": "contrastAA",
|
|
410
|
+
"what": "Very low contrast"
|
|
411
|
+
},
|
|
412
|
+
"e:heading_empty": {
|
|
413
|
+
"groupID": "headingEmpty",
|
|
414
|
+
"what": "Empty heading"
|
|
415
|
+
},
|
|
416
|
+
"e:title_invalid": {
|
|
417
|
+
"groupID": "pageTitle",
|
|
418
|
+
"what": "Missing or uninformative page title"
|
|
419
|
+
},
|
|
420
|
+
"a:h1_missing": {
|
|
421
|
+
"groupID": "h1Missing",
|
|
422
|
+
"what": "Missing first level heading"
|
|
423
|
+
},
|
|
424
|
+
"a:select_missing_label": {
|
|
425
|
+
"groupID": "selectNoText",
|
|
426
|
+
"what": "Select missing label"
|
|
427
|
+
},
|
|
428
|
+
"e:aria_reference_broken": {
|
|
429
|
+
"groupID": "ariaReferenceBad",
|
|
430
|
+
"what": "Broken ARIA reference"
|
|
431
|
+
},
|
|
432
|
+
"a:accesskey": {
|
|
433
|
+
"groupID": "accessKeyDuplicate",
|
|
434
|
+
"what": "Accesskey"
|
|
435
|
+
},
|
|
436
|
+
"a:fieldset_missing": {
|
|
437
|
+
"groupID": "fieldSetMissing",
|
|
438
|
+
"what": "Missing fieldset"
|
|
439
|
+
},
|
|
440
|
+
"e:label_missing": {
|
|
441
|
+
"groupID": "nameValue",
|
|
442
|
+
"what": "Missing form label"
|
|
443
|
+
}
|
|
444
|
+
},
|
|
445
|
+
"tenon": {
|
|
446
|
+
"57": {
|
|
447
|
+
"groupID": "linkNoText",
|
|
448
|
+
"what": "Link has no text inside it"
|
|
449
|
+
},
|
|
450
|
+
"79": {
|
|
451
|
+
"groupID": "linkTitleRedundant",
|
|
452
|
+
"what": "Link has a title attribute that is the same as the text inside the link"
|
|
453
|
+
},
|
|
454
|
+
"95": {
|
|
455
|
+
"groupID": "contrastAAA",
|
|
456
|
+
"what": "Element has insufficient color contrast (Level AAA)"
|
|
457
|
+
},
|
|
458
|
+
"98": {
|
|
459
|
+
"groupID": "linkTextsSame",
|
|
460
|
+
"what": "These links have the same text but different destinations"
|
|
461
|
+
},
|
|
462
|
+
"129": {
|
|
463
|
+
"groupID": "pseudoLinkRisk",
|
|
464
|
+
"what": "CSS underline on text that is not a link"
|
|
465
|
+
},
|
|
466
|
+
"144": {
|
|
467
|
+
"groupID": "leadingClipsText",
|
|
468
|
+
"what": "Line height insufficent to properly display computed font size"
|
|
469
|
+
},
|
|
470
|
+
"152": {
|
|
471
|
+
"groupID": "targetSize",
|
|
472
|
+
"what": "Actionable element is smaller than the minimum required size"
|
|
473
|
+
},
|
|
474
|
+
"153": {
|
|
475
|
+
"groupID": "allCaps",
|
|
476
|
+
"what": "Long string of text is in all caps"
|
|
477
|
+
},
|
|
478
|
+
"155": {
|
|
479
|
+
"groupID": "headingStructure",
|
|
480
|
+
"what": "These headings are not structured in a hierarchical manner"
|
|
481
|
+
},
|
|
482
|
+
"218": {
|
|
483
|
+
"groupID": "linkForcesNewWindow",
|
|
484
|
+
"what": "Link opens in a new window without user control"
|
|
485
|
+
}
|
|
486
|
+
},
|
|
487
|
+
"testaro": {
|
|
488
|
+
"role": {
|
|
489
|
+
"groupID": "roleBad",
|
|
490
|
+
"what": "Nonexistent or implicit-overriding role"
|
|
491
|
+
},
|
|
492
|
+
"radioSet": {
|
|
493
|
+
"groupID": "fieldSetMissing",
|
|
494
|
+
"what": "No or invalid grouping of radio buttons in fieldsets"
|
|
495
|
+
},
|
|
496
|
+
"bulk": {
|
|
497
|
+
"groupID": "visibleBulk",
|
|
498
|
+
"what": "Count of visible elements as a multiple of 300"
|
|
499
|
+
},
|
|
500
|
+
"embAc": {
|
|
501
|
+
"groupID": "activeEmbedding",
|
|
502
|
+
"what": "Active elements embedded in links or buttons"
|
|
503
|
+
},
|
|
504
|
+
"focAll": {
|
|
505
|
+
"groupID": "tabFocusability",
|
|
506
|
+
"what": "Discrepancy between elements that should be and that are Tab-focusable"
|
|
507
|
+
},
|
|
508
|
+
"focInd": {
|
|
509
|
+
"groupID": "focusIndication",
|
|
510
|
+
"what": "Focused element displaying no or nostandard focus indicator"
|
|
511
|
+
},
|
|
512
|
+
"focOp": {
|
|
513
|
+
"groupID": "focusableOperable",
|
|
514
|
+
"what": "Operable elements that cannot be Tab-focused and vice versa"
|
|
515
|
+
},
|
|
516
|
+
"hover": {
|
|
517
|
+
"groupID": "hoverSurprise",
|
|
518
|
+
"what": "Content changes caused by hovering"
|
|
519
|
+
},
|
|
520
|
+
"labClash": {
|
|
521
|
+
"groupID": "labelClash",
|
|
522
|
+
"what": "Incompatible label types"
|
|
523
|
+
},
|
|
524
|
+
"linkUl": {
|
|
525
|
+
"groupID": "linkUnderlines",
|
|
526
|
+
"what": "Non-underlined inline links"
|
|
527
|
+
},
|
|
528
|
+
"menuNav": {
|
|
529
|
+
"groupID": "menuNavigation",
|
|
530
|
+
"what": "Nonstandard keyboard navigation among focusable menu items"
|
|
531
|
+
},
|
|
532
|
+
"tabNav": {
|
|
533
|
+
"groupID": "tabNavigation",
|
|
534
|
+
"what": "Nonstandard keyboard navigation among tabs"
|
|
535
|
+
},
|
|
536
|
+
"motion": {
|
|
537
|
+
"groupID": "spontaneousMotion",
|
|
538
|
+
"what": "Change of visible content not requested by user"
|
|
539
|
+
},
|
|
540
|
+
"styleDiff": {
|
|
541
|
+
"groupID": "inconsistentStyles",
|
|
542
|
+
"what": "Heading, link, and button style inconsistencies"
|
|
543
|
+
},
|
|
544
|
+
"zIndex": {
|
|
545
|
+
"groupID": "zIndexNotZero",
|
|
546
|
+
"what": "Layering with nondefault z-index values"
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
},
|
|
550
|
+
"groups": {
|
|
551
|
+
"duplicateID": {
|
|
552
|
+
"aatt": [
|
|
553
|
+
"e:F77 Duplicate id attribute value"
|
|
554
|
+
],
|
|
555
|
+
"alfa": [
|
|
556
|
+
"r3 Element ID is not unique"
|
|
557
|
+
],
|
|
558
|
+
"axe": [
|
|
559
|
+
"duplicate-id ID attribute value must be unique"
|
|
560
|
+
],
|
|
561
|
+
"ibm": [
|
|
562
|
+
"RPT_Elem_UniqueId Element id attribute values must be unique within a document"
|
|
563
|
+
]
|
|
564
|
+
},
|
|
565
|
+
"imageInputNoText": {
|
|
566
|
+
"aatt": [
|
|
567
|
+
"e:H36 Image submit button missing an alt attribute"
|
|
568
|
+
],
|
|
569
|
+
"alfa": [
|
|
570
|
+
"r28 Image input element has no accessible name"
|
|
571
|
+
],
|
|
572
|
+
"axe": [
|
|
573
|
+
"input-image-alt Image buttons must have alternate text"
|
|
574
|
+
],
|
|
575
|
+
"ibm": [
|
|
576
|
+
"v:WCAG20_Input_ExplicitLabelImage Input element of type image should have a text alternative"
|
|
577
|
+
],
|
|
578
|
+
"wave": [
|
|
579
|
+
"e:alt_input_missing Image button missing alternative text"
|
|
580
|
+
]
|
|
581
|
+
},
|
|
582
|
+
"imageNoText": {
|
|
583
|
+
"aatt": [
|
|
584
|
+
"e:H37 Img element missing an alt attribute"
|
|
585
|
+
],
|
|
586
|
+
"alfa": [
|
|
587
|
+
"r2 Image has no accessible name"
|
|
588
|
+
],
|
|
589
|
+
"axe": [
|
|
590
|
+
"image-alt Images must have alternate text"
|
|
591
|
+
],
|
|
592
|
+
"ibm": [
|
|
593
|
+
"v:WCAG20_Img_HasAlt Images must have an alt attribute if they convey meaning, or alt=\"\" if decorative"
|
|
594
|
+
],
|
|
595
|
+
"wave": [
|
|
596
|
+
"e:alt_missing Missing alternative text"
|
|
597
|
+
]
|
|
598
|
+
},
|
|
599
|
+
"pageLanguage": {
|
|
600
|
+
"aatt": [
|
|
601
|
+
"e:H57 Lang attribute of the document element"
|
|
602
|
+
],
|
|
603
|
+
"alfa": [
|
|
604
|
+
"r4 Lang attribute missing, empty, or only whitespace"
|
|
605
|
+
],
|
|
606
|
+
"axe": [
|
|
607
|
+
"html-has-lang Html element must have a lang attribute"
|
|
608
|
+
],
|
|
609
|
+
"ibm": [
|
|
610
|
+
"WCAG20_Html_HasLang Page detected as HTML, but has no lang attribute"
|
|
611
|
+
],
|
|
612
|
+
"wave": [
|
|
613
|
+
"e:language_missing Language missing or invalid"
|
|
614
|
+
]
|
|
615
|
+
},
|
|
616
|
+
"pageLanguageBad": {
|
|
617
|
+
"alfa": [
|
|
618
|
+
"r5 Lang attribute has no valid primary language tag"
|
|
619
|
+
],
|
|
620
|
+
"axe": [
|
|
621
|
+
"html-lang-valid Html element must have a valid value for the lang attribute"
|
|
622
|
+
],
|
|
623
|
+
"ibm": [
|
|
624
|
+
"v:WCAG20_Elem_Lang_Valid Lang attribute does not include a valid primary language"
|
|
625
|
+
]
|
|
626
|
+
},
|
|
627
|
+
"languageChange": {
|
|
628
|
+
"aatt": [
|
|
629
|
+
"e:H58 Change in language is not marked"
|
|
630
|
+
],
|
|
631
|
+
"alfa": [
|
|
632
|
+
"r7 Lang attribute has no valid primary language subtag"
|
|
633
|
+
],
|
|
634
|
+
"axe": [
|
|
635
|
+
"valid-lang Lang attribute must have a valid value"
|
|
636
|
+
]
|
|
637
|
+
},
|
|
638
|
+
"headingStructure": {
|
|
639
|
+
"aatt": [
|
|
640
|
+
"w:G141 Heading structure is not logically nested"
|
|
641
|
+
],
|
|
642
|
+
"alfa": [
|
|
643
|
+
"r53 Heading skips one or more levels"
|
|
644
|
+
],
|
|
645
|
+
"axe": [
|
|
646
|
+
"heading-order Heading levels should only increase by one"
|
|
647
|
+
],
|
|
648
|
+
"tenon": [
|
|
649
|
+
"155 These headings are not structured in a hierarchical manner"
|
|
650
|
+
],
|
|
651
|
+
"wave": [
|
|
652
|
+
"a:heading_skipped Skipped heading level"
|
|
653
|
+
]
|
|
654
|
+
},
|
|
655
|
+
"objectNoText": {
|
|
656
|
+
"aatt": [
|
|
657
|
+
"e:ARIA6+H53 Object elements must contain a text alternative"
|
|
658
|
+
],
|
|
659
|
+
"axe": [
|
|
660
|
+
"object-alt Object elements must have alternate text"
|
|
661
|
+
],
|
|
662
|
+
"ibm": [
|
|
663
|
+
"v:WCAG20_Object_HasText Object elements must have a text alternative"
|
|
664
|
+
],
|
|
665
|
+
"wave": [
|
|
666
|
+
"a:plugin An unidentified plugin is present"
|
|
667
|
+
]
|
|
668
|
+
},
|
|
669
|
+
"imageMapAreaNoText": {
|
|
670
|
+
"aatt": [
|
|
671
|
+
"e:H24 Area element in an image map missing an alt attribute"
|
|
672
|
+
],
|
|
673
|
+
"axe": [
|
|
674
|
+
"area-alt Active area elements must have alternate text"
|
|
675
|
+
],
|
|
676
|
+
"ibm": [
|
|
677
|
+
"v:HAAC_Img_UsemapAlt Image map or child area has no text alternative",
|
|
678
|
+
"v:WCAG20_Area_HasAlt Area element in an image map has no text alternative"
|
|
679
|
+
],
|
|
680
|
+
"wave": [
|
|
681
|
+
"e:alt_area_missing Image map area missing alternative text"
|
|
682
|
+
]
|
|
683
|
+
},
|
|
684
|
+
"eventKeyboard": {
|
|
685
|
+
"aatt": [
|
|
686
|
+
"w:G90 Event handler functionality not available by keyboard"
|
|
687
|
+
],
|
|
688
|
+
"wave": [
|
|
689
|
+
"a:event_handler Device-dependent event handler"
|
|
690
|
+
]
|
|
691
|
+
},
|
|
692
|
+
"labelForBadID": {
|
|
693
|
+
"aatt": [
|
|
694
|
+
"w:H44 Label for attribute is bad ID"
|
|
695
|
+
],
|
|
696
|
+
"wave": [
|
|
697
|
+
"a:label_orphaned Orphaned form label"
|
|
698
|
+
]
|
|
699
|
+
},
|
|
700
|
+
"linkNoText": {
|
|
701
|
+
"alfa": [
|
|
702
|
+
"r11 Link has no accessible name"
|
|
703
|
+
],
|
|
704
|
+
"axe": [
|
|
705
|
+
"link-name Links must have discernible text"
|
|
706
|
+
],
|
|
707
|
+
"ibm": [
|
|
708
|
+
"v:WCAG20_A_HasText Hyperlinks must have a text description"
|
|
709
|
+
],
|
|
710
|
+
"tenon": [
|
|
711
|
+
"57 Link has no text inside it"
|
|
712
|
+
],
|
|
713
|
+
"wave": [
|
|
714
|
+
"e:link_empty Link contains no text"
|
|
715
|
+
]
|
|
716
|
+
},
|
|
717
|
+
"linkTextsSame": {
|
|
718
|
+
"tenon": [
|
|
719
|
+
"98 These links have the same text but different destinations"
|
|
720
|
+
]
|
|
721
|
+
},
|
|
722
|
+
"linkPair": {
|
|
723
|
+
"wave": [
|
|
724
|
+
"a:link_redundant Adjacent links go to same URL"
|
|
725
|
+
]
|
|
726
|
+
},
|
|
727
|
+
"linkForcesNewWindow": {
|
|
728
|
+
"tenon": [
|
|
729
|
+
"218 Link opens in a new window without user control"
|
|
730
|
+
]
|
|
731
|
+
},
|
|
732
|
+
"buttonNoText": {
|
|
733
|
+
"alfa": [
|
|
734
|
+
"r12 Button has no accessible name"
|
|
735
|
+
],
|
|
736
|
+
"axe": [
|
|
737
|
+
"aria-command-name ARIA commands must have an accessible name"
|
|
738
|
+
],
|
|
739
|
+
"wave": [
|
|
740
|
+
"e:button_empty Button is empty or has no value text"
|
|
741
|
+
]
|
|
742
|
+
},
|
|
743
|
+
"parentMissing": {
|
|
744
|
+
"alfa": [
|
|
745
|
+
"r42 Element is not owned by an element of its required context role"
|
|
746
|
+
],
|
|
747
|
+
"axe": [
|
|
748
|
+
"aria-required-parent Certain ARIA roles must be contained by particular parents"
|
|
749
|
+
]
|
|
750
|
+
},
|
|
751
|
+
"svgImageNoText": {
|
|
752
|
+
"alfa": [
|
|
753
|
+
"r43 SVG image element has no accessible name"
|
|
754
|
+
],
|
|
755
|
+
"axe": [
|
|
756
|
+
"svg-img-alt SVG elements with an img role must have an alternative text"
|
|
757
|
+
]
|
|
758
|
+
},
|
|
759
|
+
"metaBansZoom": {
|
|
760
|
+
"alfa": [
|
|
761
|
+
"r47 Meta element restricts zooming"
|
|
762
|
+
],
|
|
763
|
+
"axe": [
|
|
764
|
+
"meta-viewport Zooming and scaling should not be disabled"
|
|
765
|
+
]
|
|
766
|
+
},
|
|
767
|
+
"childMissing": {
|
|
768
|
+
"alfa": [
|
|
769
|
+
"r68 Element owns no elements as required by its semantic role"
|
|
770
|
+
],
|
|
771
|
+
"axe": [
|
|
772
|
+
"aria-required-children Certain ARIA roles must contain particular children"
|
|
773
|
+
]
|
|
774
|
+
},
|
|
775
|
+
"leadingFrozen": {
|
|
776
|
+
"alfa": [
|
|
777
|
+
"r93 Style attribute with !important prevents adjusting line height"
|
|
778
|
+
],
|
|
779
|
+
"axe": [
|
|
780
|
+
"avoid-inline-spacing Inline text spacing must be adjustable with custom stylesheets"
|
|
781
|
+
]
|
|
782
|
+
},
|
|
783
|
+
"noLeading": {
|
|
784
|
+
"alfa": [
|
|
785
|
+
"r73 Paragraphs of text have insufficient line height"
|
|
786
|
+
]
|
|
787
|
+
},
|
|
788
|
+
"leadingClipsText": {
|
|
789
|
+
"tenon": [
|
|
790
|
+
"144 Line height insufficent to properly display computed font size"
|
|
791
|
+
]
|
|
792
|
+
},
|
|
793
|
+
"iframeNoText": {
|
|
794
|
+
"alfa": [
|
|
795
|
+
"r13 Iframe has no accessible name"
|
|
796
|
+
],
|
|
797
|
+
"axe": [
|
|
798
|
+
"frame-title Frames must have an accessible name"
|
|
799
|
+
],
|
|
800
|
+
"ibm": [
|
|
801
|
+
"v:WCAG20_Frame_HasTitle Inline frames must have a unique, non-empty title attribute"
|
|
802
|
+
]
|
|
803
|
+
},
|
|
804
|
+
"roleBad": {
|
|
805
|
+
"axe": [
|
|
806
|
+
"aria-allowed-role ARIA role should be appropriate for the element"
|
|
807
|
+
],
|
|
808
|
+
"ibm": [
|
|
809
|
+
"v:aria_semantics_role ARIA roles must be valid for the element to which they are assigned"
|
|
810
|
+
],
|
|
811
|
+
"testaro": [
|
|
812
|
+
"role Nonexistent or implicit-overriding role"
|
|
813
|
+
]
|
|
814
|
+
},
|
|
815
|
+
"roleMissingAttribute": {
|
|
816
|
+
"axe": [
|
|
817
|
+
"aria-required-attr Required ARIA attributes must be provided"
|
|
818
|
+
],
|
|
819
|
+
"ibm": [
|
|
820
|
+
"v:Rpt_Aria_RequiredProperties ARIA role on an element must have required attributes"
|
|
821
|
+
]
|
|
822
|
+
},
|
|
823
|
+
"roleBadAttribute": {
|
|
824
|
+
"alfa": [
|
|
825
|
+
"r20 Aria- attribute is not defined"
|
|
826
|
+
],
|
|
827
|
+
"axe": [
|
|
828
|
+
"aria-valid-attr ARIA attributes must conform to valid names"
|
|
829
|
+
],
|
|
830
|
+
"ibm": [
|
|
831
|
+
"v:Rpt_Aria_ValidProperty ARIA attributes must be valid for the role"
|
|
832
|
+
]
|
|
833
|
+
},
|
|
834
|
+
"autocompleteBad": {
|
|
835
|
+
"aatt": [
|
|
836
|
+
"w:H98 Autocomplete attribute wrong"
|
|
837
|
+
],
|
|
838
|
+
"alfa": [
|
|
839
|
+
"r10 Autocomplete attribute has no valid value"
|
|
840
|
+
],
|
|
841
|
+
"axe": [
|
|
842
|
+
"autocomplete-valid Autocomplete attribute must be used correctly"
|
|
843
|
+
],
|
|
844
|
+
"ibm": [
|
|
845
|
+
"v:WCAG21_Input_Autocomplete Autocomplete attribute token(s) must be appropriate for the input form field"
|
|
846
|
+
]
|
|
847
|
+
},
|
|
848
|
+
"contrastAA": {
|
|
849
|
+
"alfa": [
|
|
850
|
+
"r69 Text outside widget has subminimum contrast"
|
|
851
|
+
],
|
|
852
|
+
"axe": [
|
|
853
|
+
"color-contrast Elements must have sufficient color contrast"
|
|
854
|
+
],
|
|
855
|
+
"ibm": [
|
|
856
|
+
"v:IBMA_Color_Contrast_WCAG2AA Contrast ratio of text with background must meet WCAG 2.1 AA"
|
|
857
|
+
],
|
|
858
|
+
"wave": [
|
|
859
|
+
"c:contrast Very low contrast"
|
|
860
|
+
]
|
|
861
|
+
},
|
|
862
|
+
"contrastAAA": {
|
|
863
|
+
"alfa": [
|
|
864
|
+
"r66 Text contrast less than AAA requires"
|
|
865
|
+
],
|
|
866
|
+
"tenon": [
|
|
867
|
+
"95 Element has insufficient color contrast (Level AAA)"
|
|
868
|
+
]
|
|
869
|
+
},
|
|
870
|
+
"contrastRisk": {
|
|
871
|
+
"aatt": [
|
|
872
|
+
"w:F24 Inline background color needs complementary foreground color",
|
|
873
|
+
"w:G18 Contrast adequacy not determinable"
|
|
874
|
+
]
|
|
875
|
+
},
|
|
876
|
+
"headingEmpty": {
|
|
877
|
+
"axe": [
|
|
878
|
+
"empty-heading Headings should not be empty"
|
|
879
|
+
],
|
|
880
|
+
"ibm": [
|
|
881
|
+
"v:RPT_Header_HasContent Heading elements must provide descriptive text"
|
|
882
|
+
],
|
|
883
|
+
"wave": [
|
|
884
|
+
"e:heading_empty Empty heading"
|
|
885
|
+
]
|
|
886
|
+
},
|
|
887
|
+
"imageTextRedundant": {
|
|
888
|
+
"axe": [
|
|
889
|
+
"image-redundant-alt Text of buttons and links should not be repeated in the image alternative"
|
|
890
|
+
],
|
|
891
|
+
"ibm": [
|
|
892
|
+
"v:WCAG20_Img_LinkTextNotRedundant Text alternative for image within link should not repeat link text or adjacent link text"
|
|
893
|
+
]
|
|
894
|
+
},
|
|
895
|
+
"linkTitleRedundant": {
|
|
896
|
+
"tenon": [
|
|
897
|
+
"79 Link has a title attribute that is the same as the text inside the link"
|
|
898
|
+
]
|
|
899
|
+
},
|
|
900
|
+
"pageTitle": {
|
|
901
|
+
"axe": [
|
|
902
|
+
"document-title Documents must contain a title element"
|
|
903
|
+
],
|
|
904
|
+
"wave": [
|
|
905
|
+
"e:title_invalid Missing or uninformative page title"
|
|
906
|
+
]
|
|
907
|
+
},
|
|
908
|
+
"h1Missing": {
|
|
909
|
+
"axe": [
|
|
910
|
+
"page-has-heading-one Page should contain a level-one heading"
|
|
911
|
+
],
|
|
912
|
+
"wave": [
|
|
913
|
+
"a:h1_missing Missing first level heading"
|
|
914
|
+
]
|
|
915
|
+
},
|
|
916
|
+
"pseudoHeadingRisk": {
|
|
917
|
+
"aatt": [
|
|
918
|
+
"w:H42 Heading coding should be used if intended as a heading"
|
|
919
|
+
]
|
|
920
|
+
},
|
|
921
|
+
"pseudoLinkRisk": {
|
|
922
|
+
"tenon": [
|
|
923
|
+
"129 CSS underline on text that is not a link"
|
|
924
|
+
]
|
|
925
|
+
},
|
|
926
|
+
"pseudoListRisk": {
|
|
927
|
+
"aatt": [
|
|
928
|
+
"w:H48 Navigation links should be coded as list"
|
|
929
|
+
]
|
|
930
|
+
},
|
|
931
|
+
"selectNoText": {
|
|
932
|
+
"aatt": [
|
|
933
|
+
"w:H91 Select element has no value available to an accessibility API"
|
|
934
|
+
],
|
|
935
|
+
"axe": [
|
|
936
|
+
"select-name Select element must have an accessible name"
|
|
937
|
+
],
|
|
938
|
+
"wave": [
|
|
939
|
+
"a:select_missing_label Select missing label"
|
|
940
|
+
]
|
|
941
|
+
},
|
|
942
|
+
"selectFlatRisk": {
|
|
943
|
+
"aatt": [
|
|
944
|
+
"w:H85 If selection list contains groups of related options, they should be grouped with optgroup"
|
|
945
|
+
]
|
|
946
|
+
},
|
|
947
|
+
"ariaReferenceBad": {
|
|
948
|
+
"ibm": [
|
|
949
|
+
"v:Rpt_Aria_ValidIdRef ARIA property must reference non-empty unique id of visible element"
|
|
950
|
+
],
|
|
951
|
+
"wave": [
|
|
952
|
+
"e:aria_reference_broken Broken ARIA reference"
|
|
953
|
+
]
|
|
954
|
+
},
|
|
955
|
+
"accessKeyDuplicate": {
|
|
956
|
+
"ibm": [
|
|
957
|
+
"v:WCAG20_Elem_UniqueAccessKey Accesskey attribute values on each element must be unique for the page"
|
|
958
|
+
],
|
|
959
|
+
"wave": [
|
|
960
|
+
"a:accesskey Accesskey"
|
|
961
|
+
]
|
|
962
|
+
},
|
|
963
|
+
"fieldSetMissing": {
|
|
964
|
+
"ibm": [
|
|
965
|
+
"v:WCAG20_Input_RadioChkInFieldSet Input is in a different group than another with the name"
|
|
966
|
+
],
|
|
967
|
+
"testaro": [
|
|
968
|
+
"radioSet No or invalid grouping of radio buttons in fieldsets"
|
|
969
|
+
],
|
|
970
|
+
"wave": [
|
|
971
|
+
"a:fieldset_missing Missing fieldset"
|
|
972
|
+
]
|
|
973
|
+
},
|
|
974
|
+
"nameValue": {
|
|
975
|
+
"aatt": [
|
|
976
|
+
"e:F68 Form control wrongly labeled or unlabeled",
|
|
977
|
+
"e:H91 Missing name or value of form control or link"
|
|
978
|
+
],
|
|
979
|
+
"wave": [
|
|
980
|
+
"e:label_missing Missing form label"
|
|
981
|
+
]
|
|
982
|
+
},
|
|
983
|
+
"targetSize": {
|
|
984
|
+
"tenon": [
|
|
985
|
+
"152 Actionable element is smaller than the minimum required size"
|
|
986
|
+
]
|
|
987
|
+
},
|
|
988
|
+
"visibleBulk": {
|
|
989
|
+
"testaro": [
|
|
990
|
+
"bulk Count of visible elements as a multiple of 300"
|
|
991
|
+
]
|
|
992
|
+
},
|
|
993
|
+
"activeEmbedding": {
|
|
994
|
+
"testaro": [
|
|
995
|
+
"embAc Active elements embedded in links or buttons"
|
|
996
|
+
]
|
|
997
|
+
},
|
|
998
|
+
"tabFocusability": {
|
|
999
|
+
"testaro": [
|
|
1000
|
+
"focAll Discrepancy between elements that should be and that are Tab-focusable"
|
|
1001
|
+
]
|
|
1002
|
+
},
|
|
1003
|
+
"focusIndication": {
|
|
1004
|
+
"alfa": [
|
|
1005
|
+
"r65 Element in sequential focus order has no visible focus"
|
|
1006
|
+
],
|
|
1007
|
+
"testaro": [
|
|
1008
|
+
"focInd Focused element displaying no or nostandard focus indicator"
|
|
1009
|
+
]
|
|
1010
|
+
},
|
|
1011
|
+
"allCaps": {
|
|
1012
|
+
"tenon": [
|
|
1013
|
+
"153 Long string of text is in all caps"
|
|
1014
|
+
]
|
|
1015
|
+
},
|
|
1016
|
+
"textBeyondLandmarks": {
|
|
1017
|
+
"alfa": [
|
|
1018
|
+
"r57 Perceivable text content not included in any landmark"
|
|
1019
|
+
]
|
|
1020
|
+
},
|
|
1021
|
+
"focusableOperable": {
|
|
1022
|
+
"testaro": [
|
|
1023
|
+
"focOp Operable elements that cannot be Tab-focused and vice versa"
|
|
1024
|
+
]
|
|
1025
|
+
},
|
|
1026
|
+
"hoverSurprise": {
|
|
1027
|
+
"testaro": [
|
|
1028
|
+
"hover Content changes caused by hovering"
|
|
1029
|
+
]
|
|
1030
|
+
},
|
|
1031
|
+
"labelClash": {
|
|
1032
|
+
"testaro": [
|
|
1033
|
+
"labClash Incompatible label types"
|
|
1034
|
+
]
|
|
1035
|
+
},
|
|
1036
|
+
"linkUnderlines": {
|
|
1037
|
+
"testaro": [
|
|
1038
|
+
"linkUl Non-underlined inline links"
|
|
1039
|
+
]
|
|
1040
|
+
},
|
|
1041
|
+
"menuNavigation": {
|
|
1042
|
+
"testaro": [
|
|
1043
|
+
"menuNav Nonstandard keyboard navigation among focusable menu items"
|
|
1044
|
+
]
|
|
1045
|
+
},
|
|
1046
|
+
"tabNavigation": {
|
|
1047
|
+
"testaro": [
|
|
1048
|
+
"tabNav Nonstandard keyboard navigation among tabs"
|
|
1049
|
+
]
|
|
1050
|
+
},
|
|
1051
|
+
"spontaneousMotion": {
|
|
1052
|
+
"testaro": [
|
|
1053
|
+
"motion Change of visible content not requested by user"
|
|
1054
|
+
]
|
|
1055
|
+
},
|
|
1056
|
+
"inconsistentStyles": {
|
|
1057
|
+
"testaro": [
|
|
1058
|
+
"styleDiff Heading, link, and button style inconsistencies"
|
|
1059
|
+
]
|
|
1060
|
+
},
|
|
1061
|
+
"zIndexNotZero": {
|
|
1062
|
+
"testaro": [
|
|
1063
|
+
"zIndex Layering with nondefault z-index values"
|
|
1064
|
+
]
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1067
|
+
}
|