testilo 9.0.3 → 10.0.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 (51) hide show
  1. package/README.md +31 -7
  2. package/package.json +1 -1
  3. package/procs/score/{sp20b.js → tic21.js} +1252 -991
  4. package/procs/score/tsp21.js +720 -0
  5. package/specs/batches/orgs.json +43 -0
  6. package/specs/scripts/ts21.json +212 -0
  7. package/toolRules/qualWeb.tsv +121 -0
  8. package/procs/score/sp10a.js +0 -591
  9. package/procs/score/sp10b.js +0 -507
  10. package/procs/score/sp10c.js +0 -465
  11. package/procs/score/sp11a.js +0 -1968
  12. package/procs/score/sp12a.js +0 -3000
  13. package/procs/score/sp12b.js +0 -3315
  14. package/procs/score/sp14a.js +0 -4101
  15. package/procs/score/sp15a.js +0 -4899
  16. package/procs/score/sp15b.js +0 -6279
  17. package/procs/score/sp15c.js +0 -6282
  18. package/procs/score/sp16a.js +0 -6362
  19. package/procs/score/sp16b.js +0 -6370
  20. package/procs/score/sp16c.js +0 -6364
  21. package/procs/score/sp17a.js +0 -6099
  22. package/procs/score/sp18a.js +0 -6378
  23. package/procs/score/sp20a.js +0 -6379
  24. package/procs/score/spHover.js +0 -328
  25. package/procs/score/tsp09a.js +0 -564
  26. package/scoring/data/correlations.json +0 -327
  27. package/scoring/data/data.json +0 -26021
  28. package/scoring/data/dupCounts.json +0 -112
  29. package/scoring/data/duplications.json +0 -253
  30. package/scoring/data/groups.json +0 -335
  31. package/scoring/data/issues.json +0 -304
  32. package/scoring/data/rulesetData.json +0 -15
  33. package/scoring/data/testGroups.json +0 -1067
  34. package/scoring/procs/asp09.js +0 -555
  35. package/scoring/procs/asp09NoWAVE.js +0 -508
  36. package/scoring/procs/correlation.js +0 -76
  37. package/scoring/procs/dupCounts.js +0 -39
  38. package/scoring/procs/groups.js +0 -61
  39. package/scoring/procs/packageData.js +0 -171
  40. package/scoring/procs/packageIssues.js +0 -34
  41. package/scoring/procs/regroup.js +0 -39
  42. package/scoring/procs/tempgroup.js +0 -96
  43. /package/procs/score/{spA11yMessage.js → tspA11yMessage.js} +0 -0
  44. /package/procs/score/{spProductPrice.js → tspProductPrice.js} +0 -0
  45. /package/{scoring/data/packageRules → toolRules}/alfa.tsv +0 -0
  46. /package/{scoring/data/packageRules → toolRules}/axe.js +0 -0
  47. /package/{scoring/data/packageRules → toolRules}/htmlcs.js +0 -0
  48. /package/{scoring/data/packageRules → toolRules}/ibm.tsv +0 -0
  49. /package/{scoring/data/packageRules → toolRules}/tenon.tsv +0 -0
  50. /package/{scoring/data/packageRules → toolRules}/wave.json +0 -0
  51. /package/{scoring/data/packageRules → toolRules}/wave.tsv +0 -0
@@ -1,112 +0,0 @@
1
- {
2
- "aatt": {
3
- "e:F77": 1,
4
- "e:H36": 4,
5
- "e:H37": 2,
6
- "e:H57": 3,
7
- "e:H58": 2,
8
- "w:G141": 3,
9
- "w:H98": 1,
10
- "e:ARIA6+H53": 1,
11
- "e:H24": 2,
12
- "e:G1+G123+G124": 1,
13
- "w:G90": 1,
14
- "w:H44": 1
15
- },
16
- "alfa": {
17
- "r3": 2,
18
- "r28": 4,
19
- "r2": 2,
20
- "r4": 3,
21
- "r7": 2,
22
- "r53": 3,
23
- "r10": 1,
24
- "r11": 1,
25
- "r12": 2,
26
- "r20": 1,
27
- "r42": 1,
28
- "r43": 1,
29
- "r47": 1,
30
- "r5": 2,
31
- "r68": 1,
32
- "r93": 1,
33
- "r13": 1
34
- },
35
- "axe": {
36
- "input-image-alt": 4,
37
- "html-has-lang": 3,
38
- "valid-lang": 2,
39
- "heading-order": 3,
40
- "link-name": 2,
41
- "aria-command-name": 2,
42
- "dlitem": 1,
43
- "image-alt": 2,
44
- "duplicate-id": 1,
45
- "aria-required-parent": 1,
46
- "svg-img-alt": 1,
47
- "meta-viewport": 1,
48
- "html-lang-valid": 2,
49
- "aria-required-children": 1,
50
- "avoid-inline-spacing": 1,
51
- "area-alt": 2,
52
- "aria-allowed-role": 1,
53
- "aria-required-attr": 1,
54
- "aria-valid-attr": 1,
55
- "autocomplete-valid": 1,
56
- "color-contrast": 1,
57
- "empty-heading": 2,
58
- "frame-title": 1,
59
- "image-redundant-alt": 1,
60
- "landmark-complementary-is-top-level": 2,
61
- "landmark-no-duplicate-banner": 1,
62
- "landmark-no-duplicate-main": 2,
63
- "document-title": 1,
64
- "object-alt": 1,
65
- "page-has-heading-one": 1,
66
- "select-name": 1
67
- },
68
- "ibm": {
69
- "v:WCAG20_Object_HasText": 1,
70
- "v:WCAG20_Area_HasAlt": 2,
71
- "v:WCAG20_Input_ExplicitLabelImage": 4,
72
- "v:WCAG20_Frame_HasTitle": 2,
73
- "v:WCAG20_Elem_Lang_Valid": 2,
74
- "v:HAAC_Img_UsemapAlt": 1,
75
- "v:aria_semantics_role": 1,
76
- "v:Rpt_Aria_RequiredProperties": 1,
77
- "v:Rpt_Aria_ValidProperty": 1,
78
- "v:WCAG21_Input_Autocomplete": 1,
79
- "v:IBMA_Color_Contrast_WCAG2AA": 2,
80
- "v:RPT_Header_HasContent": 2,
81
- "v:WCAG20_Img_HasAlt": 2,
82
- "v:WCAG20_Img_LinkTextNotRedundant": 1,
83
- "v:Rpt_Aria_ComplementaryRequiredLabel_Implicit": 1,
84
- "v:Rpt_Aria_MultipleComplementaryLandmarks_Implicit": 1,
85
- "v:Rpt_Aria_MultipleBannerLandmarks_Implicit": 1,
86
- "r:Rpt_Aria_MultipleMainsVisibleLabel_Implicit": 1,
87
- "v:Rpt_Aria_MultipleMainsRequireLabel_Implicit_2": 1,
88
- "v:WCAG20_A_HasText": 1,
89
- "v:Rpt_Aria_ValidIdRef": 1,
90
- "v:WCAG20_Elem_UniqueAccessKey": 1,
91
- "v:WCAG20_Input_RadioChkInFieldSet": 1
92
- },
93
- "wave": {
94
- "a:link_internal_broken": 1,
95
- "e:alt_area_missing": 3,
96
- "e:alt_input_missing": 4,
97
- "e:alt_missing": 2,
98
- "e:language_missing": 3,
99
- "a:heading_skipped": 3,
100
- "a:event_handler": 1,
101
- "a:label_orphaned": 1,
102
- "e:title_invalid": 1,
103
- "e:heading_empty": 2,
104
- "a:plugin": 1,
105
- "a:h1_missing": 1,
106
- "a:select_missing_label": 1,
107
- "c:contrast": 1,
108
- "e:aria_reference_broken": 1,
109
- "a:accesskey": 1,
110
- "a:fieldset_missing": 1
111
- }
112
- }
@@ -1,253 +0,0 @@
1
- {
2
- "aatt_alfa": {
3
- "e:F77 Duplicate id attribute value": {
4
- "r3": "0.89 (253)"
5
- },
6
- "e:H36 Image submit button missing an alt attribute": {
7
- "r28": "0.98 (6)"
8
- },
9
- "e:H37 Img element missing an alt attribute": {
10
- "r2": "0.72 (221)"
11
- },
12
- "e:H57 lang attribute of the document element": {
13
- "r4": "0.81 (66)"
14
- },
15
- "e:H58 change in language is marked": {
16
- "r7": "0.82 (5)"
17
- },
18
- "w:G141 heading structure is not logically nested": {
19
- "r53": "0.89 (427)"
20
- },
21
- "w:H98 autocomplete attribute": {
22
- "r10": "0.95 (3)"
23
- }
24
- },
25
- "aatt_axe": {
26
- "e:H36 Image submit button missing an alt attribute": {
27
- "input-image-alt": "0.98 (6)"
28
- },
29
- "e:H57 lang attribute of the document element": {
30
- "html-has-lang": "0.73 (75)"
31
- },
32
- "e:H58 change in language is marked": {
33
- "valid-lang": "0.82 (5)"
34
- },
35
- "w:G141 heading structure is not logically nested": {
36
- "heading-order": "0.79 (515)"
37
- }
38
- },
39
- "aatt_ibm": {
40
- "e:ARIA6+H53 Object elements must contain a text alternative": {
41
- "v:WCAG20_Object_HasText": "1.00 (6)"
42
- },
43
- "e:H24 Area element in an image map missing an alt attribute": {
44
- "v:WCAG20_Area_HasAlt": "0.79 (4)"
45
- },
46
- "e:H36 Image submit button missing an alt attribute": {
47
- "v:WCAG20_Input_ExplicitLabelImage": "0.98 (6)"
48
- }
49
- },
50
- "aatt_wave": {
51
- "e:G1+G123+G124 common navigation elements can be bypassed": {
52
- "a:link_internal_broken": "0.94 (109)"
53
- },
54
- "e:H24 Area element in an image map missing an alt attribute": {
55
- "e:alt_area_missing": "0.73 (5)"
56
- },
57
- "e:H36 Image submit button missing an alt attribute": {
58
- "e:alt_input_missing": "0.91 (7)"
59
- },
60
- "e:H37 Img element missing an alt attribute": {
61
- "e:alt_missing": "0.75 (274)"
62
- },
63
- "e:H57 lang attribute of the document element": {
64
- "e:language_missing": "0.72 (85)"
65
- },
66
- "w:G141 heading structure is not logically nested": {
67
- "a:heading_skipped": "0.85 (535)"
68
- },
69
- "w:G90 event handler functionality is available through the keyboard": {
70
- "a:event_handler": "0.76 (109)"
71
- },
72
- "w:H44 label for attribute bad ID": {
73
- "a:label_orphaned": "0.71 (67)"
74
- }
75
- },
76
- "alfa_axe": {
77
- "r11": {
78
- "link-name": "0.71 (457)"
79
- },
80
- "r12": {
81
- "aria-command-name": "0.93 (51)",
82
- "dlitem": "0.93 (46)"
83
- },
84
- "r2": {
85
- "image-alt": "0.70 (249)"
86
- },
87
- "r20": {
88
- "aria-command-name": "0.93 (18)"
89
- },
90
- "r28": {
91
- "input-image-alt": "1.00 (6)"
92
- },
93
- "r3": {
94
- "duplicate-id": "0.75 (291)"
95
- },
96
- "r4": {
97
- "html-has-lang": "0.80 (74)"
98
- },
99
- "r42": {
100
- "aria-required-parent": "0.96 (51)"
101
- },
102
- "r43": {
103
- "svg-img-alt": "0.98 (4)"
104
- },
105
- "r47": {
106
- "meta-viewport": "0.81 (157)"
107
- },
108
- "r5": {
109
- "html-lang-valid": "1.00 (4)"
110
- },
111
- "r53": {
112
- "heading-order": "0.92 (371)"
113
- },
114
- "r68": {
115
- "aria-required-children": "0.73 (122)"
116
- },
117
- "r7": {
118
- "valid-lang": "1.00 (4)"
119
- },
120
- "r93": {
121
- "avoid-inline-spacing": "0.81 (6)"
122
- }
123
- },
124
- "alfa_ibm": {
125
- "r13": {
126
- "v:WCAG20_Frame_HasTitle": "0.70 (116)"
127
- },
128
- "r28": {
129
- "v:WCAG20_Input_ExplicitLabelImage": "0.93 (6)"
130
- },
131
- "r5": {
132
- "v:WCAG20_Elem_Lang_Valid": "0.71 (6)"
133
- }
134
- },
135
- "alfa_wave": {
136
- "r28": {
137
- "e:alt_input_missing": "0.92 (7)"
138
- },
139
- "r4": {
140
- "e:language_missing": "0.71 (82)"
141
- },
142
- "r53": {
143
- "a:heading_skipped": "0.90 (387)"
144
- }
145
- },
146
- "axe_ibm": {
147
- "area-alt": {
148
- "v:HAAC_Img_UsemapAlt": "0.89 (3)"
149
- },
150
- "aria-allowed-role": {
151
- "v:aria_semantics_role": "0.74 (97)"
152
- },
153
- "aria-required-attr": {
154
- "v:Rpt_Aria_RequiredProperties": "0.82 (5)"
155
- },
156
- "aria-valid-attr": {
157
- "v:Rpt_Aria_ValidProperty": "0.94 (14)"
158
- },
159
- "autocomplete-valid": {
160
- "v:WCAG21_Input_Autocomplete": "0.74 (19)"
161
- },
162
- "color-contrast": {
163
- "v:IBMA_Color_Contrast_WCAG2AA": "0.76 (590)"
164
- },
165
- "empty-heading": {
166
- "v:RPT_Header_HasContent": "0.86 (148)"
167
- },
168
- "frame-title": {
169
- "v:WCAG20_Frame_HasTitle": "0.73 (128)"
170
- },
171
- "html-lang-valid": {
172
- "v:WCAG20_Elem_Lang_Valid": "0.77 (8)"
173
- },
174
- "image-alt": {
175
- "v:WCAG20_Img_HasAlt": "0.84 (305)"
176
- },
177
- "image-redundant-alt": {
178
- "v:WCAG20_Img_LinkTextNotRedundant": "0.82 (57)"
179
- },
180
- "input-image-alt": {
181
- "v:WCAG20_Input_ExplicitLabelImage": "0.93 (6)"
182
- },
183
- "landmark-complementary-is-top-level": {
184
- "v:Rpt_Aria_ComplementaryRequiredLabel_Implicit": "0.82 (82)",
185
- "v:Rpt_Aria_MultipleComplementaryLandmarks_Implicit": "0.83 (50)"
186
- },
187
- "landmark-no-duplicate-banner": {
188
- "v:Rpt_Aria_MultipleBannerLandmarks_Implicit": "0.73 (80)"
189
- },
190
- "landmark-no-duplicate-main": {
191
- "r:Rpt_Aria_MultipleMainsVisibleLabel_Implicit": "1.00 (18)",
192
- "v:Rpt_Aria_MultipleMainsRequireLabel_Implicit_2": "0.95 (18)"
193
- },
194
- "link-name": {
195
- "v:WCAG20_A_HasText": "0.75 (492)"
196
- }
197
- },
198
- "axe_wave": {
199
- "area-alt": {
200
- "e:alt_area_missing": "0.77 (5)"
201
- },
202
- "document-title": {
203
- "e:title_invalid": "0.71 (3)"
204
- },
205
- "empty-heading": {
206
- "e:heading_empty": "0.74 (175)"
207
- },
208
- "heading-order": {
209
- "a:heading_skipped": "0.90 (463)"
210
- },
211
- "html-has-lang": {
212
- "e:language_missing": "0.87 (91)"
213
- },
214
- "input-image-alt": {
215
- "e:alt_input_missing": "0.92 (7)"
216
- },
217
- "object-alt": {
218
- "a:plugin": "1.00 (6)"
219
- },
220
- "page-has-heading-one": {
221
- "a:h1_missing": "0.79 (206)"
222
- },
223
- "select-name": {
224
- "a:select_missing_label": "0.79 (71)"
225
- }
226
- },
227
- "ibm_wave": {
228
- "v:IBMA_Color_Contrast_WCAG2AA": {
229
- "c:contrast": "0.73 (693)"
230
- },
231
- "v:RPT_Header_HasContent": {
232
- "e:heading_empty": "0.84 (168)"
233
- },
234
- "v:Rpt_Aria_ValidIdRef": {
235
- "e:aria_reference_broken": "0.81 (131)"
236
- },
237
- "v:WCAG20_Area_HasAlt": {
238
- "e:alt_area_missing": "0.80 (5)"
239
- },
240
- "v:WCAG20_Elem_UniqueAccessKey": {
241
- "a:accesskey": "0.78 (15)"
242
- },
243
- "v:WCAG20_Img_HasAlt": {
244
- "e:alt_missing": "0.87 (296)"
245
- },
246
- "v:WCAG20_Input_ExplicitLabelImage": {
247
- "e:alt_input_missing": "0.87 (7)"
248
- },
249
- "v:WCAG20_Input_RadioChkInFieldSet": {
250
- "a:fieldset_missing": "0.71 (57)"
251
- }
252
- }
253
- }
@@ -1,335 +0,0 @@
1
- {
2
- "duplicateID": {
3
- "aatt": ["e:F77 Duplicate id attribute value"],
4
- "alfa": ["r3 Element ID is not unique"],
5
- "axe": ["duplicate-id ID attribute value must be unique"],
6
- "ibm": [
7
- "RPT_Elem_UniqueId Element id attribute values must be unique within a document"
8
- ]
9
- },
10
- "imageInputNoText": {
11
- "aatt": ["e:H36 Image submit button missing an alt attribute"],
12
- "alfa": ["r28 Image input element has no accessible name"],
13
- "axe": ["input-image-alt Image buttons must have alternate text"],
14
- "ibm": [
15
- "v:WCAG20_Input_ExplicitLabelImage Input element of type image should have a text alternative"
16
- ],
17
- "wave": ["e:alt_input_missing Image button missing alternative text"]
18
- },
19
- "imageNoText": {
20
- "aatt": ["e:H37 Img element missing an alt attribute"],
21
- "alfa": ["r2 Image has no accessible name"],
22
- "axe": ["image-alt Images must have alternate text"],
23
- "ibm": [
24
- "v:WCAG20_Img_HasAlt Images must have an alt attribute if they convey meaning, or alt=\"\" if decorative"
25
- ],
26
- "wave": ["e:alt_missing Missing alternative text"]
27
- },
28
- "pageLanguage": {
29
- "aatt": ["e:H57 Lang attribute of the document element"],
30
- "alfa": ["r4 Lang attribute missing, empty, or only whitespace"],
31
- "axe": ["html-has-lang Html element must have a lang attribute"],
32
- "ibm": [
33
- "WCAG20_Html_HasLang Page detected as HTML, but has no lang attribute"
34
- ],
35
- "wave": ["e:language_missing Language missing or invalid"]
36
- },
37
- "pageLanguageBad": {
38
- "alfa": ["r5 Lang attribute has no valid primary language tag"],
39
- "axe": [
40
- "html-lang-valid Html element must have a valid value for the lang attribute"
41
- ],
42
- "ibm": [
43
- "v:WCAG20_Elem_Lang_Valid Lang attribute does not include a valid primary language"
44
- ]
45
- },
46
- "languageChange": {
47
- "aatt": ["e:H58 Change in language is not marked"],
48
- "alfa": ["r7 Lang attribute has no valid primary language subtag"],
49
- "axe": ["valid-lang Lang attribute must have a valid value"]
50
- },
51
- "headingStructure": {
52
- "aatt": ["w:G141 Heading structure is not logically nested"],
53
- "alfa": ["r53 Heading skips one or more levels"],
54
- "axe": ["heading-order Heading levels should only increase by one"],
55
- "tenon": ["155 These headings are not structured in a hierarchical manner"],
56
- "wave": ["a:heading_skipped Skipped heading level"]
57
- },
58
- "objectNoText": {
59
- "aatt": ["e:ARIA6+H53 Object elements must contain a text alternative"],
60
- "axe": ["object-alt Object elements must have alternate text"],
61
- "ibm": [
62
- "v:WCAG20_Object_HasText Object elements must have a text alternative"
63
- ],
64
- "wave": ["a:plugin An unidentified plugin is present"]
65
- },
66
- "imageMapAreaNoText": {
67
- "aatt": ["e:H24 Area element in an image map missing an alt attribute"],
68
- "axe": ["area-alt Active area elements must have alternate text"],
69
- "ibm": [
70
- "v:HAAC_Img_UsemapAlt Image map or child area has no text alternative",
71
- "v:WCAG20_Area_HasAlt Area element in an image map has no text alternative"
72
- ],
73
- "wave": ["e:alt_area_missing Image map area missing alternative text"]
74
- },
75
- "eventKeyboard": {
76
- "aatt": ["w:G90 Event handler functionality not available by keyboard"],
77
- "wave": ["a:event_handler Device-dependent event handler"]
78
- },
79
- "labelForBadID": {
80
- "aatt": ["w:H44 Label for attribute is bad ID"],
81
- "wave": ["a:label_orphaned Orphaned form label"]
82
- },
83
- "linkNoText": {
84
- "alfa": ["r11 Link has no accessible name"],
85
- "axe": ["link-name Links must have discernible text"],
86
- "ibm": ["v:WCAG20_A_HasText Hyperlinks must have a text description"],
87
- "tenon": ["57 Link has no text inside it"],
88
- "wave": ["e:link_empty Link contains no text"]
89
- },
90
- "linkTextsSame": {
91
- "tenon": ["98 These links have the same text but different destinations"]
92
- },
93
- "linkPair": {
94
- "wave": ["a:link_redundant Adjacent links go to same URL"]
95
- },
96
- "linkForcesNewWindow": {
97
- "tenon": ["218 Link opens in a new window without user control"]
98
- },
99
- "buttonNoText": {
100
- "alfa": ["r12 Button has no accessible name"],
101
- "axe": ["aria-command-name ARIA commands must have an accessible name"],
102
- "wave": ["e:button_empty Button is empty or has no value text"]
103
- },
104
- "parentMissing": {
105
- "alfa": [
106
- "r42 Element is not owned by an element of its required context role"
107
- ],
108
- "axe": [
109
- "aria-required-parent Certain ARIA roles must be contained by particular parents"
110
- ]
111
- },
112
- "svgImageNoText": {
113
- "alfa": ["r43 SVG image element has no accessible name"],
114
- "axe": [
115
- "svg-img-alt SVG elements with an img role must have an alternative text"
116
- ]
117
- },
118
- "metaBansZoom": {
119
- "alfa": ["r47 Meta element restricts zooming"],
120
- "axe": ["meta-viewport Zooming and scaling should not be disabled"]
121
- },
122
- "childMissing": {
123
- "alfa": ["r68 Element owns no elements as required by its semantic role"],
124
- "axe": [
125
- "aria-required-children Certain ARIA roles must contain particular children"
126
- ]
127
- },
128
- "leadingFrozen": {
129
- "alfa": [
130
- "r93 Style attribute with !important prevents adjusting line height"
131
- ],
132
- "axe": [
133
- "avoid-inline-spacing Inline text spacing must be adjustable with custom stylesheets"
134
- ]
135
- },
136
- "noLeading": {
137
- "alfa": ["r73 Paragraphs of text have insufficient line height"]
138
- },
139
- "leadingClipsText": {
140
- "tenon": [
141
- "144 Line height insufficent to properly display computed font size"
142
- ]
143
- },
144
- "iframeNoText": {
145
- "alfa": ["r13 Iframe has no accessible name"],
146
- "axe": ["frame-title Frames must have an accessible name"],
147
- "ibm": [
148
- "v:WCAG20_Frame_HasTitle Inline frames must have a unique, non-empty title attribute"
149
- ]
150
- },
151
- "roleBad": {
152
- "axe": [
153
- "aria-allowed-role ARIA role should be appropriate for the element"
154
- ],
155
- "ibm": [
156
- "v:aria_semantics_role ARIA roles must be valid for the element to which they are assigned"
157
- ],
158
- "testaro": ["role Nonexistent or implicit-overriding role"]
159
- },
160
- "roleMissingAttribute": {
161
- "axe": ["aria-required-attr Required ARIA attributes must be provided"],
162
- "ibm": [
163
- "v:Rpt_Aria_RequiredProperties ARIA role on an element must have required attributes"
164
- ]
165
- },
166
- "roleBadAttribute": {
167
- "alfa": ["r20 Aria- attribute is not defined"],
168
- "axe": ["aria-valid-attr ARIA attributes must conform to valid names"],
169
- "ibm": [
170
- "v:Rpt_Aria_ValidProperty ARIA attributes must be valid for the role"
171
- ]
172
- },
173
- "autocompleteBad": {
174
- "aatt": ["w:H98 Autocomplete attribute wrong"],
175
- "alfa": ["r10 Autocomplete attribute has no valid value"],
176
- "axe": ["autocomplete-valid Autocomplete attribute must be used correctly"],
177
- "ibm": [
178
- "v:WCAG21_Input_Autocomplete Autocomplete attribute token(s) must be appropriate for the input form field"
179
- ]
180
- },
181
- "contrastAA": {
182
- "alfa": ["r69 Text outside widget has subminimum contrast"],
183
- "axe": ["color-contrast Elements must have sufficient color contrast"],
184
- "ibm": [
185
- "v:IBMA_Color_Contrast_WCAG2AA Contrast ratio of text with background must meet WCAG 2.1 AA"
186
- ],
187
- "wave": ["c:contrast Very low contrast"]
188
- },
189
- "contrastAAA": {
190
- "alfa": ["r66 Text contrast less than AAA requires"],
191
- "tenon": ["95 Element has insufficient color contrast (Level AAA)"]
192
- },
193
- "contrastRisk": {
194
- "aatt": [
195
- "w:F24 Inline background color needs complementary foreground color",
196
- "w:G18 Contrast adequacy not determinable"
197
- ]
198
- },
199
- "headingEmpty": {
200
- "axe": ["empty-heading Headings should not be empty"],
201
- "ibm": [
202
- "v:RPT_Header_HasContent Heading elements must provide descriptive text"
203
- ],
204
- "wave": ["e:heading_empty Empty heading"]
205
- },
206
- "imageTextRedundant": {
207
- "axe": [
208
- "image-redundant-alt Text of buttons and links should not be repeated in the image alternative"
209
- ],
210
- "ibm": [
211
- "v:WCAG20_Img_LinkTextNotRedundant Text alternative for image within link should not repeat link text or adjacent link text"
212
- ]
213
- },
214
- "linkTitleRedundant": {
215
- "tenon": [
216
- "79 Link has a title attribute that is the same as the text inside the link"
217
- ]
218
- },
219
- "pageTitle": {
220
- "axe": ["document-title Documents must contain a title element"],
221
- "wave": ["e:title_invalid Missing or uninformative page title"]
222
- },
223
- "h1Missing": {
224
- "axe": ["page-has-heading-one Page should contain a level-one heading"],
225
- "wave": ["a:h1_missing Missing first level heading"]
226
- },
227
- "pseudoHeadingRisk": {
228
- "aatt": ["w:H42 Heading coding should be used if intended as a heading"]
229
- },
230
- "pseudoLinkRisk": {
231
- "tenon": ["129 CSS underline on text that is not a link"]
232
- },
233
- "pseudoListRisk": {
234
- "aatt": ["w:H48 Navigation links should be coded as list"]
235
- },
236
- "selectNoText": {
237
- "aatt": [
238
- "w:H91 Select element has no value available to an accessibility API"
239
- ],
240
- "axe": ["select-name Select element must have an accessible name"],
241
- "wave": ["a:select_missing_label Select missing label"]
242
- },
243
- "selectFlatRisk": {
244
- "aatt": [
245
- "w:H85 If selection list contains groups of related options, they should be grouped with optgroup"
246
- ]
247
- },
248
- "ariaReferenceBad": {
249
- "ibm": [
250
- "v:Rpt_Aria_ValidIdRef ARIA property must reference non-empty unique id of visible element"
251
- ],
252
- "wave": ["e:aria_reference_broken Broken ARIA reference"]
253
- },
254
- "accessKeyDuplicate": {
255
- "ibm": [
256
- "v:WCAG20_Elem_UniqueAccessKey Accesskey attribute values on each element must be unique for the page"
257
- ],
258
- "wave": ["a:accesskey Accesskey"]
259
- },
260
- "fieldSetMissing": {
261
- "ibm": [
262
- "v:WCAG20_Input_RadioChkInFieldSet Input is in a different group than another with the name"
263
- ],
264
- "testaro": [
265
- "radioSet No or invalid grouping of radio buttons in fieldsets"
266
- ],
267
- "wave": ["a:fieldset_missing Missing fieldset"]
268
- },
269
- "nameValue": {
270
- "aatt": [
271
- "e:F68 Form control wrongly labeled or unlabeled",
272
- "e:H91 Missing name or value of form control or link"
273
- ],
274
- "wave": ["e:label_missing Missing form label"]
275
- },
276
- "targetSize": {
277
- "tenon": [
278
- "152 Actionable element is smaller than the minimum required size"
279
- ]
280
- },
281
- "visibleBulk": {
282
- "testaro": ["bulk Count of visible elements as a multiple of 300"]
283
- },
284
- "activeEmbedding": {
285
- "testaro": ["embAc Active elements embedded in links or buttons"]
286
- },
287
- "tabFocusability": {
288
- "testaro": [
289
- "focAll Discrepancy between elements that should be and that are Tab-focusable"
290
- ]
291
- },
292
- "focusIndication": {
293
- "alfa": ["r65 Element in sequential focus order has no visible focus"],
294
- "testaro": [
295
- "focInd Focused element displaying no or nostandard focus indicator"
296
- ]
297
- },
298
- "allCaps": {
299
- "tenon": ["153 Long string of text is in all caps"]
300
- },
301
- "textBeyondLandmarks": {
302
- "alfa": ["r57 Perceivable text content not included in any landmark"]
303
- },
304
- "focusableOperable": {
305
- "testaro": [
306
- "focOp Operable elements that cannot be Tab-focused and vice versa"
307
- ]
308
- },
309
- "hoverSurprise": {
310
- "testaro": ["hover Content changes caused by hovering"]
311
- },
312
- "labelClash": {
313
- "testaro": ["labClash Incompatible label types"]
314
- },
315
- "linkUnderlines": {
316
- "testaro": ["linkUl Non-underlined inline links"]
317
- },
318
- "menuNavigation": {
319
- "testaro": [
320
- "menuNav Nonstandard keyboard navigation among focusable menu items"
321
- ]
322
- },
323
- "tabNavigation": {
324
- "testaro": ["tabNav Nonstandard keyboard navigation among tabs"]
325
- },
326
- "spontaneousMotion": {
327
- "testaro": ["motion Change of visible content not requested by user"]
328
- },
329
- "inconsistentStyles": {
330
- "testaro": ["styleDiff Heading, link, and button style inconsistencies"]
331
- },
332
- "zIndexNotZero": {
333
- "testaro": ["zIndex Layering with nondefault z-index values"]
334
- }
335
- }