accessflow-mcp-server 2.0.2 → 2.0.3
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/dist/services/apiSchemas.d.ts +1299 -111
- package/dist/services/apiSchemas.d.ts.map +1 -1
- package/dist/services/apiSchemas.js +132 -30
- package/dist/services/apiSchemas.js.map +1 -1
- package/dist/services/apiService.js +2 -2
- package/dist/services/apiService.js.map +1 -1
- package/dist/tools/getIssueRemediation.d.ts.map +1 -1
- package/dist/tools/getIssueRemediation.js +3 -10
- package/dist/tools/getIssueRemediation.js.map +1 -1
- package/dist/tools/getMostUrgentIssues.d.ts.map +1 -1
- package/dist/tools/getMostUrgentIssues.js +1 -14
- package/dist/tools/getMostUrgentIssues.js.map +1 -1
- package/dist/types/issues.d.ts +1 -1
- package/dist/types/issues.d.ts.map +1 -1
- package/dist/types/remediation.d.ts +2 -20
- package/dist/types/remediation.d.ts.map +1 -1
- package/dist/types/remediation.js +1 -1
- package/dist/utils/remediation.d.ts +2 -10
- package/dist/utils/remediation.d.ts.map +1 -1
- package/dist/utils/remediation.js +2 -22
- package/dist/utils/remediation.js.map +1 -1
- package/package.json +1 -1
- package/dist/data/rules.json +0 -4591
- package/dist/services/rulesService.d.ts +0 -10
- package/dist/services/rulesService.d.ts.map +0 -1
- package/dist/services/rulesService.js +0 -70
- package/dist/services/rulesService.js.map +0 -1
package/dist/data/rules.json
DELETED
|
@@ -1,4591 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"_id": {
|
|
4
|
-
"$oid": "62046deec839872ab00872e0"
|
|
5
|
-
},
|
|
6
|
-
"name": "Link Context",
|
|
7
|
-
"route": "link-context",
|
|
8
|
-
"ordering": 9999999,
|
|
9
|
-
"owner": {
|
|
10
|
-
"value": {
|
|
11
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
12
|
-
},
|
|
13
|
-
"selected": null,
|
|
14
|
-
"key": "name",
|
|
15
|
-
"type": "standard",
|
|
16
|
-
"collection": "users"
|
|
17
|
-
},
|
|
18
|
-
"enabled": true,
|
|
19
|
-
"themeCtrl": null,
|
|
20
|
-
"theme": {
|
|
21
|
-
"value": null,
|
|
22
|
-
"selected": null,
|
|
23
|
-
"key": "name",
|
|
24
|
-
"type": "standard",
|
|
25
|
-
"collection": "themes"
|
|
26
|
-
},
|
|
27
|
-
"date": {
|
|
28
|
-
"$date": "2022-02-10T01:42:35Z"
|
|
29
|
-
},
|
|
30
|
-
"modified": {
|
|
31
|
-
"$date": "2023-02-05T15:43:36.786Z"
|
|
32
|
-
},
|
|
33
|
-
"shortCode": "linkContext",
|
|
34
|
-
"severity": "high",
|
|
35
|
-
"criteria": "clickables",
|
|
36
|
-
"WCAGLevel": "A",
|
|
37
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211#link-purpose-in-context",
|
|
38
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
39
|
-
"shortDescription": "Links should indicate their functionality and destination to assistive technology",
|
|
40
|
-
"addSROnlyCSS": true,
|
|
41
|
-
"saveSuccesses": true,
|
|
42
|
-
"issueDescription": "Visual cues on pages provide context to links or hint functionality to users with sight, even if the links aren't fully descriptive. Screen reader users need to know where a link will take them based on the anchor text without additional context.",
|
|
43
|
-
"issueResolution": "<p>Examples include links to the shopping cart, to the company's Facebook page, to the site's search page, or to other similar destinations.</p>\n<p>If the link's anchor text doesn't explicitly describe those destinations, add screen-reader only text describing the destination, as seen in the example below:</p>\n<pre class=\"language-html\"><code><span class=\"sr-only\">Shopping Cart</span></code></pre>",
|
|
44
|
-
"suggestedFix": [
|
|
45
|
-
{
|
|
46
|
-
"suggestedFixType": "srOnly",
|
|
47
|
-
"suggestedFixKey": "",
|
|
48
|
-
"suggestedFixValue": "{suggestion}",
|
|
49
|
-
"suggestedFixHTML": ""
|
|
50
|
-
}
|
|
51
|
-
]
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"_id": {
|
|
55
|
-
"$oid": "620570816199d73f9cf2aec8"
|
|
56
|
-
},
|
|
57
|
-
"name": "Font Sizes",
|
|
58
|
-
"route": "font-sizes",
|
|
59
|
-
"ordering": 9999999,
|
|
60
|
-
"owner": {
|
|
61
|
-
"value": {
|
|
62
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
63
|
-
},
|
|
64
|
-
"selected": null,
|
|
65
|
-
"key": "name",
|
|
66
|
-
"type": "standard",
|
|
67
|
-
"collection": "users"
|
|
68
|
-
},
|
|
69
|
-
"enabled": true,
|
|
70
|
-
"themeCtrl": null,
|
|
71
|
-
"theme": {
|
|
72
|
-
"value": null,
|
|
73
|
-
"selected": null,
|
|
74
|
-
"key": "name",
|
|
75
|
-
"type": "standard",
|
|
76
|
-
"collection": "themes"
|
|
77
|
-
},
|
|
78
|
-
"date": {
|
|
79
|
-
"$date": "2022-02-10T11:35:07Z"
|
|
80
|
-
},
|
|
81
|
-
"modified": {
|
|
82
|
-
"$date": "2022-03-27T18:49:26.276Z"
|
|
83
|
-
},
|
|
84
|
-
"shortCode": "fontSizes",
|
|
85
|
-
"severity": "medium",
|
|
86
|
-
"criteria": "readability",
|
|
87
|
-
"WCAGLevel": "none",
|
|
88
|
-
"issueWCAGLink": "-",
|
|
89
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
90
|
-
"shortDescription": "Font sizes should provide a readable experience",
|
|
91
|
-
"addSROnlyCSS": false,
|
|
92
|
-
"saveSuccesses": false,
|
|
93
|
-
"issueDescription": "Using small font sizes (usually 12 pixels or below) can be very difficult for certain vision impairments to interact with.",
|
|
94
|
-
"issueResolution": "<p>Do not use less than 12px font-sizes. Ideally, don't go lower than 14px.</p><pre class=\"language-html\"><code><style>\nbody * {\n font-size: 15px;\n}\n</style></code></pre>",
|
|
95
|
-
"suggestedFix": []
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"_id": {
|
|
99
|
-
"$oid": "620572506199d73f9cf2aed1"
|
|
100
|
-
},
|
|
101
|
-
"name": "Empty Headings",
|
|
102
|
-
"route": "empty-headings",
|
|
103
|
-
"ordering": 9999999,
|
|
104
|
-
"owner": {
|
|
105
|
-
"value": {
|
|
106
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
107
|
-
},
|
|
108
|
-
"selected": null,
|
|
109
|
-
"key": "name",
|
|
110
|
-
"type": "standard",
|
|
111
|
-
"collection": "users"
|
|
112
|
-
},
|
|
113
|
-
"enabled": true,
|
|
114
|
-
"themeCtrl": null,
|
|
115
|
-
"theme": {
|
|
116
|
-
"value": null,
|
|
117
|
-
"selected": null,
|
|
118
|
-
"key": "name",
|
|
119
|
-
"type": "standard",
|
|
120
|
-
"collection": "themes"
|
|
121
|
-
},
|
|
122
|
-
"date": {
|
|
123
|
-
"$date": "2022-02-10T20:14:46Z"
|
|
124
|
-
},
|
|
125
|
-
"modified": {
|
|
126
|
-
"$date": "2022-03-27T18:52:21.349Z"
|
|
127
|
-
},
|
|
128
|
-
"shortCode": "emptyHeadings",
|
|
129
|
-
"isAutoResolvable": true,
|
|
130
|
-
"engineRules": [
|
|
131
|
-
"heading-discernible"
|
|
132
|
-
],
|
|
133
|
-
"severity": "high",
|
|
134
|
-
"criteria": "headings",
|
|
135
|
-
"WCAGLevel": "AA",
|
|
136
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=144%2C1412%2C211%2C143#headings-and-labels",
|
|
137
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
138
|
-
"shortDescription": "Empty headings should be excluded from assistive technology",
|
|
139
|
-
"addSROnlyCSS": false,
|
|
140
|
-
"saveSuccesses": false,
|
|
141
|
-
"issueDescription": "Screen reader users use header navigation to skim through pages and quickly learn their topics. If empty headers exist, the header navigation feature breaks, and assistive technology users will find the page very difficult to browse.",
|
|
142
|
-
"issueResolution": "<p>Remove empty heading tags from your HTML, or add content to them.</p>",
|
|
143
|
-
"suggestedFix": [
|
|
144
|
-
{
|
|
145
|
-
"suggestedFixType": "attribute",
|
|
146
|
-
"suggestedFixKey": "role",
|
|
147
|
-
"suggestedFixValue": "presentation",
|
|
148
|
-
"suggestedFixHTML": ""
|
|
149
|
-
}
|
|
150
|
-
]
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
"_id": {
|
|
154
|
-
"$oid": "620573426199d73f9cf2aed4"
|
|
155
|
-
},
|
|
156
|
-
"name": "Nested Tables",
|
|
157
|
-
"route": "nested-tables",
|
|
158
|
-
"ordering": 9999999,
|
|
159
|
-
"owner": {
|
|
160
|
-
"value": {
|
|
161
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
162
|
-
},
|
|
163
|
-
"selected": null,
|
|
164
|
-
"key": "name",
|
|
165
|
-
"type": "standard",
|
|
166
|
-
"collection": "users"
|
|
167
|
-
},
|
|
168
|
-
"enabled": true,
|
|
169
|
-
"themeCtrl": null,
|
|
170
|
-
"theme": {
|
|
171
|
-
"value": null,
|
|
172
|
-
"selected": null,
|
|
173
|
-
"key": "name",
|
|
174
|
-
"type": "standard",
|
|
175
|
-
"collection": "themes"
|
|
176
|
-
},
|
|
177
|
-
"date": {
|
|
178
|
-
"$date": "2022-02-10T20:17:48Z"
|
|
179
|
-
},
|
|
180
|
-
"modified": {
|
|
181
|
-
"$date": "2022-03-27T18:53:30.173Z"
|
|
182
|
-
},
|
|
183
|
-
"shortCode": "nestedTables",
|
|
184
|
-
"severity": "medium",
|
|
185
|
-
"criteria": "tables",
|
|
186
|
-
"WCAGLevel": "A",
|
|
187
|
-
"issueWCAGLink": "https://www.w3.org/WAI/standards-guidelines/wcag/",
|
|
188
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
189
|
-
"shortDescription": "Avoid using nested tables",
|
|
190
|
-
"addSROnlyCSS": false,
|
|
191
|
-
"saveSuccesses": false,
|
|
192
|
-
"issueDescription": "Nesting table within tables completely breaks the orientation of screen reader users. Assistive technology relies on matching column and row cells to announce table content to users, and if tables are nested, screen readers start to read random text.",
|
|
193
|
-
"issueResolution": "<p>If you've nested tables to create specific layouts visually, but the parent table still functions as a regular table for information delivery, use role=presentation on the nested table to erase its accessibility table role. If the whole table structure is for layout purposes only and not for displaying information in a table, use role=presentation on both nested and parent tables.</p>\n<pre class=\"language-html\"><code><table>\n <tbody>\n <tr>\n <td>\n <table role=\"presentation\"></table>\n </td>\n <tr>\n </tbody>\n</table></code></pre>",
|
|
194
|
-
"suggestedFix": []
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
"_id": {
|
|
198
|
-
"$oid": "620651e9b0b1184e88c8382a"
|
|
199
|
-
},
|
|
200
|
-
"name": "Empty List",
|
|
201
|
-
"route": "empty-list",
|
|
202
|
-
"ordering": 9999999,
|
|
203
|
-
"owner": {
|
|
204
|
-
"value": {
|
|
205
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
206
|
-
},
|
|
207
|
-
"selected": null,
|
|
208
|
-
"key": "name",
|
|
209
|
-
"type": "standard",
|
|
210
|
-
"collection": "users"
|
|
211
|
-
},
|
|
212
|
-
"enabled": true,
|
|
213
|
-
"themeCtrl": null,
|
|
214
|
-
"theme": {
|
|
215
|
-
"value": null,
|
|
216
|
-
"selected": null,
|
|
217
|
-
"key": "name",
|
|
218
|
-
"type": "standard",
|
|
219
|
-
"collection": "themes"
|
|
220
|
-
},
|
|
221
|
-
"date": {
|
|
222
|
-
"$date": "2022-02-11T12:08:41Z"
|
|
223
|
-
},
|
|
224
|
-
"modified": {
|
|
225
|
-
"$date": "2022-02-26T20:53:50.741Z"
|
|
226
|
-
},
|
|
227
|
-
"shortCode": "emptyList",
|
|
228
|
-
"isAutoResolvable": true,
|
|
229
|
-
"engineRules": [
|
|
230
|
-
"list-not-empty"
|
|
231
|
-
],
|
|
232
|
-
"severity": "low",
|
|
233
|
-
"criteria": "errors",
|
|
234
|
-
"WCAGLevel": "none",
|
|
235
|
-
"issueWCAGLink": "-",
|
|
236
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
237
|
-
"shortDescription": "Lists without items or with a single item should lose the list role",
|
|
238
|
-
"addSROnlyCSS": false,
|
|
239
|
-
"saveSuccesses": false,
|
|
240
|
-
"issueDescription": "An empty list will still be visible for screen reader users. It may frustrate and confuse users as to whether the list is actually empty or there is a screen-reader/accessibility issue that prevents their screen-reader from reading the list items.",
|
|
241
|
-
"issueResolution": "<p>Remove the empty HTML list tags (<strong>UL/OL</strong>) or give them <strong>aria-hidden=true to </strong>make screen-readers ignore them.</p>\n<pre class=\"language-html\"><code><ul aria-hidden=\"true\"></ul>\n<ol aria-hidden=\"true\"></ol></code></pre>",
|
|
242
|
-
"suggestedFix": [
|
|
243
|
-
{
|
|
244
|
-
"suggestedFixType": "attribute",
|
|
245
|
-
"suggestedFixKey": "aria-hidden",
|
|
246
|
-
"suggestedFixValue": "true",
|
|
247
|
-
"suggestedFixHTML": ""
|
|
248
|
-
}
|
|
249
|
-
]
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
"_id": {
|
|
253
|
-
"$oid": "620572b76199d73f9cf2aed2"
|
|
254
|
-
},
|
|
255
|
-
"name": "Untagged Headings",
|
|
256
|
-
"route": "untagged-headings",
|
|
257
|
-
"ordering": 9999999,
|
|
258
|
-
"owner": {
|
|
259
|
-
"value": {
|
|
260
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
261
|
-
},
|
|
262
|
-
"selected": null,
|
|
263
|
-
"key": "name",
|
|
264
|
-
"type": "standard",
|
|
265
|
-
"collection": "users"
|
|
266
|
-
},
|
|
267
|
-
"enabled": true,
|
|
268
|
-
"themeCtrl": null,
|
|
269
|
-
"theme": {
|
|
270
|
-
"value": null,
|
|
271
|
-
"selected": null,
|
|
272
|
-
"key": "name",
|
|
273
|
-
"type": "standard",
|
|
274
|
-
"collection": "themes"
|
|
275
|
-
},
|
|
276
|
-
"date": {
|
|
277
|
-
"$date": "2022-02-10T20:15:12Z"
|
|
278
|
-
},
|
|
279
|
-
"modified": {
|
|
280
|
-
"$date": "2022-03-27T18:52:57.37Z"
|
|
281
|
-
},
|
|
282
|
-
"shortCode": "untaggedHeadings",
|
|
283
|
-
"severity": "high",
|
|
284
|
-
"criteria": "headings",
|
|
285
|
-
"WCAGLevel": "AA",
|
|
286
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
287
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
288
|
-
"shortDescription": "Headings should be tagged or coded accordingly",
|
|
289
|
-
"addSROnlyCSS": false,
|
|
290
|
-
"saveSuccesses": true,
|
|
291
|
-
"issueDescription": "Text blocks that visually function as headings for sighted users should also be tagged as headings for screen reader users, even if they are not coded as native headers.",
|
|
292
|
-
"issueResolution": "<p>If you specifically coded headers without native header HTML tags (like H1, H2, etc.) for SEO reasons or otherwise, use <strong>role=heading</strong> and <strong>aria-level=1/2/3/4/5/6</strong> (the appropriate heading level) to determine a heading to screen readers. Alternatively, you can directly code those elements as native HTML headers.</p>\n<pre class=\"language-html\"><code><span role=\"heading\" aria-level=\"3\">This will be treated by screen readers like an H3 heading</span></code></pre>",
|
|
293
|
-
"suggestedFix": [
|
|
294
|
-
{
|
|
295
|
-
"suggestedFixType": "attribute",
|
|
296
|
-
"suggestedFixKey": "role",
|
|
297
|
-
"suggestedFixValue": "heading",
|
|
298
|
-
"suggestedFixHTML": ""
|
|
299
|
-
},
|
|
300
|
-
{
|
|
301
|
-
"suggestedFixType": "attribute",
|
|
302
|
-
"suggestedFixKey": "aria-level",
|
|
303
|
-
"suggestedFixValue": "1/2/3...",
|
|
304
|
-
"suggestedFixHTML": ""
|
|
305
|
-
}
|
|
306
|
-
]
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
"_id": {
|
|
310
|
-
"$oid": "62058a9f6199d73f9cf2aedd"
|
|
311
|
-
},
|
|
312
|
-
"name": "Iframe Labeling",
|
|
313
|
-
"route": "iframe-labeling",
|
|
314
|
-
"ordering": 9999999,
|
|
315
|
-
"owner": {
|
|
316
|
-
"value": {
|
|
317
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
318
|
-
},
|
|
319
|
-
"selected": null,
|
|
320
|
-
"key": "name",
|
|
321
|
-
"type": "standard",
|
|
322
|
-
"collection": "users"
|
|
323
|
-
},
|
|
324
|
-
"enabled": true,
|
|
325
|
-
"themeCtrl": null,
|
|
326
|
-
"theme": {
|
|
327
|
-
"value": null,
|
|
328
|
-
"selected": null,
|
|
329
|
-
"key": "name",
|
|
330
|
-
"type": "standard",
|
|
331
|
-
"collection": "themes"
|
|
332
|
-
},
|
|
333
|
-
"date": {
|
|
334
|
-
"$date": "2022-02-10T21:58:35Z"
|
|
335
|
-
},
|
|
336
|
-
"modified": {
|
|
337
|
-
"$date": "2022-02-25T21:27:47.735Z"
|
|
338
|
-
},
|
|
339
|
-
"shortCode": "iframeLabeling",
|
|
340
|
-
"severity": "medium",
|
|
341
|
-
"criteria": "context",
|
|
342
|
-
"WCAGLevel": "none",
|
|
343
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C412#name-role-value",
|
|
344
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
345
|
-
"shortDescription": "Iframe elements should be labeled properly for assistive technology",
|
|
346
|
-
"addSROnlyCSS": false,
|
|
347
|
-
"saveSuccesses": true,
|
|
348
|
-
"issueDescription": "Screen readers treat iframes as an integral part of the web page. Iframes often provide a specific functionality like a form or a YouTube video. If Iframes are unlabeled, users can't choose whether to enter them or not and how they relate to the page.",
|
|
349
|
-
"issueResolution": "<p>Use the <strong>aria-label </strong>attribute to indicate the functionality of a given iframe like in the example below:</p>\n<pre class=\"language-html\"><code><iframe src=\"...\" aria-label=\"YouTube tutorial video\"></iframe></code></pre>",
|
|
350
|
-
"suggestedFix": [
|
|
351
|
-
{
|
|
352
|
-
"suggestedFixType": "attribute",
|
|
353
|
-
"suggestedFixKey": "aria-label",
|
|
354
|
-
"suggestedFixValue": "",
|
|
355
|
-
"suggestedFixHTML": ""
|
|
356
|
-
}
|
|
357
|
-
]
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
"_id": {
|
|
361
|
-
"$oid": "6206348facb7f0495c5df3a1"
|
|
362
|
-
},
|
|
363
|
-
"name": "Form Submissions Status",
|
|
364
|
-
"route": "form-submissions-status",
|
|
365
|
-
"ordering": 9999999,
|
|
366
|
-
"owner": {
|
|
367
|
-
"value": {
|
|
368
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
369
|
-
},
|
|
370
|
-
"selected": null,
|
|
371
|
-
"key": "name",
|
|
372
|
-
"type": "standard",
|
|
373
|
-
"collection": "users"
|
|
374
|
-
},
|
|
375
|
-
"enabled": true,
|
|
376
|
-
"themeCtrl": null,
|
|
377
|
-
"theme": {
|
|
378
|
-
"value": null,
|
|
379
|
-
"selected": null,
|
|
380
|
-
"key": "name",
|
|
381
|
-
"type": "standard",
|
|
382
|
-
"collection": "themes"
|
|
383
|
-
},
|
|
384
|
-
"date": {
|
|
385
|
-
"$date": "2022-02-11T10:02:37Z"
|
|
386
|
-
},
|
|
387
|
-
"modified": {
|
|
388
|
-
"$date": "2022-02-26T12:23:04.562Z"
|
|
389
|
-
},
|
|
390
|
-
"shortCode": "formSubmissionsStatus",
|
|
391
|
-
"severity": "high",
|
|
392
|
-
"criteria": "forms",
|
|
393
|
-
"WCAGLevel": "AA",
|
|
394
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131%2C411#status-messages",
|
|
395
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
396
|
-
"shortDescription": "Submission statuses (success/failure) should be indicated to assistive technology",
|
|
397
|
-
"addSROnlyCSS": false,
|
|
398
|
-
"saveSuccesses": true,
|
|
399
|
-
"issueDescription": "Screen reader users rely on status messages to automatically announce when a form is submitted. If status messages are not automatically announced, screen reader users will have to attempt to understand the status by browsing around picking clues.",
|
|
400
|
-
"issueResolution": "<p>Include the <strong>role=alert </strong>attributes on the success/failure message of your forms.</p>\n<p>Please note that the alert message should appear only once to announce the form status and not every field validation. Field validations should be handled separately.</p>\n<pre class=\"language-html\"><code><div role=\"alert\">Thank you, we'll get back to you shortly.</div></code></pre>",
|
|
401
|
-
"suggestedFix": []
|
|
402
|
-
},
|
|
403
|
-
{
|
|
404
|
-
"_id": {
|
|
405
|
-
"$oid": "620652adb0b1184e88c8382c"
|
|
406
|
-
},
|
|
407
|
-
"name": "Enter Clickability",
|
|
408
|
-
"route": "enter-clickability",
|
|
409
|
-
"ordering": 9999999,
|
|
410
|
-
"owner": {
|
|
411
|
-
"value": {
|
|
412
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
413
|
-
},
|
|
414
|
-
"selected": null,
|
|
415
|
-
"key": "name",
|
|
416
|
-
"type": "standard",
|
|
417
|
-
"collection": "users"
|
|
418
|
-
},
|
|
419
|
-
"enabled": true,
|
|
420
|
-
"themeCtrl": null,
|
|
421
|
-
"theme": {
|
|
422
|
-
"value": null,
|
|
423
|
-
"selected": null,
|
|
424
|
-
"key": "name",
|
|
425
|
-
"type": "standard",
|
|
426
|
-
"collection": "themes"
|
|
427
|
-
},
|
|
428
|
-
"date": {
|
|
429
|
-
"$date": "2022-02-11T12:11:08Z"
|
|
430
|
-
},
|
|
431
|
-
"modified": {
|
|
432
|
-
"$date": "2022-02-27T12:26:45.5Z"
|
|
433
|
-
},
|
|
434
|
-
"shortCode": "enterClickability",
|
|
435
|
-
"severity": "extreme",
|
|
436
|
-
"criteria": "keyboard",
|
|
437
|
-
"WCAGLevel": "A",
|
|
438
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211#keyboard-accessible",
|
|
439
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
440
|
-
"shortDescription": "Interactive elements should be clickable using the Enter key",
|
|
441
|
-
"addSROnlyCSS": false,
|
|
442
|
-
"saveSuccesses": false,
|
|
443
|
-
"issueDescription": "Only links with an href attribute, buttons, and a handful of other, less usable tags can be triggered using the Enter key by default. If you've used different elements and added JS click events to them, those elements are not operable using the keyboard.",
|
|
444
|
-
"issueResolution": "<p>Add JavaScript to ensure that elements that are not clickable by default are clickable using the enter key. Alternatively, use native <strong>BUTTON </strong>and <strong>A</strong> HTML elements, which are keyboard clickable by default. Note that <strong>A</strong> tags (links) are only clickable if they include an <strong>HREF</strong> attribute.</p>\n<p>If you choose to go the JavaScript route, you can copy and paste the below, which will add that functionality to your website. However, make sure to include your clickable selectors where the <strong>\".your-clickable-selectors\"</strong> text appears. </p>\n<pre class=\"language-javascript\"><code>document.addEventListener('keydown', e => {\n if( e.which !== 13 || ['BUTTON', 'A'].includes(e.target.tagName) || ! e.target.closest('.your-clickable-selectors') ) return;\n e.target.click();\n})</code></pre>",
|
|
445
|
-
"suggestedFix": []
|
|
446
|
-
},
|
|
447
|
-
{
|
|
448
|
-
"_id": {
|
|
449
|
-
"$oid": "6204715c00e72f4578e07365"
|
|
450
|
-
},
|
|
451
|
-
"name": "Button Roles",
|
|
452
|
-
"route": "button-roles",
|
|
453
|
-
"ordering": 9999999,
|
|
454
|
-
"owner": {
|
|
455
|
-
"value": {
|
|
456
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
457
|
-
},
|
|
458
|
-
"selected": null,
|
|
459
|
-
"key": "name",
|
|
460
|
-
"type": "standard",
|
|
461
|
-
"collection": "users"
|
|
462
|
-
},
|
|
463
|
-
"enabled": true,
|
|
464
|
-
"themeCtrl": null,
|
|
465
|
-
"theme": {
|
|
466
|
-
"value": null,
|
|
467
|
-
"selected": null,
|
|
468
|
-
"key": "name",
|
|
469
|
-
"type": "standard",
|
|
470
|
-
"collection": "themes"
|
|
471
|
-
},
|
|
472
|
-
"date": {
|
|
473
|
-
"$date": "2022-02-10T01:58:13Z"
|
|
474
|
-
},
|
|
475
|
-
"modified": {
|
|
476
|
-
"$date": "2022-03-27T17:25:43.093Z"
|
|
477
|
-
},
|
|
478
|
-
"shortCode": "buttonRoles",
|
|
479
|
-
"severity": "extreme",
|
|
480
|
-
"criteria": "clickables",
|
|
481
|
-
"WCAGLevel": "A",
|
|
482
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C412#name-role-value",
|
|
483
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
484
|
-
"shortDescription": "Elements with button functionality should have proper roles",
|
|
485
|
-
"addSROnlyCSS": false,
|
|
486
|
-
"saveSuccesses": false,
|
|
487
|
-
"issueDescription": "Certain elements within the page may exhibit behavior similar to buttons, yet they often lack the necessary labeling. This can lead screen readers to incorrectly interpret the element's purpose, causing confusion for users who depend on assistive technology. Such instances might involve a link element that should function as a button, even when it contains empty <strong>href</strong> attributes or hash URLs. Additionally, this scenario extends to ordinary elements like <strong><div></strong> and <strong><span></strong> that are made interactive.",
|
|
488
|
-
"issueResolution": "<p>To indicate to a screen reader that an element is actually a button, we can either use the ARIA-role technique (adding <strong>role=button</strong>) as shown in the SPAN and DIV examples below or convert the element tag to a native button with a <strong>type=button </strong>attribute. If the button submits a form, the \"<strong>type</strong>\" attribute would be \"<strong>submit</strong>\".</p>\n<pre class=\"language-html\"><code><span role=\"button\">I'm a SPAN that functions like a button for screen readers</span>\n<div role=\"button\">I'm a DIV that functions like a button for screen readers</div>\n<button type=\"button\">I'm a NATIVE button</button></code></pre>",
|
|
489
|
-
"suggestedFix": [
|
|
490
|
-
{
|
|
491
|
-
"suggestedFixType": "tag",
|
|
492
|
-
"suggestedFixKey": "",
|
|
493
|
-
"suggestedFixValue": "button",
|
|
494
|
-
"suggestedFixHTML": ""
|
|
495
|
-
},
|
|
496
|
-
{
|
|
497
|
-
"suggestedFixType": "attribute",
|
|
498
|
-
"suggestedFixKey": "type",
|
|
499
|
-
"suggestedFixValue": "button",
|
|
500
|
-
"suggestedFixHTML": ""
|
|
501
|
-
}
|
|
502
|
-
]
|
|
503
|
-
},
|
|
504
|
-
{
|
|
505
|
-
"_id": {
|
|
506
|
-
"$oid": "620471f050ec392830b7e7ca"
|
|
507
|
-
},
|
|
508
|
-
"name": "New Window Links",
|
|
509
|
-
"route": "new-window-links",
|
|
510
|
-
"ordering": 9999999,
|
|
511
|
-
"owner": {
|
|
512
|
-
"value": {
|
|
513
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
514
|
-
},
|
|
515
|
-
"selected": null,
|
|
516
|
-
"key": "name",
|
|
517
|
-
"type": "standard",
|
|
518
|
-
"collection": "users"
|
|
519
|
-
},
|
|
520
|
-
"enabled": true,
|
|
521
|
-
"themeCtrl": null,
|
|
522
|
-
"theme": {
|
|
523
|
-
"value": null,
|
|
524
|
-
"selected": null,
|
|
525
|
-
"key": "name",
|
|
526
|
-
"type": "standard",
|
|
527
|
-
"collection": "themes"
|
|
528
|
-
},
|
|
529
|
-
"date": {
|
|
530
|
-
"$date": "2022-02-10T02:00:22Z"
|
|
531
|
-
},
|
|
532
|
-
"modified": {
|
|
533
|
-
"$date": "2022-03-27T17:26:01.122Z"
|
|
534
|
-
},
|
|
535
|
-
"shortCode": "newWindowLinks",
|
|
536
|
-
"severity": "medium",
|
|
537
|
-
"criteria": "clickables",
|
|
538
|
-
"WCAGLevel": "none",
|
|
539
|
-
"issueWCAGLink": "-",
|
|
540
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
541
|
-
"shortDescription": "Links should indicate if they open a new tab to assistive technology",
|
|
542
|
-
"addSROnlyCSS": true,
|
|
543
|
-
"saveSuccesses": true,
|
|
544
|
-
"issueDescription": "By default, screen readers do not indicate if links will open a new window to users. When links unexpectedly open a new window, this often frustrates and disorientates a screen reader user.",
|
|
545
|
-
"issueResolution": "<p>Use the screen-reader-only technique to indicate to screen reader users when a link will open a new window.</p>\n<pre class=\"language-html\"><code><span class=\"sr-only\">New Window</span></code></pre>",
|
|
546
|
-
"suggestedFix": [
|
|
547
|
-
{
|
|
548
|
-
"suggestedFixType": "srOnly",
|
|
549
|
-
"suggestedFixKey": "",
|
|
550
|
-
"suggestedFixValue": "new window",
|
|
551
|
-
"suggestedFixHTML": ""
|
|
552
|
-
}
|
|
553
|
-
]
|
|
554
|
-
},
|
|
555
|
-
{
|
|
556
|
-
"_id": {
|
|
557
|
-
"$oid": "620571dd6199d73f9cf2aece"
|
|
558
|
-
},
|
|
559
|
-
"name": "Background Images",
|
|
560
|
-
"route": "background-images",
|
|
561
|
-
"ordering": 9999999,
|
|
562
|
-
"owner": {
|
|
563
|
-
"value": {
|
|
564
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
565
|
-
},
|
|
566
|
-
"selected": null,
|
|
567
|
-
"key": "name",
|
|
568
|
-
"type": "standard",
|
|
569
|
-
"collection": "users"
|
|
570
|
-
},
|
|
571
|
-
"enabled": true,
|
|
572
|
-
"themeCtrl": null,
|
|
573
|
-
"theme": {
|
|
574
|
-
"value": null,
|
|
575
|
-
"selected": null,
|
|
576
|
-
"key": "name",
|
|
577
|
-
"type": "standard",
|
|
578
|
-
"collection": "themes"
|
|
579
|
-
},
|
|
580
|
-
"date": {
|
|
581
|
-
"$date": "2022-02-10T20:10:54Z"
|
|
582
|
-
},
|
|
583
|
-
"modified": {
|
|
584
|
-
"$date": "2022-02-25T17:47:38.151Z"
|
|
585
|
-
},
|
|
586
|
-
"shortCode": "backgroundImages",
|
|
587
|
-
"severity": "medium",
|
|
588
|
-
"criteria": "graphics",
|
|
589
|
-
"WCAGLevel": "A",
|
|
590
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C412#non-text-content",
|
|
591
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
592
|
-
"shortDescription": "Non decorative Background images should be tagged and labeled",
|
|
593
|
-
"addSROnlyCSS": true,
|
|
594
|
-
"saveSuccesses": true,
|
|
595
|
-
"issueDescription": "Background images should receive alternative text just like regular images do unless used as decorative elements and do not provide any information or additional context to the users.",
|
|
596
|
-
"issueResolution": "<p>Use the <strong>screen-reader-only</strong> technique combined with the <strong>role=img</strong> and <strong>aria-label</strong> attributes to indicate to screen readers that there's an image and the description for that image. Make sure to include the embedded text of the image alongside the objects that comprise it in the <strong>aria-label </strong>description.</p>\n<p>Add The screen-ready-only element into the element with the background image like in the example below:</p>\n<pre class=\"language-html\"><code><div style=\"background-image: url(...)\"><span class=\"sr-only\" role=\"img\" aria-label=\"Shop Tennis gear. Two people playing professional tennis in a stadium with spectators.\"></span></div></code></pre>",
|
|
597
|
-
"suggestedFix": []
|
|
598
|
-
},
|
|
599
|
-
{
|
|
600
|
-
"_id": {
|
|
601
|
-
"$oid": "620572096199d73f9cf2aecf"
|
|
602
|
-
},
|
|
603
|
-
"name": "Main Heading",
|
|
604
|
-
"route": "main-heading",
|
|
605
|
-
"ordering": 9999999,
|
|
606
|
-
"owner": {
|
|
607
|
-
"value": {
|
|
608
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
609
|
-
},
|
|
610
|
-
"selected": null,
|
|
611
|
-
"key": "name",
|
|
612
|
-
"type": "standard",
|
|
613
|
-
"collection": "users"
|
|
614
|
-
},
|
|
615
|
-
"enabled": true,
|
|
616
|
-
"themeCtrl": null,
|
|
617
|
-
"theme": {
|
|
618
|
-
"value": null,
|
|
619
|
-
"selected": null,
|
|
620
|
-
"key": "name",
|
|
621
|
-
"type": "standard",
|
|
622
|
-
"collection": "themes"
|
|
623
|
-
},
|
|
624
|
-
"date": {
|
|
625
|
-
"$date": "2022-02-10T20:13:17Z"
|
|
626
|
-
},
|
|
627
|
-
"modified": {
|
|
628
|
-
"$date": "2022-03-27T18:51:56.426Z"
|
|
629
|
-
},
|
|
630
|
-
"shortCode": "mainHeading",
|
|
631
|
-
"severity": "high",
|
|
632
|
-
"criteria": "headings",
|
|
633
|
-
"WCAGLevel": "none",
|
|
634
|
-
"issueWCAGLink": "-",
|
|
635
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
636
|
-
"shortDescription": "A descriptive main heading (H1) should exist on every page",
|
|
637
|
-
"addSROnlyCSS": false,
|
|
638
|
-
"saveSuccesses": true,
|
|
639
|
-
"issueDescription": "Screen reader users rely on the main header (H1) tag to determine the topic of the page and the main content section. Pages without a main header are more difficult for assistive technology users to browse.",
|
|
640
|
-
"issueResolution": "<p>Include single, descriptive, visible H1 (main header) on every page. Make sure that the header is placed where the content section of the page starts, and that it provides enough information to determine the page's topic.</p>\n<pre class=\"language-html\"><code><h1>I'm a main heading...</h1></code></pre>",
|
|
641
|
-
"suggestedFix": []
|
|
642
|
-
},
|
|
643
|
-
{
|
|
644
|
-
"_id": {
|
|
645
|
-
"$oid": "62058b0a6199d73f9cf2aee0"
|
|
646
|
-
},
|
|
647
|
-
"name": "Active Tab",
|
|
648
|
-
"route": "active-tab",
|
|
649
|
-
"ordering": 9999999,
|
|
650
|
-
"owner": {
|
|
651
|
-
"value": {
|
|
652
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
653
|
-
},
|
|
654
|
-
"selected": null,
|
|
655
|
-
"key": "name",
|
|
656
|
-
"type": "standard",
|
|
657
|
-
"collection": "users"
|
|
658
|
-
},
|
|
659
|
-
"enabled": true,
|
|
660
|
-
"themeCtrl": null,
|
|
661
|
-
"theme": {
|
|
662
|
-
"value": null,
|
|
663
|
-
"selected": null,
|
|
664
|
-
"key": "name",
|
|
665
|
-
"type": "standard",
|
|
666
|
-
"collection": "themes"
|
|
667
|
-
},
|
|
668
|
-
"date": {
|
|
669
|
-
"$date": "2022-02-10T22:00:01Z"
|
|
670
|
-
},
|
|
671
|
-
"modified": {
|
|
672
|
-
"$date": "2022-02-26T00:38:49.649Z"
|
|
673
|
-
},
|
|
674
|
-
"shortCode": "activeTab",
|
|
675
|
-
"isAutoResolvable": true,
|
|
676
|
-
"engineRules": [],
|
|
677
|
-
"severity": "high",
|
|
678
|
-
"criteria": "context",
|
|
679
|
-
"WCAGLevel": "A",
|
|
680
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C412#name-role-value",
|
|
681
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
682
|
-
"shortDescription": "The active tab should be tagged as such for assistive technology",
|
|
683
|
-
"addSROnlyCSS": false,
|
|
684
|
-
"saveSuccesses": true,
|
|
685
|
-
"issueDescription": "Screen readers require properly coded states for interactive elements. Tabs can have active and inactive states, and just like an active state usually is visually distinct, this should be indicated to screen reader users in the code.",
|
|
686
|
-
"issueResolution": "<p>Add the <strong>aria-selected=true</strong> to the active tab, alongside the <strong>role=tab</strong> to indicate that the element is indeed a tab. It's also essential to make sure to change the <strong>aria-selected=true</strong> to <strong>false </strong>when another tab becomes active (and that other tab should receive <strong>true</strong>).</p>",
|
|
687
|
-
"suggestedFix": [
|
|
688
|
-
{
|
|
689
|
-
"suggestedFixType": "attribute",
|
|
690
|
-
"suggestedFixKey": "role",
|
|
691
|
-
"suggestedFixValue": "tab",
|
|
692
|
-
"suggestedFixHTML": ""
|
|
693
|
-
},
|
|
694
|
-
{
|
|
695
|
-
"suggestedFixType": "attribute",
|
|
696
|
-
"suggestedFixKey": "aria-selected",
|
|
697
|
-
"suggestedFixValue": "true",
|
|
698
|
-
"suggestedFixHTML": ""
|
|
699
|
-
}
|
|
700
|
-
]
|
|
701
|
-
},
|
|
702
|
-
{
|
|
703
|
-
"_id": {
|
|
704
|
-
"$oid": "62064fe4807c385bb8e74a80"
|
|
705
|
-
},
|
|
706
|
-
"name": "Fake Hidden Content",
|
|
707
|
-
"route": "fake-hidden-content",
|
|
708
|
-
"ordering": 9999999,
|
|
709
|
-
"owner": {
|
|
710
|
-
"value": {
|
|
711
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
712
|
-
},
|
|
713
|
-
"selected": null,
|
|
714
|
-
"key": "name",
|
|
715
|
-
"type": "standard",
|
|
716
|
-
"collection": "users"
|
|
717
|
-
},
|
|
718
|
-
"enabled": true,
|
|
719
|
-
"themeCtrl": null,
|
|
720
|
-
"theme": {
|
|
721
|
-
"value": null,
|
|
722
|
-
"selected": null,
|
|
723
|
-
"key": "name",
|
|
724
|
-
"type": "standard",
|
|
725
|
-
"collection": "themes"
|
|
726
|
-
},
|
|
727
|
-
"date": {
|
|
728
|
-
"$date": "2022-02-11T11:59:59Z"
|
|
729
|
-
},
|
|
730
|
-
"modified": {
|
|
731
|
-
"$date": "2022-02-26T20:23:47.27Z"
|
|
732
|
-
},
|
|
733
|
-
"shortCode": "fakeHiddenContent",
|
|
734
|
-
"isAutoResolvable": true,
|
|
735
|
-
"engineRules": [],
|
|
736
|
-
"severity": "high",
|
|
737
|
-
"criteria": "errors",
|
|
738
|
-
"WCAGLevel": "A",
|
|
739
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/meaningful-sequence.html",
|
|
740
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
741
|
-
"shortDescription": "Visually hidden content should be excluded from assistive technology",
|
|
742
|
-
"addSROnlyCSS": false,
|
|
743
|
-
"saveSuccesses": true,
|
|
744
|
-
"issueDescription": "Hiding elements on screen using any other method than display=none or visibility=hidden still makes them available for screen readers and when they are not intended to be visible or available to anyone.",
|
|
745
|
-
"issueResolution": "<p>Add the <strong>aria-hidden=true</strong> attribute <strong>to the parent element</strong> of all the hidden content on the screen that isn't hidden using <strong>display=none or visibility=hidden.</strong> When this element becomes visible, for example, if it is a popup that has now appeared on screen, change the <strong>aria-hidden</strong> to <strong>false</strong>. And when it becomes hidden again, change the <strong>aria-hidden </strong>to <strong>true.</strong> The <strong>aria-hidden</strong> attribute should reflect the visibility state of such elements at all times.</p>\n<pre class=\"language-html\"><code><div class=\"hidden-parent\" aria-hidden=\"true\">\n <p>Some content...</p>\n <ul>...</ul>\n</div></code></pre>",
|
|
746
|
-
"suggestedFix": [
|
|
747
|
-
{
|
|
748
|
-
"suggestedFixType": "attribute",
|
|
749
|
-
"suggestedFixKey": "aria-hidden",
|
|
750
|
-
"suggestedFixValue": "true",
|
|
751
|
-
"suggestedFixHTML": ""
|
|
752
|
-
}
|
|
753
|
-
]
|
|
754
|
-
},
|
|
755
|
-
{
|
|
756
|
-
"_id": {
|
|
757
|
-
"$oid": "620653c2b0b1184e88c83833"
|
|
758
|
-
},
|
|
759
|
-
"name": "Broken Tabindex",
|
|
760
|
-
"route": "broken-tabindex",
|
|
761
|
-
"ordering": 9999999,
|
|
762
|
-
"owner": {
|
|
763
|
-
"value": {
|
|
764
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
765
|
-
},
|
|
766
|
-
"selected": null,
|
|
767
|
-
"key": "name",
|
|
768
|
-
"type": "standard",
|
|
769
|
-
"collection": "users"
|
|
770
|
-
},
|
|
771
|
-
"enabled": true,
|
|
772
|
-
"themeCtrl": null,
|
|
773
|
-
"theme": {
|
|
774
|
-
"value": null,
|
|
775
|
-
"selected": null,
|
|
776
|
-
"key": "name",
|
|
777
|
-
"type": "standard",
|
|
778
|
-
"collection": "themes"
|
|
779
|
-
},
|
|
780
|
-
"date": {
|
|
781
|
-
"$date": "2022-02-11T12:16:38Z"
|
|
782
|
-
},
|
|
783
|
-
"modified": {
|
|
784
|
-
"$date": "2022-02-27T17:10:55.599Z"
|
|
785
|
-
},
|
|
786
|
-
"shortCode": "brokenTabindex",
|
|
787
|
-
"severity": "high",
|
|
788
|
-
"criteria": "keyboard",
|
|
789
|
-
"WCAGLevel": "A",
|
|
790
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html",
|
|
791
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
792
|
-
"shortDescription": "Tabindex values should not exceed 0",
|
|
793
|
-
"addSROnlyCSS": false,
|
|
794
|
-
"saveSuccesses": false,
|
|
795
|
-
"issueDescription": "Tabindex values should be 0 for navigable elements or -1 for non-navigable but focusable elements. Any tabindex value above 0 is strictly invalid and will prevent keyboard users from interacting with your website properly.",
|
|
796
|
-
"issueResolution": "<p>If the element should be navigable, give it <strong>tabindex=0.</strong> If you've provided tabindex above 0 because you try to control focus order, then reorder elements in your HTML, but in any case, do not use tabindex above 0.</p>",
|
|
797
|
-
"suggestedFix": [
|
|
798
|
-
{
|
|
799
|
-
"suggestedFixType": "attribute",
|
|
800
|
-
"suggestedFixKey": "tabindex",
|
|
801
|
-
"suggestedFixValue": "0",
|
|
802
|
-
"suggestedFixHTML": ""
|
|
803
|
-
}
|
|
804
|
-
]
|
|
805
|
-
},
|
|
806
|
-
{
|
|
807
|
-
"_id": {
|
|
808
|
-
"$oid": "62058adf6199d73f9cf2aedf"
|
|
809
|
-
},
|
|
810
|
-
"name": "Incorrect Main Landmark",
|
|
811
|
-
"route": "incorrect-main-landmark",
|
|
812
|
-
"ordering": 9999999,
|
|
813
|
-
"owner": {
|
|
814
|
-
"value": {
|
|
815
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
816
|
-
},
|
|
817
|
-
"selected": null,
|
|
818
|
-
"key": "name",
|
|
819
|
-
"type": "standard",
|
|
820
|
-
"collection": "users"
|
|
821
|
-
},
|
|
822
|
-
"enabled": true,
|
|
823
|
-
"themeCtrl": null,
|
|
824
|
-
"theme": {
|
|
825
|
-
"value": null,
|
|
826
|
-
"selected": null,
|
|
827
|
-
"key": "name",
|
|
828
|
-
"type": "standard",
|
|
829
|
-
"collection": "themes"
|
|
830
|
-
},
|
|
831
|
-
"date": {
|
|
832
|
-
"$date": "2022-02-10T21:59:22Z"
|
|
833
|
-
},
|
|
834
|
-
"modified": {
|
|
835
|
-
"$date": "2022-02-25T21:36:15.024Z"
|
|
836
|
-
},
|
|
837
|
-
"shortCode": "incorrectMainLandmark",
|
|
838
|
-
"isAutoResolvable": true,
|
|
839
|
-
"engineRules": [],
|
|
840
|
-
"severity": "high",
|
|
841
|
-
"criteria": "context",
|
|
842
|
-
"WCAGLevel": "none",
|
|
843
|
-
"issueWCAGLink": "-",
|
|
844
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
845
|
-
"shortDescription": "The main landmark is different than the tagged one",
|
|
846
|
-
"addSROnlyCSS": false,
|
|
847
|
-
"saveSuccesses": true,
|
|
848
|
-
"issueDescription": "The main content area should be where the content begins, often wrapping the page's main heading. However, it should not wrap the entire HTML code or be placed in the wrong location on the page (not directly where the content begins).",
|
|
849
|
-
"issueResolution": "<p>Reset the accessibility role of the inappropriate main area using the <strong>role=presentation </strong>attributes, or change the <strong>MAIN</strong> <strong>HTML </strong>tag to a <strong>DIV </strong>or a <strong>SECTION.</strong></p>\n<pre class=\"language-html\"><code><main role=\"presentation\"></main></code></pre>",
|
|
850
|
-
"suggestedFix": [
|
|
851
|
-
{
|
|
852
|
-
"suggestedFixType": "attribute",
|
|
853
|
-
"suggestedFixKey": "role",
|
|
854
|
-
"suggestedFixValue": "presentation",
|
|
855
|
-
"suggestedFixHTML": ""
|
|
856
|
-
}
|
|
857
|
-
]
|
|
858
|
-
},
|
|
859
|
-
{
|
|
860
|
-
"_id": {
|
|
861
|
-
"$oid": "6206430ff3d7a95964d1879e"
|
|
862
|
-
},
|
|
863
|
-
"name": "Broken Submenu Indication",
|
|
864
|
-
"route": "broken-submenu-indication",
|
|
865
|
-
"ordering": 9999999,
|
|
866
|
-
"owner": {
|
|
867
|
-
"value": {
|
|
868
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
869
|
-
},
|
|
870
|
-
"selected": null,
|
|
871
|
-
"key": "name",
|
|
872
|
-
"type": "standard",
|
|
873
|
-
"collection": "users"
|
|
874
|
-
},
|
|
875
|
-
"enabled": true,
|
|
876
|
-
"themeCtrl": null,
|
|
877
|
-
"theme": {
|
|
878
|
-
"value": null,
|
|
879
|
-
"selected": null,
|
|
880
|
-
"key": "name",
|
|
881
|
-
"type": "standard",
|
|
882
|
-
"collection": "themes"
|
|
883
|
-
},
|
|
884
|
-
"date": {
|
|
885
|
-
"$date": "2022-02-11T11:04:31Z"
|
|
886
|
-
},
|
|
887
|
-
"modified": {
|
|
888
|
-
"$date": "2022-02-26T17:32:07.084Z"
|
|
889
|
-
},
|
|
890
|
-
"shortCode": "brokenSubmenuIndication",
|
|
891
|
-
"isAutoResolvable": true,
|
|
892
|
-
"engineRules": [
|
|
893
|
-
"menu-trigger-clickable"
|
|
894
|
-
],
|
|
895
|
-
"severity": "low",
|
|
896
|
-
"criteria": "navigation",
|
|
897
|
-
"WCAGLevel": "none",
|
|
898
|
-
"issueWCAGLink": "-",
|
|
899
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
900
|
-
"shortDescription": "Sub menu indication should only be on the nav item's link/button tag and should not exist if sub menu doesn't exist",
|
|
901
|
-
"addSROnlyCSS": false,
|
|
902
|
-
"saveSuccesses": true,
|
|
903
|
-
"issueDescription": "The coded submenu indications should be placed on the link or button item and not on any other menu element like an LI. If a sub-menu does not exist, those indications should not exist. Otherwise, screen reader users will lose orientation using the menu.",
|
|
904
|
-
"issueResolution": "<p>Remove the <strong>aria-expanded </strong>and <strong>aria-haspopup</strong> from any element of the menu item that isn't the link <strong>(A tag)</strong> or the <strong>BUTTON </strong>tag. If the menu item doesn't have a sub menu, completely remove the <strong>aria-expanded </strong>and <strong>aria-haspopup </strong>from any of the menu item elements.</p>",
|
|
905
|
-
"suggestedFix": [
|
|
906
|
-
{
|
|
907
|
-
"suggestedFixType": "removeAttribute",
|
|
908
|
-
"suggestedFixKey": "",
|
|
909
|
-
"suggestedFixValue": "aria-expanded",
|
|
910
|
-
"suggestedFixHTML": ""
|
|
911
|
-
},
|
|
912
|
-
{
|
|
913
|
-
"suggestedFixType": "removeAttribute",
|
|
914
|
-
"suggestedFixKey": "",
|
|
915
|
-
"suggestedFixValue": "aria-haspopup",
|
|
916
|
-
"suggestedFixHTML": ""
|
|
917
|
-
}
|
|
918
|
-
]
|
|
919
|
-
},
|
|
920
|
-
{
|
|
921
|
-
"_id": {
|
|
922
|
-
"$oid": "620653e8b0b1184e88c83834"
|
|
923
|
-
},
|
|
924
|
-
"name": "Keyboard Navigation",
|
|
925
|
-
"route": "keyboard-navigation",
|
|
926
|
-
"ordering": 9999999,
|
|
927
|
-
"owner": {
|
|
928
|
-
"value": {
|
|
929
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
930
|
-
},
|
|
931
|
-
"selected": null,
|
|
932
|
-
"key": "name",
|
|
933
|
-
"type": "standard",
|
|
934
|
-
"collection": "users"
|
|
935
|
-
},
|
|
936
|
-
"enabled": true,
|
|
937
|
-
"themeCtrl": null,
|
|
938
|
-
"theme": {
|
|
939
|
-
"value": null,
|
|
940
|
-
"selected": null,
|
|
941
|
-
"key": "name",
|
|
942
|
-
"type": "standard",
|
|
943
|
-
"collection": "themes"
|
|
944
|
-
},
|
|
945
|
-
"date": {
|
|
946
|
-
"$date": "2022-02-11T12:17:06Z"
|
|
947
|
-
},
|
|
948
|
-
"modified": {
|
|
949
|
-
"$date": "2022-02-27T17:19:08.094Z"
|
|
950
|
-
},
|
|
951
|
-
"shortCode": "keyboardNavigation",
|
|
952
|
-
"severity": "extreme",
|
|
953
|
-
"criteria": "keyboard",
|
|
954
|
-
"WCAGLevel": "A",
|
|
955
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211#keyboard-accessible",
|
|
956
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
957
|
-
"shortDescription": "Interactive elements should be navigable using the Tab key",
|
|
958
|
-
"addSROnlyCSS": false,
|
|
959
|
-
"saveSuccesses": false,
|
|
960
|
-
"issueDescription": "Any interactive element that is visible on the page should receive keyboard focus while navigating using the Tab key. If interactive elements exist but aren't keyboard-navigable, users will not be able to interact with them.",
|
|
961
|
-
"issueResolution": "<p>Links and buttons (<strong>A</strong> and <strong>BUTTON</strong> HTML tags) are keyboard navigable by default. However, other elements like <strong>SPAN</strong>, <strong>DIV, STRONG, I,</strong> and most other elements are not. To make them navigable, give them the <strong>tabindex=0</strong> attribute. Note that A tags (links) are only clickable if they include an HREF attribute. Otherwise, they'll also need <strong>tabindex=0.</strong></p>\n<pre class=\"language-html\"><code><span tabindex=\"0\">I'm a keyboard navigable element</span></code></pre>",
|
|
962
|
-
"suggestedFix": [
|
|
963
|
-
{
|
|
964
|
-
"suggestedFixType": "attribute",
|
|
965
|
-
"suggestedFixKey": "tabindex",
|
|
966
|
-
"suggestedFixValue": "0",
|
|
967
|
-
"suggestedFixHTML": ""
|
|
968
|
-
}
|
|
969
|
-
]
|
|
970
|
-
},
|
|
971
|
-
{
|
|
972
|
-
"_id": {
|
|
973
|
-
"$oid": "620570946199d73f9cf2aec9"
|
|
974
|
-
},
|
|
975
|
-
"name": "Letter Spacing",
|
|
976
|
-
"route": "letter-spacing",
|
|
977
|
-
"ordering": 9999999,
|
|
978
|
-
"owner": {
|
|
979
|
-
"value": {
|
|
980
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
981
|
-
},
|
|
982
|
-
"selected": null,
|
|
983
|
-
"key": "name",
|
|
984
|
-
"type": "standard",
|
|
985
|
-
"collection": "users"
|
|
986
|
-
},
|
|
987
|
-
"enabled": true,
|
|
988
|
-
"themeCtrl": null,
|
|
989
|
-
"theme": {
|
|
990
|
-
"value": null,
|
|
991
|
-
"selected": null,
|
|
992
|
-
"key": "name",
|
|
993
|
-
"type": "standard",
|
|
994
|
-
"collection": "themes"
|
|
995
|
-
},
|
|
996
|
-
"date": {
|
|
997
|
-
"$date": "2022-02-10T20:07:29Z"
|
|
998
|
-
},
|
|
999
|
-
"modified": {
|
|
1000
|
-
"$date": "2022-03-27T18:49:44.186Z"
|
|
1001
|
-
},
|
|
1002
|
-
"shortCode": "letterSpacing",
|
|
1003
|
-
"severity": "medium",
|
|
1004
|
-
"criteria": "readability",
|
|
1005
|
-
"WCAGLevel": "AA",
|
|
1006
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=144%2C211%2C1412#text-spacing",
|
|
1007
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1008
|
-
"shortDescription": "Letter spacing should provide a readable experience",
|
|
1009
|
-
"addSROnlyCSS": false,
|
|
1010
|
-
"saveSuccesses": false,
|
|
1011
|
-
"issueDescription": "Using negative letter-spacing (especially lower than -1px) can be very difficult for certain vision impairments to interact with.",
|
|
1012
|
-
"issueResolution": "<p>Do not use negative values in letter-spacing. Certain fonts look ok with up to -1px in letter spacing, but less than that is almost universally problematic.</p>\n<pre class=\"language-html\"><code><style>\nbody * {\n letter-spacing: 0;\n}\n</style></code></pre>",
|
|
1013
|
-
"suggestedFix": []
|
|
1014
|
-
},
|
|
1015
|
-
{
|
|
1016
|
-
"_id": {
|
|
1017
|
-
"$oid": "6206417744306b15b4367a3d"
|
|
1018
|
-
},
|
|
1019
|
-
"name": "Navigation Tagging",
|
|
1020
|
-
"route": "navigation-tagging",
|
|
1021
|
-
"ordering": 9999999,
|
|
1022
|
-
"owner": {
|
|
1023
|
-
"value": {
|
|
1024
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1025
|
-
},
|
|
1026
|
-
"selected": null,
|
|
1027
|
-
"key": "name",
|
|
1028
|
-
"type": "standard",
|
|
1029
|
-
"collection": "users"
|
|
1030
|
-
},
|
|
1031
|
-
"enabled": true,
|
|
1032
|
-
"themeCtrl": null,
|
|
1033
|
-
"theme": {
|
|
1034
|
-
"value": null,
|
|
1035
|
-
"selected": null,
|
|
1036
|
-
"key": "name",
|
|
1037
|
-
"type": "standard",
|
|
1038
|
-
"collection": "themes"
|
|
1039
|
-
},
|
|
1040
|
-
"date": {
|
|
1041
|
-
"$date": "2022-02-11T10:57:54Z"
|
|
1042
|
-
},
|
|
1043
|
-
"modified": {
|
|
1044
|
-
"$date": "2022-02-26T17:45:13.86Z"
|
|
1045
|
-
},
|
|
1046
|
-
"shortCode": "navigationTagging",
|
|
1047
|
-
"severity": "high",
|
|
1048
|
-
"criteria": "navigation",
|
|
1049
|
-
"WCAGLevel": "A",
|
|
1050
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
1051
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1052
|
-
"shortDescription": "Navigation elements should be tagged as landmarks",
|
|
1053
|
-
"addSROnlyCSS": false,
|
|
1054
|
-
"saveSuccesses": true,
|
|
1055
|
-
"issueDescription": "Screen reader users have different controls to help them browse to specific elements on the page like regions and landmarks such as navigations. To ensure that screen readers can provide that functionality, navigation regions should be tagged accordingly.",
|
|
1056
|
-
"issueResolution": "<p>Add the <strong>role=navigation</strong> or code the navigation regions using the HTML <strong>NAV </strong>tag. Make sure to add an <strong>ARIA-LABEL</strong> to indicate the type of navigation. Is this the main navigation? Products navigation? Support navigation? No need to include the word <strong>\"navigation\"</strong> or <strong>\"menu.\"</strong> Screen readers, by default, will announce that, like in the below example, which will be announced <strong>\"Man's clothing navigation region\".</strong></p>\n<pre class=\"language-html\"><code><nav aria-label=\"Man's clothing\">\n <ul>...</ul>\n</nav></code></pre>",
|
|
1057
|
-
"suggestedFix": [
|
|
1058
|
-
{
|
|
1059
|
-
"suggestedFixType": "tag",
|
|
1060
|
-
"suggestedFixKey": "",
|
|
1061
|
-
"suggestedFixValue": "nav",
|
|
1062
|
-
"suggestedFixHTML": ""
|
|
1063
|
-
},
|
|
1064
|
-
{
|
|
1065
|
-
"suggestedFixType": "attribute",
|
|
1066
|
-
"suggestedFixKey": "aria-label",
|
|
1067
|
-
"suggestedFixValue": "{suggestion}",
|
|
1068
|
-
"suggestedFixHTML": ""
|
|
1069
|
-
}
|
|
1070
|
-
]
|
|
1071
|
-
},
|
|
1072
|
-
{
|
|
1073
|
-
"_id": {
|
|
1074
|
-
"$oid": "620641f1f3d7a95964d1879a"
|
|
1075
|
-
},
|
|
1076
|
-
"name": "Broken Nav Tagging",
|
|
1077
|
-
"route": "broken-nav-tagging",
|
|
1078
|
-
"ordering": 9999999,
|
|
1079
|
-
"owner": {
|
|
1080
|
-
"value": {
|
|
1081
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1082
|
-
},
|
|
1083
|
-
"selected": null,
|
|
1084
|
-
"key": "name",
|
|
1085
|
-
"type": "standard",
|
|
1086
|
-
"collection": "users"
|
|
1087
|
-
},
|
|
1088
|
-
"enabled": true,
|
|
1089
|
-
"themeCtrl": null,
|
|
1090
|
-
"theme": {
|
|
1091
|
-
"value": null,
|
|
1092
|
-
"selected": null,
|
|
1093
|
-
"key": "name",
|
|
1094
|
-
"type": "standard",
|
|
1095
|
-
"collection": "themes"
|
|
1096
|
-
},
|
|
1097
|
-
"date": {
|
|
1098
|
-
"$date": "2022-02-11T11:00:08Z"
|
|
1099
|
-
},
|
|
1100
|
-
"modified": {
|
|
1101
|
-
"$date": "2022-02-26T18:42:17.044Z"
|
|
1102
|
-
},
|
|
1103
|
-
"shortCode": "brokenNavTagging",
|
|
1104
|
-
"isAutoResolvable": true,
|
|
1105
|
-
"engineRules": [
|
|
1106
|
-
"menu-avoid",
|
|
1107
|
-
"menu-bar-avoid"
|
|
1108
|
-
],
|
|
1109
|
-
"severity": "high",
|
|
1110
|
-
"criteria": "navigation",
|
|
1111
|
-
"WCAGLevel": "none",
|
|
1112
|
-
"issueWCAGLink": "-",
|
|
1113
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1114
|
-
"shortDescription": "Avoid using role menu/menubar for navigation elements",
|
|
1115
|
-
"addSROnlyCSS": false,
|
|
1116
|
-
"saveSuccesses": true,
|
|
1117
|
-
"issueDescription": "Using role=menu and role=menubar for navigation elements is a bad practice, and screen reader users, especially JAWS users, find it difficult to operate. Those menu types are better used in desktop applications than web applications.",
|
|
1118
|
-
"issueResolution": "<p>Use <strong>role=navigation</strong> instead of <strong>role=menu/menubar</strong>. Alternatively, directly code the menu using the HTML <strong>NAV </strong>tag.</p>",
|
|
1119
|
-
"suggestedFix": [
|
|
1120
|
-
{
|
|
1121
|
-
"suggestedFixType": "removeAttribute",
|
|
1122
|
-
"suggestedFixKey": "role",
|
|
1123
|
-
"suggestedFixValue": "navigation",
|
|
1124
|
-
"suggestedFixHTML": ""
|
|
1125
|
-
}
|
|
1126
|
-
]
|
|
1127
|
-
},
|
|
1128
|
-
{
|
|
1129
|
-
"_id": {
|
|
1130
|
-
"$oid": "62065382b0b1184e88c83831"
|
|
1131
|
-
},
|
|
1132
|
-
"name": "Popup Focus",
|
|
1133
|
-
"route": "popup-focus",
|
|
1134
|
-
"ordering": 9999999,
|
|
1135
|
-
"owner": {
|
|
1136
|
-
"value": {
|
|
1137
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1138
|
-
},
|
|
1139
|
-
"selected": null,
|
|
1140
|
-
"key": "name",
|
|
1141
|
-
"type": "standard",
|
|
1142
|
-
"collection": "users"
|
|
1143
|
-
},
|
|
1144
|
-
"enabled": true,
|
|
1145
|
-
"themeCtrl": null,
|
|
1146
|
-
"theme": {
|
|
1147
|
-
"value": null,
|
|
1148
|
-
"selected": null,
|
|
1149
|
-
"key": "name",
|
|
1150
|
-
"type": "standard",
|
|
1151
|
-
"collection": "themes"
|
|
1152
|
-
},
|
|
1153
|
-
"date": {
|
|
1154
|
-
"$date": "2022-02-11T12:15:39Z"
|
|
1155
|
-
},
|
|
1156
|
-
"modified": {
|
|
1157
|
-
"$date": "2022-02-27T19:24:44.31Z"
|
|
1158
|
-
},
|
|
1159
|
-
"shortCode": "popupFocus",
|
|
1160
|
-
"severity": "extreme",
|
|
1161
|
-
"criteria": "keyboard",
|
|
1162
|
-
"WCAGLevel": "A",
|
|
1163
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211#keyboard-accessible",
|
|
1164
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1165
|
-
"shortDescription": "Keyboard focus should move into and lock inside active popups",
|
|
1166
|
-
"addSROnlyCSS": false,
|
|
1167
|
-
"saveSuccesses": true,
|
|
1168
|
-
"issueDescription": "Popups that appear on pages without receiving keyboard focus immediately on interaction often block the entire page and make the website unusable for keyboard and screen reader users.",
|
|
1169
|
-
"issueResolution": "<p>When a popup appears, use JavaScript to place the keyboard focus within the popup element. Note that popups are usually built using <strong>DIV</strong> and other elements that are not keyboard focusable by default (only interactive elements like buttons and links are). Therefore, adding <strong>tabindex=-1</strong> to the popup element will make the keyboard focusable, but not navigable using the Tab key, which you want to achieve. See the below code example:</p>\n<pre class=\"language-javascript\"><code>const popup = document.querySelector('.your-popup-selector');\npopup.setAttribute('tabindex', '-1');\npopup.focus();</code></pre>",
|
|
1170
|
-
"suggestedFix": [
|
|
1171
|
-
{
|
|
1172
|
-
"suggestedFixType": "attribute",
|
|
1173
|
-
"suggestedFixKey": "tabindex",
|
|
1174
|
-
"suggestedFixValue": "-1",
|
|
1175
|
-
"suggestedFixHTML": ""
|
|
1176
|
-
}
|
|
1177
|
-
]
|
|
1178
|
-
},
|
|
1179
|
-
{
|
|
1180
|
-
"_id": {
|
|
1181
|
-
"$oid": "62065412b0b1184e88c83835"
|
|
1182
|
-
},
|
|
1183
|
-
"name": "Noninteractive Tabindex",
|
|
1184
|
-
"route": "noninteractive-tabindex",
|
|
1185
|
-
"ordering": 9999999,
|
|
1186
|
-
"owner": {
|
|
1187
|
-
"value": {
|
|
1188
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1189
|
-
},
|
|
1190
|
-
"selected": null,
|
|
1191
|
-
"key": "name",
|
|
1192
|
-
"type": "standard",
|
|
1193
|
-
"collection": "users"
|
|
1194
|
-
},
|
|
1195
|
-
"enabled": true,
|
|
1196
|
-
"themeCtrl": null,
|
|
1197
|
-
"theme": {
|
|
1198
|
-
"value": null,
|
|
1199
|
-
"selected": null,
|
|
1200
|
-
"key": "name",
|
|
1201
|
-
"type": "standard",
|
|
1202
|
-
"collection": "themes"
|
|
1203
|
-
},
|
|
1204
|
-
"date": {
|
|
1205
|
-
"$date": "2022-02-11T12:18:03Z"
|
|
1206
|
-
},
|
|
1207
|
-
"modified": {
|
|
1208
|
-
"$date": "2022-02-27T19:04:57.054Z"
|
|
1209
|
-
},
|
|
1210
|
-
"shortCode": "noninteractiveTabindex",
|
|
1211
|
-
"severity": "high",
|
|
1212
|
-
"criteria": "keyboard",
|
|
1213
|
-
"WCAGLevel": "A",
|
|
1214
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html",
|
|
1215
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1216
|
-
"shortDescription": "Non-interactive elements should not be keyboard navigable",
|
|
1217
|
-
"addSROnlyCSS": false,
|
|
1218
|
-
"saveSuccesses": true,
|
|
1219
|
-
"issueDescription": "Elements that are not clickable or hoverable using the mouse like headings, regular DIVs, text paragraphs, forms (not fields), and others should not receive keyboard focus. Otherwise, keyboard interaction in your website will be cluttered and difficult.",
|
|
1220
|
-
"issueResolution": "<p>Remove the <strong>tabindex</strong> attribute from the non-interactive element.</p>",
|
|
1221
|
-
"suggestedFix": [
|
|
1222
|
-
{
|
|
1223
|
-
"suggestedFixType": "removeAttribute",
|
|
1224
|
-
"suggestedFixKey": "",
|
|
1225
|
-
"suggestedFixValue": "tabindex",
|
|
1226
|
-
"suggestedFixHTML": ""
|
|
1227
|
-
}
|
|
1228
|
-
]
|
|
1229
|
-
},
|
|
1230
|
-
{
|
|
1231
|
-
"_id": {
|
|
1232
|
-
"$oid": "620574156199d73f9cf2aed7"
|
|
1233
|
-
},
|
|
1234
|
-
"name": "Column Table Headers",
|
|
1235
|
-
"route": "column-table-headers",
|
|
1236
|
-
"ordering": 9999999,
|
|
1237
|
-
"owner": {
|
|
1238
|
-
"value": {
|
|
1239
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1240
|
-
},
|
|
1241
|
-
"selected": null,
|
|
1242
|
-
"key": "name",
|
|
1243
|
-
"type": "standard",
|
|
1244
|
-
"collection": "users"
|
|
1245
|
-
},
|
|
1246
|
-
"enabled": true,
|
|
1247
|
-
"themeCtrl": null,
|
|
1248
|
-
"theme": {
|
|
1249
|
-
"value": null,
|
|
1250
|
-
"selected": null,
|
|
1251
|
-
"key": "name",
|
|
1252
|
-
"type": "standard",
|
|
1253
|
-
"collection": "themes"
|
|
1254
|
-
},
|
|
1255
|
-
"date": {
|
|
1256
|
-
"$date": "2022-02-10T20:21:30Z"
|
|
1257
|
-
},
|
|
1258
|
-
"modified": {
|
|
1259
|
-
"$date": "2022-03-27T18:54:24.699Z"
|
|
1260
|
-
},
|
|
1261
|
-
"shortCode": "columnTableHeaders",
|
|
1262
|
-
"isAutoResolvable": true,
|
|
1263
|
-
"engineRules": [],
|
|
1264
|
-
"severity": "high",
|
|
1265
|
-
"criteria": "tables",
|
|
1266
|
-
"WCAGLevel": "A",
|
|
1267
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
1268
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1269
|
-
"shortDescription": "Table column headers should be tagged properly for assistive technology",
|
|
1270
|
-
"addSROnlyCSS": false,
|
|
1271
|
-
"saveSuccesses": true,
|
|
1272
|
-
"issueDescription": "Every table should have properly coded column headers either as TH or using role=columnheader. Without properly tagged headers, screen readers won't be able to match the column and cell content and announce them properly to users.",
|
|
1273
|
-
"issueResolution": "<p>Using <strong>TBODY </strong>and <strong>TD </strong>elements while visually making the first row look like headings can work for sighted users only. To make those headings work for assistive technology users, either code them as <strong>THEAD > TH </strong>elements or add the <strong>role=columnheader</strong> attribute to the<strong> </strong><strong>TD </strong>elements that function as the headings to indicate to assistive technology that those are the column headers.</p>\n<pre class=\"language-html\"><code><table>\n <tbody>\n <tr>\n <td role=\"columnheader\"><strong>I'm visually a column header</strong></td>\n </tr>\n </tbody>\n</table></code></pre>",
|
|
1274
|
-
"suggestedFix": [
|
|
1275
|
-
{
|
|
1276
|
-
"suggestedFixType": "attribute",
|
|
1277
|
-
"suggestedFixKey": "role",
|
|
1278
|
-
"suggestedFixValue": "columnheader",
|
|
1279
|
-
"suggestedFixHTML": ""
|
|
1280
|
-
}
|
|
1281
|
-
]
|
|
1282
|
-
},
|
|
1283
|
-
{
|
|
1284
|
-
"_id": {
|
|
1285
|
-
"$oid": "62058a726199d73f9cf2aedb"
|
|
1286
|
-
},
|
|
1287
|
-
"name": "Main Landmark",
|
|
1288
|
-
"route": "main-landmark",
|
|
1289
|
-
"ordering": 9999999,
|
|
1290
|
-
"owner": {
|
|
1291
|
-
"value": {
|
|
1292
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1293
|
-
},
|
|
1294
|
-
"selected": null,
|
|
1295
|
-
"key": "name",
|
|
1296
|
-
"type": "standard",
|
|
1297
|
-
"collection": "users"
|
|
1298
|
-
},
|
|
1299
|
-
"enabled": true,
|
|
1300
|
-
"themeCtrl": null,
|
|
1301
|
-
"theme": {
|
|
1302
|
-
"value": null,
|
|
1303
|
-
"selected": null,
|
|
1304
|
-
"key": "name",
|
|
1305
|
-
"type": "standard",
|
|
1306
|
-
"collection": "themes"
|
|
1307
|
-
},
|
|
1308
|
-
"date": {
|
|
1309
|
-
"$date": "2022-02-10T21:57:02Z"
|
|
1310
|
-
},
|
|
1311
|
-
"modified": {
|
|
1312
|
-
"$date": "2022-02-26T00:49:08.688Z"
|
|
1313
|
-
},
|
|
1314
|
-
"shortCode": "mainLandmark",
|
|
1315
|
-
"isAutoResolvable": true,
|
|
1316
|
-
"engineRules": [
|
|
1317
|
-
"region-main-content"
|
|
1318
|
-
],
|
|
1319
|
-
"severity": "high",
|
|
1320
|
-
"criteria": "context",
|
|
1321
|
-
"WCAGLevel": "A",
|
|
1322
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
1323
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1324
|
-
"shortDescription": "The main content area/section should be marked as a landmark",
|
|
1325
|
-
"addSROnlyCSS": false,
|
|
1326
|
-
"saveSuccesses": true,
|
|
1327
|
-
"issueDescription": "Screen reader users have different controls to help them browse directly to specific elements on the page while skipping other, less critical, or page-repetitive elements like the menu. The main content area is one landmark that should be properly tagged.",
|
|
1328
|
-
"issueResolution": "<p>Where the main content on your page starts, give it <strong>role=main</strong> or engulf it with the <strong>MAIN </strong>HTML tag like in the example below:</p>\n<pre class=\"language-html\"><code><div role=\"main\">\n <h1>Main page heading</h1>\n</div></code></pre>",
|
|
1329
|
-
"suggestedFix": [
|
|
1330
|
-
{
|
|
1331
|
-
"suggestedFixType": "attribute",
|
|
1332
|
-
"suggestedFixKey": "role",
|
|
1333
|
-
"suggestedFixValue": "main",
|
|
1334
|
-
"suggestedFixHTML": ""
|
|
1335
|
-
}
|
|
1336
|
-
]
|
|
1337
|
-
},
|
|
1338
|
-
{
|
|
1339
|
-
"_id": {
|
|
1340
|
-
"$oid": "6206427df3d7a95964d1879c"
|
|
1341
|
-
},
|
|
1342
|
-
"name": "Missing Nav Items",
|
|
1343
|
-
"route": "missing-nav-items",
|
|
1344
|
-
"ordering": 9999999,
|
|
1345
|
-
"owner": {
|
|
1346
|
-
"value": {
|
|
1347
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1348
|
-
},
|
|
1349
|
-
"selected": null,
|
|
1350
|
-
"key": "name",
|
|
1351
|
-
"type": "standard",
|
|
1352
|
-
"collection": "users"
|
|
1353
|
-
},
|
|
1354
|
-
"enabled": true,
|
|
1355
|
-
"themeCtrl": null,
|
|
1356
|
-
"theme": {
|
|
1357
|
-
"value": null,
|
|
1358
|
-
"selected": null,
|
|
1359
|
-
"key": "name",
|
|
1360
|
-
"type": "standard",
|
|
1361
|
-
"collection": "themes"
|
|
1362
|
-
},
|
|
1363
|
-
"date": {
|
|
1364
|
-
"$date": "2022-02-11T11:01:47Z"
|
|
1365
|
-
},
|
|
1366
|
-
"modified": {
|
|
1367
|
-
"$date": "2022-02-26T17:27:07.992Z"
|
|
1368
|
-
},
|
|
1369
|
-
"shortCode": "missingNavItems",
|
|
1370
|
-
"severity": "high",
|
|
1371
|
-
"criteria": "navigation",
|
|
1372
|
-
"WCAGLevel": "A",
|
|
1373
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html",
|
|
1374
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1375
|
-
"shortDescription": "Always use a button or link and not only text nodes for navigation items",
|
|
1376
|
-
"addSROnlyCSS": false,
|
|
1377
|
-
"saveSuccesses": true,
|
|
1378
|
-
"issueDescription": "Navigation items, whether their functionality is provided using JS (custom behavior) or HTML (links), navigation items should always be coded with a link, button tag, or div/span tags and not as direct text nodes on a parent element.",
|
|
1379
|
-
"issueResolution": "<p>Always include a <strong>link, button</strong>, or <strong>span/div</strong> tags as navigation items and avoid using direct text nodes even if functionality is provided using JS.</p>\n<pre class=\"language-html\"><code><nav>\n <ul>\n <li>Wrong: direct text node</li>\n <li><button>Correct: direct HTML element</button></li>\n </ul>\n</nav></code></pre>",
|
|
1380
|
-
"suggestedFix": [
|
|
1381
|
-
{
|
|
1382
|
-
"suggestedFixType": "attribute",
|
|
1383
|
-
"suggestedFixKey": "",
|
|
1384
|
-
"suggestedFixValue": "",
|
|
1385
|
-
"suggestedFixHTML": "<a href=\"item link...\">item text...</a>"
|
|
1386
|
-
}
|
|
1387
|
-
]
|
|
1388
|
-
},
|
|
1389
|
-
{
|
|
1390
|
-
"_id": {
|
|
1391
|
-
"$oid": "620650f1b0b1184e88c83824"
|
|
1392
|
-
},
|
|
1393
|
-
"name": "Aria Label Misuse",
|
|
1394
|
-
"route": "aria-label-misuse",
|
|
1395
|
-
"ordering": 9999999,
|
|
1396
|
-
"owner": {
|
|
1397
|
-
"value": {
|
|
1398
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1399
|
-
},
|
|
1400
|
-
"selected": null,
|
|
1401
|
-
"key": "name",
|
|
1402
|
-
"type": "standard",
|
|
1403
|
-
"collection": "users"
|
|
1404
|
-
},
|
|
1405
|
-
"enabled": true,
|
|
1406
|
-
"themeCtrl": null,
|
|
1407
|
-
"theme": {
|
|
1408
|
-
"value": null,
|
|
1409
|
-
"selected": null,
|
|
1410
|
-
"key": "name",
|
|
1411
|
-
"type": "standard",
|
|
1412
|
-
"collection": "themes"
|
|
1413
|
-
},
|
|
1414
|
-
"date": {
|
|
1415
|
-
"$date": "2022-02-11T12:04:40Z"
|
|
1416
|
-
},
|
|
1417
|
-
"modified": {
|
|
1418
|
-
"$date": "2022-02-26T20:34:51.488Z"
|
|
1419
|
-
},
|
|
1420
|
-
"shortCode": "ariaLabelMisuse",
|
|
1421
|
-
"severity": "medium",
|
|
1422
|
-
"criteria": "errors",
|
|
1423
|
-
"WCAGLevel": "none",
|
|
1424
|
-
"issueWCAGLink": "-",
|
|
1425
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1426
|
-
"shortDescription": "Aria labels should not be used on elements that has no roles",
|
|
1427
|
-
"addSROnlyCSS": false,
|
|
1428
|
-
"saveSuccesses": false,
|
|
1429
|
-
"issueDescription": "Screen readers ignore aria labels on elements that don't have accessibility roles (button, region, link, etc.) if text exists. The aria-label will be announced only if the element doesn't have any text or has an accessibility role.",
|
|
1430
|
-
"issueResolution": "<p>Use <strong>the screen-reader-only</strong> technique to add content to the element rather than an <strong>aria-label.</strong></p>\n<pre class=\"language-html\"><code><div>\n <span class=\"sr-only\">Screen reader only content</span>\n .......\n</div></code></pre>",
|
|
1431
|
-
"suggestedFix": []
|
|
1432
|
-
},
|
|
1433
|
-
{
|
|
1434
|
-
"_id": {
|
|
1435
|
-
"$oid": "620653a5b0b1184e88c83832"
|
|
1436
|
-
},
|
|
1437
|
-
"name": "Skip Links",
|
|
1438
|
-
"route": "skip-links",
|
|
1439
|
-
"ordering": 9999999,
|
|
1440
|
-
"owner": {
|
|
1441
|
-
"value": {
|
|
1442
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1443
|
-
},
|
|
1444
|
-
"selected": null,
|
|
1445
|
-
"key": "name",
|
|
1446
|
-
"type": "standard",
|
|
1447
|
-
"collection": "users"
|
|
1448
|
-
},
|
|
1449
|
-
"enabled": true,
|
|
1450
|
-
"themeCtrl": null,
|
|
1451
|
-
"theme": {
|
|
1452
|
-
"value": null,
|
|
1453
|
-
"selected": null,
|
|
1454
|
-
"key": "name",
|
|
1455
|
-
"type": "standard",
|
|
1456
|
-
"collection": "themes"
|
|
1457
|
-
},
|
|
1458
|
-
"date": {
|
|
1459
|
-
"$date": "2022-02-11T12:16:03Z"
|
|
1460
|
-
},
|
|
1461
|
-
"modified": {
|
|
1462
|
-
"$date": "2022-02-27T13:17:03.748Z"
|
|
1463
|
-
},
|
|
1464
|
-
"shortCode": "skipLinks",
|
|
1465
|
-
"severity": "high",
|
|
1466
|
-
"criteria": "keyboard",
|
|
1467
|
-
"WCAGLevel": "A",
|
|
1468
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/#bypass-blocks",
|
|
1469
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1470
|
-
"shortDescription": "Skip links should exist and be the first elements to receive keyboard focus",
|
|
1471
|
-
"addSROnlyCSS": false,
|
|
1472
|
-
"saveSuccesses": true,
|
|
1473
|
-
"issueDescription": "Skip links are essential for keyboard and screen reader users to browse effectively. They allow users to skip repetitive blocks like the menu, and without them, users will have to browse through all the menus on every page before getting to the content.",
|
|
1474
|
-
"issueResolution": "<p>Include a keyboard-navigable, anchor link as the first interactive element on the website. Make this anchor link point to the ID attribute of the section where the content of the page starts. You can make this link available only for screen readers and keyboard users, by hiding it using the CSS opacity attribute (set to 0), and on focus, set the opacity to 1 to make it visible.</p>\n<pre class=\"language-html\"><code><style>\n.skip-link {\n opacity: 0;\n}\n\n.pause-button:focus-visible {\n opacity: 1;\n}\n</style>\n\n<body>\n <a href=\"content\" class=\"skip-link\">Skip to content</a>\n .....\n <header></header>\n <nav></nav>\n <main>\n <div id=\"content\">\n <h1>....</h1>\n </div>\n .....\n </main>\n <footer></footer>\n</body></code></pre>",
|
|
1475
|
-
"suggestedFix": [
|
|
1476
|
-
{
|
|
1477
|
-
"suggestedFixType": "attribute",
|
|
1478
|
-
"suggestedFixKey": "",
|
|
1479
|
-
"suggestedFixValue": "",
|
|
1480
|
-
"suggestedFixHTML": "<a href=\"#content\">Skip to content</a>"
|
|
1481
|
-
}
|
|
1482
|
-
]
|
|
1483
|
-
},
|
|
1484
|
-
{
|
|
1485
|
-
"_id": {
|
|
1486
|
-
"$oid": "62058a8a6199d73f9cf2aedc"
|
|
1487
|
-
},
|
|
1488
|
-
"name": "Article Setup",
|
|
1489
|
-
"route": "article-setup",
|
|
1490
|
-
"ordering": 9999999,
|
|
1491
|
-
"owner": {
|
|
1492
|
-
"value": {
|
|
1493
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1494
|
-
},
|
|
1495
|
-
"selected": null,
|
|
1496
|
-
"key": "name",
|
|
1497
|
-
"type": "standard",
|
|
1498
|
-
"collection": "users"
|
|
1499
|
-
},
|
|
1500
|
-
"enabled": true,
|
|
1501
|
-
"themeCtrl": null,
|
|
1502
|
-
"theme": {
|
|
1503
|
-
"value": null,
|
|
1504
|
-
"selected": null,
|
|
1505
|
-
"key": "name",
|
|
1506
|
-
"type": "standard",
|
|
1507
|
-
"collection": "themes"
|
|
1508
|
-
},
|
|
1509
|
-
"date": {
|
|
1510
|
-
"$date": "2022-02-10T21:58:10Z"
|
|
1511
|
-
},
|
|
1512
|
-
"modified": {
|
|
1513
|
-
"$date": "2022-02-25T21:21:13.591Z"
|
|
1514
|
-
},
|
|
1515
|
-
"shortCode": "articleSetup",
|
|
1516
|
-
"isAutoResolvable": true,
|
|
1517
|
-
"engineRules": [
|
|
1518
|
-
"article-misuse"
|
|
1519
|
-
],
|
|
1520
|
-
"severity": "low",
|
|
1521
|
-
"criteria": "context",
|
|
1522
|
-
"WCAGLevel": "none",
|
|
1523
|
-
"issueWCAGLink": "-",
|
|
1524
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1525
|
-
"shortDescription": "Article tags that aren't articles should lose their role",
|
|
1526
|
-
"addSROnlyCSS": false,
|
|
1527
|
-
"saveSuccesses": true,
|
|
1528
|
-
"issueDescription": "Coding elements that aren't full-featured text articles, using the article HTML tag, make the screen reader user experience unnecessarily cluttered and verbose.",
|
|
1529
|
-
"issueResolution": "<p>Use the <strong>role=presentation</strong> attributes to reset the standard accessibility article role of an element coded as an article while it isn't the full-featured text article. Another approach is simply changing the HTML tag from an article to something like a <strong>DIV.</strong></p>\n<pre class=\"language-html\"><code><article role=\"presentation\"></article></code></pre>",
|
|
1530
|
-
"suggestedFix": [
|
|
1531
|
-
{
|
|
1532
|
-
"suggestedFixType": "attribute",
|
|
1533
|
-
"suggestedFixKey": "role",
|
|
1534
|
-
"suggestedFixValue": "presentation",
|
|
1535
|
-
"suggestedFixHTML": ""
|
|
1536
|
-
}
|
|
1537
|
-
]
|
|
1538
|
-
},
|
|
1539
|
-
{
|
|
1540
|
-
"_id": {
|
|
1541
|
-
"$oid": "6206340aacb7f0495c5df39e"
|
|
1542
|
-
},
|
|
1543
|
-
"name": "Custom Control Field",
|
|
1544
|
-
"route": "custom-control-field",
|
|
1545
|
-
"ordering": 9999999,
|
|
1546
|
-
"owner": {
|
|
1547
|
-
"value": {
|
|
1548
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1549
|
-
},
|
|
1550
|
-
"selected": null,
|
|
1551
|
-
"key": "name",
|
|
1552
|
-
"type": "standard",
|
|
1553
|
-
"collection": "users"
|
|
1554
|
-
},
|
|
1555
|
-
"enabled": true,
|
|
1556
|
-
"themeCtrl": null,
|
|
1557
|
-
"theme": {
|
|
1558
|
-
"value": null,
|
|
1559
|
-
"selected": null,
|
|
1560
|
-
"key": "name",
|
|
1561
|
-
"type": "standard",
|
|
1562
|
-
"collection": "themes"
|
|
1563
|
-
},
|
|
1564
|
-
"date": {
|
|
1565
|
-
"$date": "2022-02-11T10:01:03Z"
|
|
1566
|
-
},
|
|
1567
|
-
"modified": {
|
|
1568
|
-
"$date": "2022-02-26T15:53:01.815Z"
|
|
1569
|
-
},
|
|
1570
|
-
"shortCode": "customControlField",
|
|
1571
|
-
"severity": "high",
|
|
1572
|
-
"criteria": "forms",
|
|
1573
|
-
"WCAGLevel": "A",
|
|
1574
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html",
|
|
1575
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1576
|
-
"shortDescription": "Custom checkbox and radio inputs should be made accessible",
|
|
1577
|
-
"addSROnlyCSS": true,
|
|
1578
|
-
"saveSuccesses": true,
|
|
1579
|
-
"issueDescription": "Screen readers have built-in mechanisms to handle checkboxes. By default, assistive technology does not support custom checkboxes, and using those may prevent screen reader users from interacting with the fields. ",
|
|
1580
|
-
"issueResolution": "<p>If you are using standard <strong>LABEL </strong>and <strong>INPUT </strong>fields to design the custom checkbox using CSS, you need to ensure that the <strong>checkbox input </strong>is fully visible to assistive technology and the browser, but only visually hidden. To ensure that, you can hide it using opacity, width, height, and positioning, but <strong>never hide it using display=none or visibility=hidden.</strong></p>\n<pre class=\"language-html\"><code><div>\n <label for=\"checkbox-input\">Custom design</label>\n <input type=\"checkbox\" id=\"checkbox-input\" style=\"position: absolute; top: -100%, left: -100%, opacity: 0; width: 0, height: 0;\">\n</div></code></pre>\n<p>Alternatively, if you are using a completely custom checkbox mechanism without a standard checkbox input, create a standard select field with all the options and make it available only for screen readers using the <strong>screen reader only </strong>technique. Then, hide the custom select box from screen readers using <strong>aria-hidden=true.</strong> Don't forget to add the same functionality to this hidden field as your custom one.</p>\n<p>Using this method, screen readers will not \"see\" the custom field but will see the standard one and interact with it regularly.</p>\n<pre class=\"language-html\"><code><div class=\"checkbox\" aria-hidden=\"true\">✓</div>\n<input type=\"checkbox\" class=\"sr-only\"></code></pre>",
|
|
1581
|
-
"suggestedFix": []
|
|
1582
|
-
},
|
|
1583
|
-
{
|
|
1584
|
-
"_id": {
|
|
1585
|
-
"$oid": "620642bef3d7a95964d1879d"
|
|
1586
|
-
},
|
|
1587
|
-
"name": "Misused Nav Tagging",
|
|
1588
|
-
"route": "misused-nav-tagging",
|
|
1589
|
-
"ordering": 9999999,
|
|
1590
|
-
"owner": {
|
|
1591
|
-
"value": {
|
|
1592
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1593
|
-
},
|
|
1594
|
-
"selected": null,
|
|
1595
|
-
"key": "name",
|
|
1596
|
-
"type": "standard",
|
|
1597
|
-
"collection": "users"
|
|
1598
|
-
},
|
|
1599
|
-
"enabled": true,
|
|
1600
|
-
"themeCtrl": null,
|
|
1601
|
-
"theme": {
|
|
1602
|
-
"value": null,
|
|
1603
|
-
"selected": null,
|
|
1604
|
-
"key": "name",
|
|
1605
|
-
"type": "standard",
|
|
1606
|
-
"collection": "themes"
|
|
1607
|
-
},
|
|
1608
|
-
"date": {
|
|
1609
|
-
"$date": "2022-02-11T11:03:25Z"
|
|
1610
|
-
},
|
|
1611
|
-
"modified": {
|
|
1612
|
-
"$date": "2022-02-26T18:36:21.056Z"
|
|
1613
|
-
},
|
|
1614
|
-
"shortCode": "misusedNavTagging",
|
|
1615
|
-
"isAutoResolvable": true,
|
|
1616
|
-
"engineRules": [
|
|
1617
|
-
"navigation-misuse"
|
|
1618
|
-
],
|
|
1619
|
-
"severity": "high",
|
|
1620
|
-
"criteria": "navigation",
|
|
1621
|
-
"WCAGLevel": "A",
|
|
1622
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html",
|
|
1623
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1624
|
-
"shortDescription": "A non-navigation element is improperly tagged as such",
|
|
1625
|
-
"addSROnlyCSS": false,
|
|
1626
|
-
"saveSuccesses": false,
|
|
1627
|
-
"issueDescription": "Screen readers rely on accurate tagging and labeling to provide the necessary context to screen readers. If an element is tagged as a navigation landmark while it isn't, or if the nav element is empty, screen reader users will lose orientation and find the website difficult to use. ",
|
|
1628
|
-
"issueResolution": "<p>Add the <strong>role=presentation</strong> attribute to the improper navigation element, or code it using a <strong>DIV</strong> tag rather than a <strong>NAV</strong> tag. Eliminate <strong>role=navigation</strong> if exists.</p>",
|
|
1629
|
-
"suggestedFix": [
|
|
1630
|
-
{
|
|
1631
|
-
"suggestedFixType": "attribute",
|
|
1632
|
-
"suggestedFixKey": "role",
|
|
1633
|
-
"suggestedFixValue": "presentation",
|
|
1634
|
-
"suggestedFixHTML": ""
|
|
1635
|
-
}
|
|
1636
|
-
]
|
|
1637
|
-
},
|
|
1638
|
-
{
|
|
1639
|
-
"_id": {
|
|
1640
|
-
"$oid": "62065117b0b1184e88c83825"
|
|
1641
|
-
},
|
|
1642
|
-
"name": "Broken Aria Reference",
|
|
1643
|
-
"route": "broken-aria-reference",
|
|
1644
|
-
"ordering": 9999999,
|
|
1645
|
-
"owner": {
|
|
1646
|
-
"value": {
|
|
1647
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1648
|
-
},
|
|
1649
|
-
"selected": null,
|
|
1650
|
-
"key": "name",
|
|
1651
|
-
"type": "standard",
|
|
1652
|
-
"collection": "users"
|
|
1653
|
-
},
|
|
1654
|
-
"enabled": true,
|
|
1655
|
-
"themeCtrl": null,
|
|
1656
|
-
"theme": {
|
|
1657
|
-
"value": null,
|
|
1658
|
-
"selected": null,
|
|
1659
|
-
"key": "name",
|
|
1660
|
-
"type": "standard",
|
|
1661
|
-
"collection": "themes"
|
|
1662
|
-
},
|
|
1663
|
-
"date": {
|
|
1664
|
-
"$date": "2022-02-11T12:05:06Z"
|
|
1665
|
-
},
|
|
1666
|
-
"modified": {
|
|
1667
|
-
"$date": "2022-02-26T20:40:43.445Z"
|
|
1668
|
-
},
|
|
1669
|
-
"shortCode": "brokenAriaReference",
|
|
1670
|
-
"severity": "high",
|
|
1671
|
-
"criteria": "errors",
|
|
1672
|
-
"WCAGLevel": "A",
|
|
1673
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131%2C411#parsing",
|
|
1674
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1675
|
-
"shortDescription": "Aria describedby/labelledby must point to a valid, existing element ID",
|
|
1676
|
-
"addSROnlyCSS": false,
|
|
1677
|
-
"saveSuccesses": true,
|
|
1678
|
-
"issueDescription": "Screen readers rely on the HTML to provide explicit references between elements in order to parse the content and announce it to screen readers correctly. If the HTML includes broken ARIA references, screen reader users may not be able to browse properly. ",
|
|
1679
|
-
"issueResolution": "<p>Make sure that <strong>aria-describedby </strong>and <strong>aria-labeledby</strong> attributes point to an existing, screen-reader-visible element on the screen with proper text content.</p>\n<pre class=\"language-html\"><code><button aria-describedby=\"button-description\">Load more</button>\n<span id=\"button-descriptionc\">Additional gallery images will appear in a popup</span></code></pre>",
|
|
1680
|
-
"suggestedFix": []
|
|
1681
|
-
},
|
|
1682
|
-
{
|
|
1683
|
-
"_id": {
|
|
1684
|
-
"$oid": "62065199b0b1184e88c83828"
|
|
1685
|
-
},
|
|
1686
|
-
"name": "Load Autofocus",
|
|
1687
|
-
"route": "load-autofocus",
|
|
1688
|
-
"ordering": 9999999,
|
|
1689
|
-
"owner": {
|
|
1690
|
-
"value": {
|
|
1691
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1692
|
-
},
|
|
1693
|
-
"selected": null,
|
|
1694
|
-
"key": "name",
|
|
1695
|
-
"type": "standard",
|
|
1696
|
-
"collection": "users"
|
|
1697
|
-
},
|
|
1698
|
-
"enabled": true,
|
|
1699
|
-
"themeCtrl": null,
|
|
1700
|
-
"theme": {
|
|
1701
|
-
"value": null,
|
|
1702
|
-
"selected": null,
|
|
1703
|
-
"key": "name",
|
|
1704
|
-
"type": "standard",
|
|
1705
|
-
"collection": "themes"
|
|
1706
|
-
},
|
|
1707
|
-
"date": {
|
|
1708
|
-
"$date": "2022-02-11T12:07:28Z"
|
|
1709
|
-
},
|
|
1710
|
-
"modified": {
|
|
1711
|
-
"$date": "2022-02-26T20:48:32.158Z"
|
|
1712
|
-
},
|
|
1713
|
-
"shortCode": "loadAutofocus",
|
|
1714
|
-
"severity": "high",
|
|
1715
|
-
"criteria": "errors",
|
|
1716
|
-
"WCAGLevel": "A",
|
|
1717
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html",
|
|
1718
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1719
|
-
"shortDescription": "Avoid using autofocus",
|
|
1720
|
-
"addSROnlyCSS": false,
|
|
1721
|
-
"saveSuccesses": true,
|
|
1722
|
-
"issueDescription": "When using the autofocus HTML attribute screen reader, users will automatically be taken to the autofocus field. The screen reader will completely ignore everything else on the page that appears before that field, like the navigation and other essential elements.",
|
|
1723
|
-
"issueResolution": "<p>Remove the <strong>autofocus</strong></p>",
|
|
1724
|
-
"suggestedFix": [
|
|
1725
|
-
{
|
|
1726
|
-
"suggestedFixType": "attribute",
|
|
1727
|
-
"suggestedFixKey": "",
|
|
1728
|
-
"suggestedFixValue": "autofocus",
|
|
1729
|
-
"suggestedFixHTML": ""
|
|
1730
|
-
}
|
|
1731
|
-
]
|
|
1732
|
-
},
|
|
1733
|
-
{
|
|
1734
|
-
"_id": {
|
|
1735
|
-
"$oid": "6205736e6199d73f9cf2aed5"
|
|
1736
|
-
},
|
|
1737
|
-
"name": "Table Layouts",
|
|
1738
|
-
"route": "table-layouts",
|
|
1739
|
-
"ordering": 9999999,
|
|
1740
|
-
"owner": {
|
|
1741
|
-
"value": {
|
|
1742
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1743
|
-
},
|
|
1744
|
-
"selected": null,
|
|
1745
|
-
"key": "name",
|
|
1746
|
-
"type": "standard",
|
|
1747
|
-
"collection": "users"
|
|
1748
|
-
},
|
|
1749
|
-
"enabled": true,
|
|
1750
|
-
"themeCtrl": null,
|
|
1751
|
-
"theme": {
|
|
1752
|
-
"value": null,
|
|
1753
|
-
"selected": null,
|
|
1754
|
-
"key": "name",
|
|
1755
|
-
"type": "standard",
|
|
1756
|
-
"collection": "themes"
|
|
1757
|
-
},
|
|
1758
|
-
"date": {
|
|
1759
|
-
"$date": "2022-02-10T20:19:14Z"
|
|
1760
|
-
},
|
|
1761
|
-
"modified": {
|
|
1762
|
-
"$date": "2022-03-27T18:53:51.293Z"
|
|
1763
|
-
},
|
|
1764
|
-
"shortCode": "tableLayouts",
|
|
1765
|
-
"isAutoResolvable": true,
|
|
1766
|
-
"engineRules": [
|
|
1767
|
-
"table-misuse"
|
|
1768
|
-
],
|
|
1769
|
-
"severity": "high",
|
|
1770
|
-
"criteria": "tables",
|
|
1771
|
-
"WCAGLevel": "A",
|
|
1772
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
1773
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1774
|
-
"shortDescription": "Tables used for building layouts should lose table role",
|
|
1775
|
-
"addSROnlyCSS": false,
|
|
1776
|
-
"saveSuccesses": true,
|
|
1777
|
-
"issueDescription": "Screen reader users have a specific way of interacting and navigating within tables. If tables are used for layout purposes and not for displaying information, assistive technology users won't be able to browse them or consume their content.",
|
|
1778
|
-
"issueResolution": "<p>Tables used for layout purposes should have their accessibility table role reset to presentation using the <strong>role=presentation </strong>attributes. This way, assistive technology will treat them as content blocks rather than tables.</p>\n<pre class=\"language-html\"><code><table role=\"presentation\"></table></code></pre>",
|
|
1779
|
-
"suggestedFix": [
|
|
1780
|
-
{
|
|
1781
|
-
"suggestedFixType": "attribute",
|
|
1782
|
-
"suggestedFixKey": "role",
|
|
1783
|
-
"suggestedFixValue": "presentation",
|
|
1784
|
-
"suggestedFixHTML": ""
|
|
1785
|
-
}
|
|
1786
|
-
]
|
|
1787
|
-
},
|
|
1788
|
-
{
|
|
1789
|
-
"_id": {
|
|
1790
|
-
"$oid": "62058aba6199d73f9cf2aede"
|
|
1791
|
-
},
|
|
1792
|
-
"name": "Footer Landmark",
|
|
1793
|
-
"route": "footer-landmark",
|
|
1794
|
-
"ordering": 9999999,
|
|
1795
|
-
"owner": {
|
|
1796
|
-
"value": {
|
|
1797
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1798
|
-
},
|
|
1799
|
-
"selected": null,
|
|
1800
|
-
"key": "name",
|
|
1801
|
-
"type": "standard",
|
|
1802
|
-
"collection": "users"
|
|
1803
|
-
},
|
|
1804
|
-
"enabled": true,
|
|
1805
|
-
"themeCtrl": null,
|
|
1806
|
-
"theme": {
|
|
1807
|
-
"value": null,
|
|
1808
|
-
"selected": null,
|
|
1809
|
-
"key": "name",
|
|
1810
|
-
"type": "standard",
|
|
1811
|
-
"collection": "themes"
|
|
1812
|
-
},
|
|
1813
|
-
"date": {
|
|
1814
|
-
"$date": "2022-02-10T21:58:55Z"
|
|
1815
|
-
},
|
|
1816
|
-
"modified": {
|
|
1817
|
-
"$date": "2022-02-25T21:30:48.418Z"
|
|
1818
|
-
},
|
|
1819
|
-
"shortCode": "footerLandmark",
|
|
1820
|
-
"isAutoResolvable": true,
|
|
1821
|
-
"engineRules": [
|
|
1822
|
-
"region-footer"
|
|
1823
|
-
],
|
|
1824
|
-
"severity": "high",
|
|
1825
|
-
"criteria": "context",
|
|
1826
|
-
"WCAGLevel": "A",
|
|
1827
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
1828
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1829
|
-
"shortDescription": "The footer should be labled as marked as a contentinfo landmark",
|
|
1830
|
-
"addSROnlyCSS": false,
|
|
1831
|
-
"saveSuccesses": true,
|
|
1832
|
-
"issueDescription": "Screen reader users have different controls to help them browse directly to specific elements on the page while skipping other, less critical, or page-repetitive elements like the menu. The footer area, also known as \"contentinfo,\" should be tagged appropriately.",
|
|
1833
|
-
"issueResolution": "<p>Use the <strong>role=contentinfo</strong> alongside <strong>aria-label=footer</strong> attributes to indicate a footer contentinfo. Alternatively, you can code your footer using the <strong>FOOTER</strong><strong> HTML </strong>tag which by default is treated as the contentinfo landmark by screen readers.</p>\n<pre class=\"language-html\"><code><div role=\"contentinfo\" aria-label=\"footer\"></div>\n<footer></footer></code></pre>",
|
|
1834
|
-
"suggestedFix": [
|
|
1835
|
-
{
|
|
1836
|
-
"suggestedFixType": "attribute",
|
|
1837
|
-
"suggestedFixKey": "role",
|
|
1838
|
-
"suggestedFixValue": "contentinfo",
|
|
1839
|
-
"suggestedFixHTML": ""
|
|
1840
|
-
}
|
|
1841
|
-
]
|
|
1842
|
-
},
|
|
1843
|
-
{
|
|
1844
|
-
"_id": {
|
|
1845
|
-
"$oid": "6206419144306b15b4367a3e"
|
|
1846
|
-
},
|
|
1847
|
-
"name": "Breadcrumbs",
|
|
1848
|
-
"route": "breadcrumbs",
|
|
1849
|
-
"ordering": 9999999,
|
|
1850
|
-
"owner": {
|
|
1851
|
-
"value": {
|
|
1852
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1853
|
-
},
|
|
1854
|
-
"selected": null,
|
|
1855
|
-
"key": "name",
|
|
1856
|
-
"type": "standard",
|
|
1857
|
-
"collection": "users"
|
|
1858
|
-
},
|
|
1859
|
-
"enabled": true,
|
|
1860
|
-
"themeCtrl": null,
|
|
1861
|
-
"theme": {
|
|
1862
|
-
"value": null,
|
|
1863
|
-
"selected": null,
|
|
1864
|
-
"key": "name",
|
|
1865
|
-
"type": "standard",
|
|
1866
|
-
"collection": "themes"
|
|
1867
|
-
},
|
|
1868
|
-
"date": {
|
|
1869
|
-
"$date": "2022-02-11T10:59:03Z"
|
|
1870
|
-
},
|
|
1871
|
-
"modified": {
|
|
1872
|
-
"$date": "2022-02-26T17:47:57.389Z"
|
|
1873
|
-
},
|
|
1874
|
-
"shortCode": "breadcrumbs",
|
|
1875
|
-
"severity": "high",
|
|
1876
|
-
"criteria": "navigation",
|
|
1877
|
-
"WCAGLevel": "A",
|
|
1878
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
1879
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1880
|
-
"shortDescription": "Breadcrumbs navigation should be tagged properly",
|
|
1881
|
-
"addSROnlyCSS": false,
|
|
1882
|
-
"saveSuccesses": true,
|
|
1883
|
-
"issueDescription": "Breadcrumb navigation regions are essential for user orientation. If not appropriately tagged, screen reader users will not know that such an option exists on the page and will face more difficulties browsing around.",
|
|
1884
|
-
"issueResolution": "<p>Add a <strong>role=navigation</strong> or code the breadcrumbs using the HTML <strong>NAV </strong>tag. This will indicate to screen readers that it is a navigation region. Lastly, add an <strong>aria-label=Breadcrumbs </strong>attribute so screen readers can announce that to users.</p>\n<pre class=\"language-html\"><code><nav aria-label=\"Breadcrumbs\"></nav></code></pre>",
|
|
1885
|
-
"suggestedFix": [
|
|
1886
|
-
{
|
|
1887
|
-
"suggestedFixType": "tag",
|
|
1888
|
-
"suggestedFixKey": "",
|
|
1889
|
-
"suggestedFixValue": "nav",
|
|
1890
|
-
"suggestedFixHTML": ""
|
|
1891
|
-
},
|
|
1892
|
-
{
|
|
1893
|
-
"suggestedFixType": "attribute",
|
|
1894
|
-
"suggestedFixKey": "aria-label",
|
|
1895
|
-
"suggestedFixValue": "breadcrumbs",
|
|
1896
|
-
"suggestedFixHTML": ""
|
|
1897
|
-
}
|
|
1898
|
-
]
|
|
1899
|
-
},
|
|
1900
|
-
{
|
|
1901
|
-
"_id": {
|
|
1902
|
-
"$oid": "6206432ff3d7a95964d1879f"
|
|
1903
|
-
},
|
|
1904
|
-
"name": "Submenu Trigger Tagging",
|
|
1905
|
-
"route": "submenu-trigger-tagging",
|
|
1906
|
-
"ordering": 9999999,
|
|
1907
|
-
"owner": {
|
|
1908
|
-
"value": {
|
|
1909
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1910
|
-
},
|
|
1911
|
-
"selected": null,
|
|
1912
|
-
"key": "name",
|
|
1913
|
-
"type": "standard",
|
|
1914
|
-
"collection": "users"
|
|
1915
|
-
},
|
|
1916
|
-
"enabled": true,
|
|
1917
|
-
"themeCtrl": null,
|
|
1918
|
-
"theme": {
|
|
1919
|
-
"value": null,
|
|
1920
|
-
"selected": null,
|
|
1921
|
-
"key": "name",
|
|
1922
|
-
"type": "standard",
|
|
1923
|
-
"collection": "themes"
|
|
1924
|
-
},
|
|
1925
|
-
"date": {
|
|
1926
|
-
"$date": "2022-02-11T11:05:51Z"
|
|
1927
|
-
},
|
|
1928
|
-
"modified": {
|
|
1929
|
-
"$date": "2022-02-26T18:40:12.401Z"
|
|
1930
|
-
},
|
|
1931
|
-
"shortCode": "submenuTriggerTagging",
|
|
1932
|
-
"severity": "high",
|
|
1933
|
-
"criteria": "navigation",
|
|
1934
|
-
"WCAGLevel": "A",
|
|
1935
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html",
|
|
1936
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1937
|
-
"shortDescription": "Sub-menu trigger buttons/links should be tagged properly",
|
|
1938
|
-
"addSROnlyCSS": false,
|
|
1939
|
-
"saveSuccesses": true,
|
|
1940
|
-
"issueDescription": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.",
|
|
1941
|
-
"issueResolution": "<p>Use the <strong>aria-haspopup=true, </strong>directly on the link/button menu item that triggers the sub-menu, to indicate a sub-menu trigger. Add the <strong>aria-expanded=false </strong>attributes to indicate that this sub-menu can be expanded and collapsed (set true when expanded).</p>\n<pre class=\"language-html\"><code><ul>\n <li>\n <a href=\"...\" aria-expanded=\"true/false\" aria-haspopup=\"true\">Products</a>\n <div class=\"sub-menu\">...</div>\n </li>\n</ul></code></pre>",
|
|
1942
|
-
"suggestedFix": [
|
|
1943
|
-
{
|
|
1944
|
-
"suggestedFixType": "attribute",
|
|
1945
|
-
"suggestedFixKey": "aria-haspopup",
|
|
1946
|
-
"suggestedFixValue": "true",
|
|
1947
|
-
"suggestedFixHTML": ""
|
|
1948
|
-
},
|
|
1949
|
-
{
|
|
1950
|
-
"suggestedFixType": "attribute",
|
|
1951
|
-
"suggestedFixKey": "aria-expanded",
|
|
1952
|
-
"suggestedFixValue": "false",
|
|
1953
|
-
"suggestedFixHTML": ""
|
|
1954
|
-
}
|
|
1955
|
-
]
|
|
1956
|
-
},
|
|
1957
|
-
{
|
|
1958
|
-
"_id": {
|
|
1959
|
-
"$oid": "620652c5b0b1184e88c8382d"
|
|
1960
|
-
},
|
|
1961
|
-
"name": "Noticeable Focus",
|
|
1962
|
-
"route": "noticeable-focus",
|
|
1963
|
-
"ordering": 9999999,
|
|
1964
|
-
"owner": {
|
|
1965
|
-
"value": {
|
|
1966
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
1967
|
-
},
|
|
1968
|
-
"selected": null,
|
|
1969
|
-
"key": "name",
|
|
1970
|
-
"type": "standard",
|
|
1971
|
-
"collection": "users"
|
|
1972
|
-
},
|
|
1973
|
-
"enabled": true,
|
|
1974
|
-
"themeCtrl": null,
|
|
1975
|
-
"theme": {
|
|
1976
|
-
"value": null,
|
|
1977
|
-
"selected": null,
|
|
1978
|
-
"key": "name",
|
|
1979
|
-
"type": "standard",
|
|
1980
|
-
"collection": "themes"
|
|
1981
|
-
},
|
|
1982
|
-
"date": {
|
|
1983
|
-
"$date": "2022-02-11T12:12:29Z"
|
|
1984
|
-
},
|
|
1985
|
-
"modified": {
|
|
1986
|
-
"$date": "2022-02-27T12:37:25.198Z"
|
|
1987
|
-
},
|
|
1988
|
-
"shortCode": "noticeableFocus",
|
|
1989
|
-
"severity": "extreme",
|
|
1990
|
-
"criteria": "keyboard",
|
|
1991
|
-
"WCAGLevel": "AA",
|
|
1992
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/#focus-visible",
|
|
1993
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
1994
|
-
"shortDescription": "Keyboard focus should be noticeable and distinctable",
|
|
1995
|
-
"addSROnlyCSS": false,
|
|
1996
|
-
"saveSuccesses": true,
|
|
1997
|
-
"issueDescription": "Using Tab key navigation, interactive, focusable elements must have a noticeable outline around them to indicate that they are focused. Otherwise, keyboard users will lose orientation and won't know where they are at.",
|
|
1998
|
-
"issueResolution": "<p>Use <strong>CSS</strong> outline to add noticeable keyboard focus to interactive elements.</p>\n<p>Often web designers refrain from including keyboard focus arguing that it distracts from the website's design and user interface for users who do not use a keyboard but a mouse or a touch screen.</p>\n<p>This can easily be solved using the CSS <strong>focus-visible </strong>pseudo class. This CSS feature will include certain CSS attributes on elements only if they are focused using the keyboard, and will not include it if they are focused using the mouse. See the example below:</p>\n<pre class=\"language-css\"><code>// this will only show on keyboard focus \nbody *:focus-visible {\n outline: solid 2px #6495ED;\n outline-offset: 5px;\t\n}\n\n// this will only show on both keyboard and mouse focus\nbody *:focus {\n outline: solid 2px #6495ED;\n outline-offset: 5px;\t\n}</code></pre>",
|
|
1999
|
-
"suggestedFix": []
|
|
2000
|
-
},
|
|
2001
|
-
{
|
|
2002
|
-
"_id": {
|
|
2003
|
-
"$oid": "6204f42c676c2425ec000531"
|
|
2004
|
-
},
|
|
2005
|
-
"name": "Page Title",
|
|
2006
|
-
"route": "page-title",
|
|
2007
|
-
"ordering": 9999999,
|
|
2008
|
-
"owner": {
|
|
2009
|
-
"value": {
|
|
2010
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2011
|
-
},
|
|
2012
|
-
"selected": null,
|
|
2013
|
-
"key": "name",
|
|
2014
|
-
"type": "standard",
|
|
2015
|
-
"collection": "users"
|
|
2016
|
-
},
|
|
2017
|
-
"enabled": true,
|
|
2018
|
-
"themeCtrl": null,
|
|
2019
|
-
"theme": {
|
|
2020
|
-
"value": null,
|
|
2021
|
-
"selected": null,
|
|
2022
|
-
"key": "name",
|
|
2023
|
-
"type": "standard",
|
|
2024
|
-
"collection": "themes"
|
|
2025
|
-
},
|
|
2026
|
-
"date": {
|
|
2027
|
-
"$date": "2022-02-10T11:15:42Z"
|
|
2028
|
-
},
|
|
2029
|
-
"modified": {
|
|
2030
|
-
"$date": "2022-03-27T18:48:33.514Z"
|
|
2031
|
-
},
|
|
2032
|
-
"shortCode": "pageTitle",
|
|
2033
|
-
"severity": "extreme",
|
|
2034
|
-
"criteria": "document",
|
|
2035
|
-
"WCAGLevel": "A",
|
|
2036
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C412%2C242#page-titled",
|
|
2037
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2038
|
-
"shortDescription": "The HEAD element should include a descriptive page title ",
|
|
2039
|
-
"addSROnlyCSS": false,
|
|
2040
|
-
"saveSuccesses": true,
|
|
2041
|
-
"issueDescription": "The document/page title is the first bit of context announced to screen reader users when a page loads. Without a properly descriptive document title, screen readers users won't know which page they've landed on.",
|
|
2042
|
-
"issueResolution": "<p>Include a descriptive title tag in the head portion of your HTML, on every page of your website.</p>\n<pre class=\"language-html\"><code><head>\n<title>I'm the page title</title>\n...\n</head></code></pre>",
|
|
2043
|
-
"suggestedFix": []
|
|
2044
|
-
},
|
|
2045
|
-
{
|
|
2046
|
-
"_id": {
|
|
2047
|
-
"$oid": "620573ca6199d73f9cf2aed6"
|
|
2048
|
-
},
|
|
2049
|
-
"name": "Headless Tables",
|
|
2050
|
-
"route": "headless-tables",
|
|
2051
|
-
"ordering": 9999999,
|
|
2052
|
-
"owner": {
|
|
2053
|
-
"value": {
|
|
2054
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2055
|
-
},
|
|
2056
|
-
"selected": null,
|
|
2057
|
-
"key": "name",
|
|
2058
|
-
"type": "standard",
|
|
2059
|
-
"collection": "users"
|
|
2060
|
-
},
|
|
2061
|
-
"enabled": true,
|
|
2062
|
-
"themeCtrl": null,
|
|
2063
|
-
"theme": {
|
|
2064
|
-
"value": null,
|
|
2065
|
-
"selected": null,
|
|
2066
|
-
"key": "name",
|
|
2067
|
-
"type": "standard",
|
|
2068
|
-
"collection": "themes"
|
|
2069
|
-
},
|
|
2070
|
-
"date": {
|
|
2071
|
-
"$date": "2022-02-10T20:19:58Z"
|
|
2072
|
-
},
|
|
2073
|
-
"modified": {
|
|
2074
|
-
"$date": "2022-03-27T18:54:12.909Z"
|
|
2075
|
-
},
|
|
2076
|
-
"shortCode": "headlessTables",
|
|
2077
|
-
"severity": "high",
|
|
2078
|
-
"criteria": "tables",
|
|
2079
|
-
"WCAGLevel": "A",
|
|
2080
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
2081
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2082
|
-
"shortDescription": "Tables should include table header tags",
|
|
2083
|
-
"addSROnlyCSS": false,
|
|
2084
|
-
"saveSuccesses": true,
|
|
2085
|
-
"issueDescription": "Screen readers can't match columns and cells without properly coded table header tags (TH). Without table headers, screen readers won't announce the table's content properly to users, leaving them unable to consume information.",
|
|
2086
|
-
"issueResolution": "<p>Add a <strong>THEAD </strong>element to indicate a table heading section, and include <strong>TH </strong>elements for every column, describing the purpose of that table column. </p>\n<pre class=\"language-html\"><code><thead>\n <tr>\n <th>Header1</th>\n <th>Header2</th>\n <th>Header3</th>\n </tr>\n<thead></code></pre>",
|
|
2087
|
-
"suggestedFix": []
|
|
2088
|
-
},
|
|
2089
|
-
{
|
|
2090
|
-
"_id": {
|
|
2091
|
-
"$oid": "62065146b0b1184e88c83826"
|
|
2092
|
-
},
|
|
2093
|
-
"name": "Redundant Aria Labels",
|
|
2094
|
-
"route": "redundant-aria-labels",
|
|
2095
|
-
"ordering": 9999999,
|
|
2096
|
-
"owner": {
|
|
2097
|
-
"value": {
|
|
2098
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2099
|
-
},
|
|
2100
|
-
"selected": null,
|
|
2101
|
-
"key": "name",
|
|
2102
|
-
"type": "standard",
|
|
2103
|
-
"collection": "users"
|
|
2104
|
-
},
|
|
2105
|
-
"enabled": false,
|
|
2106
|
-
"themeCtrl": null,
|
|
2107
|
-
"theme": {
|
|
2108
|
-
"value": null,
|
|
2109
|
-
"selected": null,
|
|
2110
|
-
"key": "name",
|
|
2111
|
-
"type": "standard",
|
|
2112
|
-
"collection": "themes"
|
|
2113
|
-
},
|
|
2114
|
-
"date": {
|
|
2115
|
-
"$date": "2022-02-11T12:05:53Z"
|
|
2116
|
-
},
|
|
2117
|
-
"modified": {
|
|
2118
|
-
"$date": "2022-02-26T20:44:33.46Z"
|
|
2119
|
-
},
|
|
2120
|
-
"shortCode": "redundantAriaLabels",
|
|
2121
|
-
"severity": "low",
|
|
2122
|
-
"criteria": "errors",
|
|
2123
|
-
"WCAGLevel": "A",
|
|
2124
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/label-in-name.html",
|
|
2125
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2126
|
-
"shortDescription": "Aria-label is redundant when it has the same value as the content",
|
|
2127
|
-
"addSROnlyCSS": false,
|
|
2128
|
-
"saveSuccesses": false,
|
|
2129
|
-
"issueDescription": "Aria labels are used to label elements without text, like icons and fields. Providing the exact text of an element in an aria-label is redundant and potentially dangerous because content changes as updates roll out, and the aria-label can become misleading.",
|
|
2130
|
-
"issueResolution": "<p>Remove the <strong>aria-label.</strong></p>",
|
|
2131
|
-
"suggestedFix": [
|
|
2132
|
-
{
|
|
2133
|
-
"suggestedFixType": "removeAttribute",
|
|
2134
|
-
"suggestedFixKey": "",
|
|
2135
|
-
"suggestedFixValue": "aria-label",
|
|
2136
|
-
"suggestedFixHTML": ""
|
|
2137
|
-
}
|
|
2138
|
-
]
|
|
2139
|
-
},
|
|
2140
|
-
{
|
|
2141
|
-
"_id": {
|
|
2142
|
-
"$oid": "6204f180676c2425ec00052f"
|
|
2143
|
-
},
|
|
2144
|
-
"name": "Empty Links",
|
|
2145
|
-
"route": "empty-links",
|
|
2146
|
-
"ordering": 9999999,
|
|
2147
|
-
"owner": {
|
|
2148
|
-
"value": {
|
|
2149
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2150
|
-
},
|
|
2151
|
-
"selected": null,
|
|
2152
|
-
"key": "name",
|
|
2153
|
-
"type": "standard",
|
|
2154
|
-
"collection": "users"
|
|
2155
|
-
},
|
|
2156
|
-
"enabled": true,
|
|
2157
|
-
"themeCtrl": null,
|
|
2158
|
-
"theme": {
|
|
2159
|
-
"value": null,
|
|
2160
|
-
"selected": null,
|
|
2161
|
-
"key": "name",
|
|
2162
|
-
"type": "standard",
|
|
2163
|
-
"collection": "themes"
|
|
2164
|
-
},
|
|
2165
|
-
"date": {
|
|
2166
|
-
"$date": "2022-02-10T11:03:47Z"
|
|
2167
|
-
},
|
|
2168
|
-
"modified": {
|
|
2169
|
-
"$date": "2022-03-27T18:47:52.802Z"
|
|
2170
|
-
},
|
|
2171
|
-
"shortCode": "emptyLinks",
|
|
2172
|
-
"severity": "high",
|
|
2173
|
-
"criteria": "clickables",
|
|
2174
|
-
"WCAGLevel": "A",
|
|
2175
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C412#name-role-value",
|
|
2176
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2177
|
-
"shortDescription": "Empty links should indicate their location or excluded from assistive technology",
|
|
2178
|
-
"addSROnlyCSS": true,
|
|
2179
|
-
"saveSuccesses": false,
|
|
2180
|
-
"issueDescription": "Screen reader users need to figure out a link's destination based on the text or a coded label. This is because they interact with one element at a time and don't see visual cues that provide more context.",
|
|
2181
|
-
"issueResolution": "<p>Use an aria-label or the screen-reader-only text technique to provide links with extra context regarding their destination and functionality like in the example below:</p>\n<pre class=\"language-html\"><code><a href=\"....\"><span class=\"sr-only\">Blog article: 10 different ways to...</span></a>\n<a href=\"....\" aria-label=\"Blog article: 10 different ways to...\"></a></code></pre>",
|
|
2182
|
-
"suggestedFix": [
|
|
2183
|
-
{
|
|
2184
|
-
"suggestedFixType": "attribute",
|
|
2185
|
-
"suggestedFixKey": "aria-label",
|
|
2186
|
-
"suggestedFixValue": "",
|
|
2187
|
-
"suggestedFixHTML": ""
|
|
2188
|
-
}
|
|
2189
|
-
]
|
|
2190
|
-
},
|
|
2191
|
-
{
|
|
2192
|
-
"_id": {
|
|
2193
|
-
"$oid": "620570c26199d73f9cf2aeca"
|
|
2194
|
-
},
|
|
2195
|
-
"name": "Color Contrast",
|
|
2196
|
-
"route": "color-contrast",
|
|
2197
|
-
"ordering": 9999999,
|
|
2198
|
-
"owner": {
|
|
2199
|
-
"value": {
|
|
2200
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2201
|
-
},
|
|
2202
|
-
"selected": null,
|
|
2203
|
-
"key": "name",
|
|
2204
|
-
"type": "standard",
|
|
2205
|
-
"collection": "users"
|
|
2206
|
-
},
|
|
2207
|
-
"enabled": true,
|
|
2208
|
-
"themeCtrl": null,
|
|
2209
|
-
"theme": {
|
|
2210
|
-
"value": null,
|
|
2211
|
-
"selected": null,
|
|
2212
|
-
"key": "name",
|
|
2213
|
-
"type": "standard",
|
|
2214
|
-
"collection": "themes"
|
|
2215
|
-
},
|
|
2216
|
-
"date": {
|
|
2217
|
-
"$date": "2022-02-10T20:07:54Z"
|
|
2218
|
-
},
|
|
2219
|
-
"modified": {
|
|
2220
|
-
"$date": "2022-03-27T18:50:24.818Z"
|
|
2221
|
-
},
|
|
2222
|
-
"shortCode": "colorContrast",
|
|
2223
|
-
"severity": "medium",
|
|
2224
|
-
"criteria": "readability",
|
|
2225
|
-
"WCAGLevel": "AA",
|
|
2226
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=144%2C1412%2C211%2C143#contrast-minimum",
|
|
2227
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2228
|
-
"shortDescription": "The color contrast ratio between text and its background should provide a readable experience",
|
|
2229
|
-
"addSROnlyCSS": false,
|
|
2230
|
-
"saveSuccesses": false,
|
|
2231
|
-
"issueDescription": "The color contrast between the foreground and the background elements needs to meet a ratio of at least 4.5:1 for standard text. For large text above 18pt (24px) font size, a lower ratio of 3:1 can be met, but it is recommended to remain with 4:5:1 in any case. A background element that is not directly in the hierarchy of the text element that has the correct contrast, may cause what appears to be a false positive. According to WCAG, this is incorrect, and not a false positive because people using assistive technologies may change the font and background colors to improve readability, which isn't possible if the background is not part of the text element's hierarchy.",
|
|
2232
|
-
"issueResolution": "<p>Work with the website's designers to choose colors that properly meet the minimum contrast ratio requirements. To check color contrast with different potential colors, use Webaim's contrast checker: <a href=\"https://webaim.org/resources/contrastchecker\" target=\"_blank\" rel=\"noopener\">https://webaim.org/resources/contrastchecker</a></p><p>If using floating backgrounds, ensure they are part of the hierarchy of the text element to allow users with assistive technologies to adjust colors for better readability.</p>",
|
|
2233
|
-
"suggestedFix": []
|
|
2234
|
-
},
|
|
2235
|
-
{
|
|
2236
|
-
"_id": {
|
|
2237
|
-
"$oid": "620589f86199d73f9cf2aed9"
|
|
2238
|
-
},
|
|
2239
|
-
"name": "Sale Prices",
|
|
2240
|
-
"route": "sale-prices",
|
|
2241
|
-
"ordering": 9999999,
|
|
2242
|
-
"owner": {
|
|
2243
|
-
"value": {
|
|
2244
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2245
|
-
},
|
|
2246
|
-
"selected": null,
|
|
2247
|
-
"key": "name",
|
|
2248
|
-
"type": "standard",
|
|
2249
|
-
"collection": "users"
|
|
2250
|
-
},
|
|
2251
|
-
"enabled": true,
|
|
2252
|
-
"themeCtrl": null,
|
|
2253
|
-
"theme": {
|
|
2254
|
-
"value": null,
|
|
2255
|
-
"selected": null,
|
|
2256
|
-
"key": "name",
|
|
2257
|
-
"type": "standard",
|
|
2258
|
-
"collection": "themes"
|
|
2259
|
-
},
|
|
2260
|
-
"date": {
|
|
2261
|
-
"$date": "2022-02-10T21:53:24Z"
|
|
2262
|
-
},
|
|
2263
|
-
"modified": {
|
|
2264
|
-
"$date": "2022-02-25T21:02:42.658Z"
|
|
2265
|
-
},
|
|
2266
|
-
"shortCode": "salePrices",
|
|
2267
|
-
"severity": "high",
|
|
2268
|
-
"criteria": "context",
|
|
2269
|
-
"WCAGLevel": "A",
|
|
2270
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html",
|
|
2271
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2272
|
-
"shortDescription": "Old sale prices should be indicated to assistive technology",
|
|
2273
|
-
"addSROnlyCSS": true,
|
|
2274
|
-
"saveSuccesses": false,
|
|
2275
|
-
"issueDescription": "Websites often show two numbers to indicate a sale. The original price, and then the sale price. Blind screen reader users don't see visual cues to know the difference and will hear two numbers without knowing which is correct or if there's an issue on the page. ",
|
|
2276
|
-
"issueResolution": "<p>Add a screen-reader-only text element inside the original price element to indicate that this is, in fact, an old or the original price. This way, screen reader users will understand that the other price is current.</p>\n<pre class=\"language-html\"><code><div>$100 <span class=\"sr-only\">Original price</span></div></code></pre>",
|
|
2277
|
-
"suggestedFix": [
|
|
2278
|
-
{
|
|
2279
|
-
"suggestedFixType": "srOnly",
|
|
2280
|
-
"suggestedFixKey": "",
|
|
2281
|
-
"suggestedFixValue": "Original price",
|
|
2282
|
-
"suggestedFixHTML": ""
|
|
2283
|
-
}
|
|
2284
|
-
]
|
|
2285
|
-
},
|
|
2286
|
-
{
|
|
2287
|
-
"_id": {
|
|
2288
|
-
"$oid": "62058a2e6199d73f9cf2aeda"
|
|
2289
|
-
},
|
|
2290
|
-
"name": "User Rating",
|
|
2291
|
-
"route": "user-rating",
|
|
2292
|
-
"ordering": 9999999,
|
|
2293
|
-
"owner": {
|
|
2294
|
-
"value": {
|
|
2295
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2296
|
-
},
|
|
2297
|
-
"selected": null,
|
|
2298
|
-
"key": "name",
|
|
2299
|
-
"type": "standard",
|
|
2300
|
-
"collection": "users"
|
|
2301
|
-
},
|
|
2302
|
-
"enabled": true,
|
|
2303
|
-
"themeCtrl": null,
|
|
2304
|
-
"theme": {
|
|
2305
|
-
"value": null,
|
|
2306
|
-
"selected": null,
|
|
2307
|
-
"key": "name",
|
|
2308
|
-
"type": "standard",
|
|
2309
|
-
"collection": "themes"
|
|
2310
|
-
},
|
|
2311
|
-
"date": {
|
|
2312
|
-
"$date": "2022-02-10T21:56:18Z"
|
|
2313
|
-
},
|
|
2314
|
-
"modified": {
|
|
2315
|
-
"$date": "2022-02-25T21:04:01.729Z"
|
|
2316
|
-
},
|
|
2317
|
-
"shortCode": "userRating",
|
|
2318
|
-
"severity": "high",
|
|
2319
|
-
"criteria": "context",
|
|
2320
|
-
"WCAGLevel": "A",
|
|
2321
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C412#non-text-content",
|
|
2322
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2323
|
-
"shortDescription": "User rating should be tagged properly for assistive technology",
|
|
2324
|
-
"addSROnlyCSS": true,
|
|
2325
|
-
"saveSuccesses": true,
|
|
2326
|
-
"issueDescription": "When showing customer satisfaction using a visual rating system like 1-5 star indication, we need to indicate the rating as text, so screen readers users will be able to learn about it when researching a product or service.",
|
|
2327
|
-
"issueResolution": "<p>Add a screen-reader-only text element to indicate the aggregated, final rating, inside the rating system element like in the example below:</p>\n<pre class=\"language-html\"><code><div>\n★★★★★ <span class=\"sr-only\">5/5 rating</span>\n</div></code></pre>",
|
|
2328
|
-
"suggestedFix": [
|
|
2329
|
-
{
|
|
2330
|
-
"suggestedFixType": "srOnly",
|
|
2331
|
-
"suggestedFixKey": "",
|
|
2332
|
-
"suggestedFixValue": "{suggestion} rating",
|
|
2333
|
-
"suggestedFixHTML": ""
|
|
2334
|
-
}
|
|
2335
|
-
]
|
|
2336
|
-
},
|
|
2337
|
-
{
|
|
2338
|
-
"_id": {
|
|
2339
|
-
"$oid": "6206338cacb7f0495c5df39b"
|
|
2340
|
-
},
|
|
2341
|
-
"name": "Field Required",
|
|
2342
|
-
"route": "field-required",
|
|
2343
|
-
"ordering": 9999999,
|
|
2344
|
-
"owner": {
|
|
2345
|
-
"value": {
|
|
2346
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2347
|
-
},
|
|
2348
|
-
"selected": null,
|
|
2349
|
-
"key": "name",
|
|
2350
|
-
"type": "standard",
|
|
2351
|
-
"collection": "users"
|
|
2352
|
-
},
|
|
2353
|
-
"enabled": true,
|
|
2354
|
-
"themeCtrl": null,
|
|
2355
|
-
"theme": {
|
|
2356
|
-
"value": null,
|
|
2357
|
-
"selected": null,
|
|
2358
|
-
"key": "name",
|
|
2359
|
-
"type": "standard",
|
|
2360
|
-
"collection": "themes"
|
|
2361
|
-
},
|
|
2362
|
-
"date": {
|
|
2363
|
-
"$date": "2022-02-11T09:59:07Z"
|
|
2364
|
-
},
|
|
2365
|
-
"modified": {
|
|
2366
|
-
"$date": "2022-02-26T11:51:16.78Z"
|
|
2367
|
-
},
|
|
2368
|
-
"shortCode": "fieldRequired",
|
|
2369
|
-
"isAutoResolvable": true,
|
|
2370
|
-
"engineRules": [],
|
|
2371
|
-
"severity": "high",
|
|
2372
|
-
"criteria": "forms",
|
|
2373
|
-
"WCAGLevel": "A",
|
|
2374
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131%2C411#error-suggestion",
|
|
2375
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2376
|
-
"shortDescription": "Required fields must be tagged as such for assistive technology",
|
|
2377
|
-
"addSROnlyCSS": false,
|
|
2378
|
-
"saveSuccesses": true,
|
|
2379
|
-
"issueDescription": "Screen reader users need to know if a field is required when interacting with it. Otherwise, screen reader users will need to go back and forth to understand why their submission attempt doesn't work as expected.",
|
|
2380
|
-
"issueResolution": "<p>Add the <strong>aria-required=true</strong> attribute to indicate to screen readers that a field is required and the form won't submit without it.</p>\n<pre class=\"language-html\"><code><input aria-required=\"true\"></code></pre>",
|
|
2381
|
-
"suggestedFix": [
|
|
2382
|
-
{
|
|
2383
|
-
"suggestedFixType": "attribute",
|
|
2384
|
-
"suggestedFixKey": "aria-required",
|
|
2385
|
-
"suggestedFixValue": "true",
|
|
2386
|
-
"suggestedFixHTML": ""
|
|
2387
|
-
}
|
|
2388
|
-
]
|
|
2389
|
-
},
|
|
2390
|
-
{
|
|
2391
|
-
"_id": {
|
|
2392
|
-
"$oid": "620633b0acb7f0495c5df39c"
|
|
2393
|
-
},
|
|
2394
|
-
"name": "Form Duplicate IDs",
|
|
2395
|
-
"route": "form-duplicate-ids",
|
|
2396
|
-
"ordering": 9999999,
|
|
2397
|
-
"owner": {
|
|
2398
|
-
"value": {
|
|
2399
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2400
|
-
},
|
|
2401
|
-
"selected": null,
|
|
2402
|
-
"key": "name",
|
|
2403
|
-
"type": "standard",
|
|
2404
|
-
"collection": "users"
|
|
2405
|
-
},
|
|
2406
|
-
"enabled": false,
|
|
2407
|
-
"themeCtrl": null,
|
|
2408
|
-
"theme": {
|
|
2409
|
-
"value": null,
|
|
2410
|
-
"selected": null,
|
|
2411
|
-
"key": "name",
|
|
2412
|
-
"type": "standard",
|
|
2413
|
-
"collection": "themes"
|
|
2414
|
-
},
|
|
2415
|
-
"date": {
|
|
2416
|
-
"$date": "2022-02-11T09:59:40Z"
|
|
2417
|
-
},
|
|
2418
|
-
"modified": {
|
|
2419
|
-
"$date": "2022-02-26T12:14:00.688Z"
|
|
2420
|
-
},
|
|
2421
|
-
"shortCode": "formDuplicateIDs",
|
|
2422
|
-
"severity": "medium",
|
|
2423
|
-
"criteria": "forms",
|
|
2424
|
-
"WCAGLevel": "AA",
|
|
2425
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131%2C411#parsing",
|
|
2426
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2427
|
-
"shortDescription": "Forms and form fields must have unique ID attributes",
|
|
2428
|
-
"addSROnlyCSS": false,
|
|
2429
|
-
"saveSuccesses": false,
|
|
2430
|
-
"issueDescription": "Screen readers rely on ID attributes to be unique in order to announce to the users the correct content. If IDs are not unique, screen readers won't know which element is the correct one.",
|
|
2431
|
-
"issueResolution": "<p>Change the ID of the duplicate fields and forms so they are unique.</p>",
|
|
2432
|
-
"suggestedFix": []
|
|
2433
|
-
},
|
|
2434
|
-
{
|
|
2435
|
-
"_id": {
|
|
2436
|
-
"$oid": "6206410244306b15b4367a3b"
|
|
2437
|
-
},
|
|
2438
|
-
"name": "Submenu State",
|
|
2439
|
-
"route": "submenu-state",
|
|
2440
|
-
"ordering": 9999999,
|
|
2441
|
-
"owner": {
|
|
2442
|
-
"value": {
|
|
2443
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2444
|
-
},
|
|
2445
|
-
"selected": null,
|
|
2446
|
-
"key": "name",
|
|
2447
|
-
"type": "standard",
|
|
2448
|
-
"collection": "users"
|
|
2449
|
-
},
|
|
2450
|
-
"enabled": true,
|
|
2451
|
-
"themeCtrl": null,
|
|
2452
|
-
"theme": {
|
|
2453
|
-
"value": null,
|
|
2454
|
-
"selected": null,
|
|
2455
|
-
"key": "name",
|
|
2456
|
-
"type": "standard",
|
|
2457
|
-
"collection": "themes"
|
|
2458
|
-
},
|
|
2459
|
-
"date": {
|
|
2460
|
-
"$date": "2022-02-11T10:56:28Z"
|
|
2461
|
-
},
|
|
2462
|
-
"modified": {
|
|
2463
|
-
"$date": "2022-02-26T17:22:24.436Z"
|
|
2464
|
-
},
|
|
2465
|
-
"shortCode": "submenuState",
|
|
2466
|
-
"severity": "high",
|
|
2467
|
-
"criteria": "navigation",
|
|
2468
|
-
"WCAGLevel": "A",
|
|
2469
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C412#name-role-value",
|
|
2470
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2471
|
-
"shortDescription": "Sub menu open/close states should be indicated to assistive technology",
|
|
2472
|
-
"addSROnlyCSS": false,
|
|
2473
|
-
"saveSuccesses": true,
|
|
2474
|
-
"issueDescription": "Screen readers require properly coded states for interactive elements. Submenus can be expanded or collapsed, and their state should be indicated to screen readers. Otherwise, users will lose orientation and get confused while browsing the menu.",
|
|
2475
|
-
"issueResolution": "<p>Use the <strong>aria-haspopup=true</strong> to indicate a sub-menu trigger, and the <strong>aria-expanded=true</strong> to indicate expanded sub-menus and <strong>aria-expanded=false</strong> to indicate collapsed sub-menus. Make sure to switch between <strong>true </strong>and <strong>false</strong> dynamically as users interact, open and close sub-menus.</p>\n<p><strong>Note:</strong> the <strong>aria-expanded</strong> attribute must be placed on the <strong>link </strong>or <strong>button </strong>menu items only. Otherwise, they won't work.</p>\n<pre class=\"language-html\"><code><ul>\n <li>\n <a href=\"...\" aria-expanded=\"true/false\" aria-haspopup=\"true\">Products</a>\n <div class=\"sub-menu\">...</div>\n </li>\n</ul></code></pre>",
|
|
2476
|
-
"suggestedFix": [
|
|
2477
|
-
{
|
|
2478
|
-
"suggestedFixType": "attribute",
|
|
2479
|
-
"suggestedFixKey": "aria-expanded",
|
|
2480
|
-
"suggestedFixValue": "false",
|
|
2481
|
-
"suggestedFixHTML": ""
|
|
2482
|
-
},
|
|
2483
|
-
{
|
|
2484
|
-
"suggestedFixType": "attribute",
|
|
2485
|
-
"suggestedFixKey": "aria-haspopup",
|
|
2486
|
-
"suggestedFixValue": "true",
|
|
2487
|
-
"suggestedFixHTML": ""
|
|
2488
|
-
}
|
|
2489
|
-
]
|
|
2490
|
-
},
|
|
2491
|
-
{
|
|
2492
|
-
"_id": {
|
|
2493
|
-
"$oid": "62064fbf807c385bb8e74a7f"
|
|
2494
|
-
},
|
|
2495
|
-
"name": "Title Misuse",
|
|
2496
|
-
"route": "title-misuse",
|
|
2497
|
-
"ordering": 9999999,
|
|
2498
|
-
"owner": {
|
|
2499
|
-
"value": {
|
|
2500
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2501
|
-
},
|
|
2502
|
-
"selected": null,
|
|
2503
|
-
"key": "name",
|
|
2504
|
-
"type": "standard",
|
|
2505
|
-
"collection": "users"
|
|
2506
|
-
},
|
|
2507
|
-
"enabled": true,
|
|
2508
|
-
"themeCtrl": null,
|
|
2509
|
-
"theme": {
|
|
2510
|
-
"value": null,
|
|
2511
|
-
"selected": null,
|
|
2512
|
-
"key": "name",
|
|
2513
|
-
"type": "standard",
|
|
2514
|
-
"collection": "themes"
|
|
2515
|
-
},
|
|
2516
|
-
"date": {
|
|
2517
|
-
"$date": "2022-02-11T11:59:22Z"
|
|
2518
|
-
},
|
|
2519
|
-
"modified": {
|
|
2520
|
-
"$date": "2022-02-26T20:16:27.769Z"
|
|
2521
|
-
},
|
|
2522
|
-
"shortCode": "titleMisuse",
|
|
2523
|
-
"severity": "low",
|
|
2524
|
-
"criteria": "errors",
|
|
2525
|
-
"WCAGLevel": "none",
|
|
2526
|
-
"issueWCAGLink": "-",
|
|
2527
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2528
|
-
"shortDescription": "Title attributes should not be used to deliver information",
|
|
2529
|
-
"addSROnlyCSS": true,
|
|
2530
|
-
"saveSuccesses": true,
|
|
2531
|
-
"issueDescription": "Screen readers do not announce content inside title tags. They only show it when using certain screen reader features. Therefore it should not be used to deliver information to the user, or else users will most likely miss that information.",
|
|
2532
|
-
"issueResolution": "<p>Use the <strong>screen-reader-only </strong>technique to provide information instead of the title attribute. Create a <strong>screen-reader-only </strong>element and put it inside the tag you originally intended to use a title attribute on.</p>\n<p>If the mentioned tag is self-closing, e.g no closing required like input and img, add the content as an <strong>aria-label</strong> instead of a <strong>screen-reader-only </strong>element.</p>\n<pre class=\"language-html\"><code><span class=\"sr-only\">Content goes here...</span></code></pre>",
|
|
2533
|
-
"suggestedFix": [
|
|
2534
|
-
{
|
|
2535
|
-
"suggestedFixType": "removeAttribute",
|
|
2536
|
-
"suggestedFixKey": "",
|
|
2537
|
-
"suggestedFixValue": "title",
|
|
2538
|
-
"suggestedFixHTML": ""
|
|
2539
|
-
},
|
|
2540
|
-
{
|
|
2541
|
-
"suggestedFixType": "srOnly",
|
|
2542
|
-
"suggestedFixKey": "",
|
|
2543
|
-
"suggestedFixValue": "Complementary text here instead of title...",
|
|
2544
|
-
"suggestedFixHTML": ""
|
|
2545
|
-
}
|
|
2546
|
-
]
|
|
2547
|
-
},
|
|
2548
|
-
{
|
|
2549
|
-
"_id": {
|
|
2550
|
-
"$oid": "6204edd4676c2425ec00052a"
|
|
2551
|
-
},
|
|
2552
|
-
"name": "Live Carousels",
|
|
2553
|
-
"route": "live-carousels",
|
|
2554
|
-
"ordering": 9999999,
|
|
2555
|
-
"owner": {
|
|
2556
|
-
"value": {
|
|
2557
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2558
|
-
},
|
|
2559
|
-
"selected": null,
|
|
2560
|
-
"key": "name",
|
|
2561
|
-
"type": "standard",
|
|
2562
|
-
"collection": "users"
|
|
2563
|
-
},
|
|
2564
|
-
"enabled": true,
|
|
2565
|
-
"themeCtrl": null,
|
|
2566
|
-
"theme": {
|
|
2567
|
-
"value": null,
|
|
2568
|
-
"selected": null,
|
|
2569
|
-
"key": "name",
|
|
2570
|
-
"type": "standard",
|
|
2571
|
-
"collection": "themes"
|
|
2572
|
-
},
|
|
2573
|
-
"date": {
|
|
2574
|
-
"$date": "2022-02-10T10:48:44Z"
|
|
2575
|
-
},
|
|
2576
|
-
"modified": {
|
|
2577
|
-
"$date": "2022-03-27T17:26:20.718Z"
|
|
2578
|
-
},
|
|
2579
|
-
"shortCode": "liveCarousels",
|
|
2580
|
-
"isAutoResolvable": true,
|
|
2581
|
-
"engineRules": [],
|
|
2582
|
-
"severity": "extreme",
|
|
2583
|
-
"criteria": "carousels",
|
|
2584
|
-
"WCAGLevel": "none",
|
|
2585
|
-
"issueWCAGLink": "-",
|
|
2586
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2587
|
-
"shortDescription": "Carousels should not be tagged as live regions",
|
|
2588
|
-
"addSROnlyCSS": false,
|
|
2589
|
-
"saveSuccesses": true,
|
|
2590
|
-
"issueDescription": "When carousels are tagged as live regions, screen readers will break the browsing flow every time a slide is changed to announce the new slide. This will happen even if the user isn't interacting with the carousel at all and is in another section entirely.",
|
|
2591
|
-
"issueResolution": "<p>Remove the <strong>aria-live=true </strong>attribute from the carousel itself and all of its slides.</p>",
|
|
2592
|
-
"suggestedFix": [
|
|
2593
|
-
{
|
|
2594
|
-
"suggestedFixType": "removeAttribute",
|
|
2595
|
-
"suggestedFixKey": "",
|
|
2596
|
-
"suggestedFixValue": "aria-live",
|
|
2597
|
-
"suggestedFixHTML": ""
|
|
2598
|
-
}
|
|
2599
|
-
]
|
|
2600
|
-
},
|
|
2601
|
-
{
|
|
2602
|
-
"_id": {
|
|
2603
|
-
"$oid": "6206421bf3d7a95964d1879b"
|
|
2604
|
-
},
|
|
2605
|
-
"name": "Broken Nav Items",
|
|
2606
|
-
"route": "broken-nav-items",
|
|
2607
|
-
"ordering": 9999999,
|
|
2608
|
-
"owner": {
|
|
2609
|
-
"value": {
|
|
2610
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2611
|
-
},
|
|
2612
|
-
"selected": null,
|
|
2613
|
-
"key": "name",
|
|
2614
|
-
"type": "standard",
|
|
2615
|
-
"collection": "users"
|
|
2616
|
-
},
|
|
2617
|
-
"enabled": true,
|
|
2618
|
-
"themeCtrl": null,
|
|
2619
|
-
"theme": {
|
|
2620
|
-
"value": null,
|
|
2621
|
-
"selected": null,
|
|
2622
|
-
"key": "name",
|
|
2623
|
-
"type": "standard",
|
|
2624
|
-
"collection": "themes"
|
|
2625
|
-
},
|
|
2626
|
-
"date": {
|
|
2627
|
-
"$date": "2022-02-11T11:01:05Z"
|
|
2628
|
-
},
|
|
2629
|
-
"modified": {
|
|
2630
|
-
"$date": "2022-02-26T18:43:43.144Z"
|
|
2631
|
-
},
|
|
2632
|
-
"shortCode": "brokenNavItems",
|
|
2633
|
-
"isAutoResolvable": true,
|
|
2634
|
-
"engineRules": [
|
|
2635
|
-
"menu-item-avoid"
|
|
2636
|
-
],
|
|
2637
|
-
"severity": "high",
|
|
2638
|
-
"criteria": "navigation",
|
|
2639
|
-
"WCAGLevel": "none",
|
|
2640
|
-
"issueWCAGLink": "-",
|
|
2641
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2642
|
-
"shortDescription": "Use links and buttons for nav items and avoid using role=menuitem",
|
|
2643
|
-
"addSROnlyCSS": false,
|
|
2644
|
-
"saveSuccesses": true,
|
|
2645
|
-
"issueDescription": "Using role=menuitem for navigation elements is a bad practice. Screen reader users rely on standard functionality such as links and buttons for most websites. Different types of menus are better used in desktop applications than web applications.",
|
|
2646
|
-
"issueResolution": "<p>Use standard links and buttons (or non-buttons with <strong>role=button</strong>) for menu items and remove any <strong>role=menuitem</strong> attribute.</p>",
|
|
2647
|
-
"suggestedFix": [
|
|
2648
|
-
{
|
|
2649
|
-
"suggestedFixType": "removeAttribute",
|
|
2650
|
-
"suggestedFixKey": "",
|
|
2651
|
-
"suggestedFixValue": "role",
|
|
2652
|
-
"suggestedFixHTML": ""
|
|
2653
|
-
}
|
|
2654
|
-
]
|
|
2655
|
-
},
|
|
2656
|
-
{
|
|
2657
|
-
"_id": {
|
|
2658
|
-
"$oid": "6204efd0676c2425ec00052d"
|
|
2659
|
-
},
|
|
2660
|
-
"name": "Carousel Labeling",
|
|
2661
|
-
"route": "carousel-labeling",
|
|
2662
|
-
"ordering": 9999999,
|
|
2663
|
-
"owner": {
|
|
2664
|
-
"value": {
|
|
2665
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2666
|
-
},
|
|
2667
|
-
"selected": null,
|
|
2668
|
-
"key": "name",
|
|
2669
|
-
"type": "standard",
|
|
2670
|
-
"collection": "users"
|
|
2671
|
-
},
|
|
2672
|
-
"enabled": true,
|
|
2673
|
-
"themeCtrl": null,
|
|
2674
|
-
"theme": {
|
|
2675
|
-
"value": null,
|
|
2676
|
-
"selected": null,
|
|
2677
|
-
"key": "name",
|
|
2678
|
-
"type": "standard",
|
|
2679
|
-
"collection": "themes"
|
|
2680
|
-
},
|
|
2681
|
-
"date": {
|
|
2682
|
-
"$date": "2022-02-10T10:57:30Z"
|
|
2683
|
-
},
|
|
2684
|
-
"modified": {
|
|
2685
|
-
"$date": "2022-03-27T17:28:29.937Z"
|
|
2686
|
-
},
|
|
2687
|
-
"shortCode": "carouselLabeling",
|
|
2688
|
-
"isAutoResolvable": true,
|
|
2689
|
-
"engineRules": [],
|
|
2690
|
-
"severity": "high",
|
|
2691
|
-
"criteria": "carousels",
|
|
2692
|
-
"WCAGLevel": "A",
|
|
2693
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
2694
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2695
|
-
"shortDescription": "Carousels should be tagged and labeled properly",
|
|
2696
|
-
"addSROnlyCSS": false,
|
|
2697
|
-
"saveSuccesses": true,
|
|
2698
|
-
"issueDescription": "Unlabeled carousel areas are difficult for screen reader users because content gets hidden and shown unexpectedly. This can cause screen readers to read, stop, and start to read again something else entirely. If tagged properly, this behavior is expected.",
|
|
2699
|
-
"issueResolution": "<p>Use the <strong>ARIA landmark </strong>technique to tag the carousel as a region, alongside an <strong>\"aria-label\"</strong> that equals <strong>\"carousel\".</strong> Using both of these attributes, assistive technology users will understand that this is a carousel region. This will also help users identify that buttons and controls within the region (like next, previous, or pause) are associated with controlling the carousel functionality.</p>\n<p>You can also include extra content for the carousel in the aria-label attribute as seen in the example below: </p>\n<pre class=\"language-html\"><code><div class=\"carousel\" role=\"region\" aria-label=\"Featured Products Carousel\"></div></code></pre>",
|
|
2700
|
-
"suggestedFix": [
|
|
2701
|
-
{
|
|
2702
|
-
"suggestedFixType": "attribute",
|
|
2703
|
-
"suggestedFixKey": "role",
|
|
2704
|
-
"suggestedFixValue": "region",
|
|
2705
|
-
"suggestedFixHTML": ""
|
|
2706
|
-
},
|
|
2707
|
-
{
|
|
2708
|
-
"suggestedFixType": "attribute",
|
|
2709
|
-
"suggestedFixKey": "aria-label",
|
|
2710
|
-
"suggestedFixValue": "carousel",
|
|
2711
|
-
"suggestedFixHTML": ""
|
|
2712
|
-
}
|
|
2713
|
-
]
|
|
2714
|
-
},
|
|
2715
|
-
{
|
|
2716
|
-
"_id": {
|
|
2717
|
-
"$oid": "6204f041676c2425ec00052e"
|
|
2718
|
-
},
|
|
2719
|
-
"name": "Carousel Pagination",
|
|
2720
|
-
"route": "carousel-pagination",
|
|
2721
|
-
"ordering": 9999999,
|
|
2722
|
-
"owner": {
|
|
2723
|
-
"value": {
|
|
2724
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2725
|
-
},
|
|
2726
|
-
"selected": null,
|
|
2727
|
-
"key": "name",
|
|
2728
|
-
"type": "standard",
|
|
2729
|
-
"collection": "users"
|
|
2730
|
-
},
|
|
2731
|
-
"enabled": true,
|
|
2732
|
-
"themeCtrl": null,
|
|
2733
|
-
"theme": {
|
|
2734
|
-
"value": null,
|
|
2735
|
-
"selected": null,
|
|
2736
|
-
"key": "name",
|
|
2737
|
-
"type": "standard",
|
|
2738
|
-
"collection": "themes"
|
|
2739
|
-
},
|
|
2740
|
-
"date": {
|
|
2741
|
-
"$date": "2022-02-10T10:58:26Z"
|
|
2742
|
-
},
|
|
2743
|
-
"modified": {
|
|
2744
|
-
"$date": "2022-03-27T17:28:53.715Z"
|
|
2745
|
-
},
|
|
2746
|
-
"shortCode": "carouselPagination",
|
|
2747
|
-
"severity": "high",
|
|
2748
|
-
"criteria": "carousels",
|
|
2749
|
-
"WCAGLevel": "A",
|
|
2750
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html",
|
|
2751
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2752
|
-
"shortDescription": "Carousel pagination buttons should be tagged and labled for assistive technology",
|
|
2753
|
-
"addSROnlyCSS": false,
|
|
2754
|
-
"saveSuccesses": true,
|
|
2755
|
-
"issueDescription": "Carousel pagination buttons, which are usually tiny dots indicating a slide option, are often used for operating carousels. However, if those aren't tagged and coded correctly for screen-readers, blind users won't be able to operate the carousel.",
|
|
2756
|
-
"issueResolution": "<p>For pagination buttons to be accessible, they should either be built as native buttons or use the role=button attribute. They should also include a screen-reader-only text or an \"aria-label\" to indicate the slide number they activate.</p>\n<pre class=\"language-html\"><code><button type=\"button\" aria-label=\"Carousel slide 1/2/3\">●</button>\n<button type=\"button\"><span class=\"sr-only\">Carousel slide 1/2/3</span>●</button></code></pre>",
|
|
2757
|
-
"suggestedFix": [
|
|
2758
|
-
{
|
|
2759
|
-
"suggestedFixType": "attribute",
|
|
2760
|
-
"suggestedFixKey": "role",
|
|
2761
|
-
"suggestedFixValue": "button",
|
|
2762
|
-
"suggestedFixHTML": ""
|
|
2763
|
-
},
|
|
2764
|
-
{
|
|
2765
|
-
"suggestedFixType": "attribute",
|
|
2766
|
-
"suggestedFixKey": "aria-label",
|
|
2767
|
-
"suggestedFixValue": "Carousel slide 1/2/3/4/5...",
|
|
2768
|
-
"suggestedFixHTML": ""
|
|
2769
|
-
}
|
|
2770
|
-
]
|
|
2771
|
-
},
|
|
2772
|
-
{
|
|
2773
|
-
"_id": {
|
|
2774
|
-
"$oid": "6204f4a6676c2425ec000533"
|
|
2775
|
-
},
|
|
2776
|
-
"name": "Viewport Scalability",
|
|
2777
|
-
"route": "viewport-scalability",
|
|
2778
|
-
"ordering": 9999999,
|
|
2779
|
-
"owner": {
|
|
2780
|
-
"value": {
|
|
2781
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2782
|
-
},
|
|
2783
|
-
"selected": null,
|
|
2784
|
-
"key": "name",
|
|
2785
|
-
"type": "standard",
|
|
2786
|
-
"collection": "users"
|
|
2787
|
-
},
|
|
2788
|
-
"enabled": true,
|
|
2789
|
-
"themeCtrl": null,
|
|
2790
|
-
"theme": {
|
|
2791
|
-
"value": null,
|
|
2792
|
-
"selected": null,
|
|
2793
|
-
"key": "name",
|
|
2794
|
-
"type": "standard",
|
|
2795
|
-
"collection": "themes"
|
|
2796
|
-
},
|
|
2797
|
-
"date": {
|
|
2798
|
-
"$date": "2022-02-10T11:17:48Z"
|
|
2799
|
-
},
|
|
2800
|
-
"modified": {
|
|
2801
|
-
"$date": "2022-03-27T18:49:01.44Z"
|
|
2802
|
-
},
|
|
2803
|
-
"shortCode": "viewportScalability",
|
|
2804
|
-
"severity": "extreme",
|
|
2805
|
-
"criteria": "document",
|
|
2806
|
-
"WCAGLevel": "AA",
|
|
2807
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C242%2C311%2C412%2C144#resize-text",
|
|
2808
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2809
|
-
"shortDescription": "Meta viewport tag should alow user scaling of at least 200%",
|
|
2810
|
-
"addSROnlyCSS": false,
|
|
2811
|
-
"saveSuccesses": true,
|
|
2812
|
-
"issueDescription": "The page needs to enable pinch-zoom and software Zoom for assistive technology - at least 200% the basic size without breaking the layout or clipping the content.",
|
|
2813
|
-
"issueResolution": "<p>The meta viewport enables the Zoom behavior by default if we provide correct values. Make sure the user-scalable portion of the attribute is set to yes, and that the maximum-scale portion is at least 2 (200%). Ideally, set it to 5.</p>\n<pre class=\"language-html\"><code><meta name=\"viewport\" content=\"width=device-width, user-scalable=yes, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0\"></code></pre>",
|
|
2814
|
-
"suggestedFix": []
|
|
2815
|
-
},
|
|
2816
|
-
{
|
|
2817
|
-
"_id": {
|
|
2818
|
-
"$oid": "62063347acb7f0495c5df399"
|
|
2819
|
-
},
|
|
2820
|
-
"name": "Captcha",
|
|
2821
|
-
"route": "captcha",
|
|
2822
|
-
"ordering": 9999999,
|
|
2823
|
-
"owner": {
|
|
2824
|
-
"value": {
|
|
2825
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2826
|
-
},
|
|
2827
|
-
"selected": null,
|
|
2828
|
-
"key": "name",
|
|
2829
|
-
"type": "standard",
|
|
2830
|
-
"collection": "users"
|
|
2831
|
-
},
|
|
2832
|
-
"enabled": true,
|
|
2833
|
-
"themeCtrl": null,
|
|
2834
|
-
"theme": {
|
|
2835
|
-
"value": null,
|
|
2836
|
-
"selected": null,
|
|
2837
|
-
"key": "name",
|
|
2838
|
-
"type": "standard",
|
|
2839
|
-
"collection": "themes"
|
|
2840
|
-
},
|
|
2841
|
-
"date": {
|
|
2842
|
-
"$date": "2022-02-11T09:57:56Z"
|
|
2843
|
-
},
|
|
2844
|
-
"modified": {
|
|
2845
|
-
"$date": "2022-02-26T00:52:23.181Z"
|
|
2846
|
-
},
|
|
2847
|
-
"shortCode": "captcha",
|
|
2848
|
-
"severity": "extreme",
|
|
2849
|
-
"criteria": "forms",
|
|
2850
|
-
"WCAGLevel": "A",
|
|
2851
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C412#non-text-content",
|
|
2852
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2853
|
-
"shortDescription": "Standard Captcha challanges must be replaced with Google Captcha",
|
|
2854
|
-
"addSROnlyCSS": false,
|
|
2855
|
-
"saveSuccesses": true,
|
|
2856
|
-
"issueDescription": "Standard Captcha mechanisms are inaccessible by design. Captchas are explicitly meant to be challenging to answer in order to trick bots. Standard Captchas prevent screen reader users from submitting the website's forms.",
|
|
2857
|
-
"issueResolution": "<p>Replace all standard Captcha fields with <strong>Google Recaptcha</strong> which is fully accessible for screen readers and assistive technology by default. Learn more about Google Recaptcha here: <a href=\"https://www.google.com/recaptcha/about/\" target=\"_blank\" rel=\"noopener\">https://www.google.com/recaptcha/about/</a></p>",
|
|
2858
|
-
"suggestedFix": []
|
|
2859
|
-
},
|
|
2860
|
-
{
|
|
2861
|
-
"_id": {
|
|
2862
|
-
"$oid": "62065005807c385bb8e74a81"
|
|
2863
|
-
},
|
|
2864
|
-
"name": "Broken Aria Labels",
|
|
2865
|
-
"route": "aria-label-misuse",
|
|
2866
|
-
"ordering": 9999999,
|
|
2867
|
-
"owner": {
|
|
2868
|
-
"value": {
|
|
2869
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2870
|
-
},
|
|
2871
|
-
"selected": null,
|
|
2872
|
-
"key": "name",
|
|
2873
|
-
"type": "standard",
|
|
2874
|
-
"collection": "users"
|
|
2875
|
-
},
|
|
2876
|
-
"enabled": true,
|
|
2877
|
-
"themeCtrl": null,
|
|
2878
|
-
"theme": {
|
|
2879
|
-
"value": null,
|
|
2880
|
-
"selected": null,
|
|
2881
|
-
"key": "name",
|
|
2882
|
-
"type": "standard",
|
|
2883
|
-
"collection": "themes"
|
|
2884
|
-
},
|
|
2885
|
-
"date": {
|
|
2886
|
-
"$date": "2022-02-11T12:00:36Z"
|
|
2887
|
-
},
|
|
2888
|
-
"modified": {
|
|
2889
|
-
"$date": "2022-02-26T20:28:04.291Z"
|
|
2890
|
-
},
|
|
2891
|
-
"shortCode": "brokenAriaLabels",
|
|
2892
|
-
"severity": "high",
|
|
2893
|
-
"criteria": "errors",
|
|
2894
|
-
"WCAGLevel": "A",
|
|
2895
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/label-in-name.html",
|
|
2896
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2897
|
-
"shortDescription": "Aria labels should not override or replace visible text",
|
|
2898
|
-
"addSROnlyCSS": true,
|
|
2899
|
-
"saveSuccesses": false,
|
|
2900
|
-
"issueDescription": "Aria labels should describe elements that don't have proper text, like icons and field labels. It should not be used to override element texts. Screen reader users need to receive the exact text as visually on the screen, with more context if it is ambiguous. An exception applies to landmarks such as <strong><nav></strong> or other landmarks: here, ARIA labels can provide additional context or clarification.",
|
|
2901
|
-
"issueResolution": "<p>Remove the <strong>aria-label. </strong>If you need to add context for screen reader users only because of the ambiguity of the text, use <strong>the screen-reader-only</strong> technique.</p>\n<pre class=\"language-html\"><code><span class=\"sr-only\">Additional context</span></code></pre>",
|
|
2902
|
-
"suggestedFix": []
|
|
2903
|
-
},
|
|
2904
|
-
{
|
|
2905
|
-
"_id": {
|
|
2906
|
-
"$oid": "6204ef98676c2425ec00052c"
|
|
2907
|
-
},
|
|
2908
|
-
"name": "Carousel Pausing",
|
|
2909
|
-
"route": "carousel-pausing",
|
|
2910
|
-
"ordering": 9999999,
|
|
2911
|
-
"owner": {
|
|
2912
|
-
"value": {
|
|
2913
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2914
|
-
},
|
|
2915
|
-
"selected": null,
|
|
2916
|
-
"key": "name",
|
|
2917
|
-
"type": "standard",
|
|
2918
|
-
"collection": "users"
|
|
2919
|
-
},
|
|
2920
|
-
"enabled": true,
|
|
2921
|
-
"themeCtrl": null,
|
|
2922
|
-
"theme": {
|
|
2923
|
-
"value": null,
|
|
2924
|
-
"selected": null,
|
|
2925
|
-
"key": "name",
|
|
2926
|
-
"type": "standard",
|
|
2927
|
-
"collection": "themes"
|
|
2928
|
-
},
|
|
2929
|
-
"date": {
|
|
2930
|
-
"$date": "2022-02-10T10:55:35Z"
|
|
2931
|
-
},
|
|
2932
|
-
"modified": {
|
|
2933
|
-
"$date": "2022-03-27T17:27:03.906Z"
|
|
2934
|
-
},
|
|
2935
|
-
"shortCode": "carouselPausing",
|
|
2936
|
-
"severity": "medium",
|
|
2937
|
-
"criteria": "carousels",
|
|
2938
|
-
"WCAGLevel": "A",
|
|
2939
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/#pause-stop-hide",
|
|
2940
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2941
|
-
"shortDescription": "Carousel should include a pause button",
|
|
2942
|
-
"addSROnlyCSS": false,
|
|
2943
|
-
"saveSuccesses": true,
|
|
2944
|
-
"issueDescription": "Carousels without a properly labeled button to allow users to pause may cause interference with assistive technology and loss of orientation for keyboard navigation users.",
|
|
2945
|
-
"issueResolution": "<p>Include a keyboard-navigable, labeled button that enables users to pause the carousel. If you do not want the button to be visible but only available for screen readers and keyboard users, you can hide it using the CSS opacity attribute (set to 0), and on focus, set the opacity to 1 to make it visible.</p>\n<pre class=\"language-html\"><code><button type=\"button\" class=\"pause-button\">Pause</button>\n<style>\n.pause-button {\n opacity: 0;\n}\n\n.pause-button:focus-visible {\n opacity: 1;\n}\n</style></code></pre>",
|
|
2946
|
-
"suggestedFix": []
|
|
2947
|
-
},
|
|
2948
|
-
{
|
|
2949
|
-
"_id": {
|
|
2950
|
-
"$oid": "62058b336199d73f9cf2aee1"
|
|
2951
|
-
},
|
|
2952
|
-
"name": "Tabs Tagging",
|
|
2953
|
-
"route": "tabs-tagging",
|
|
2954
|
-
"ordering": 9999999,
|
|
2955
|
-
"owner": {
|
|
2956
|
-
"value": {
|
|
2957
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
2958
|
-
},
|
|
2959
|
-
"selected": null,
|
|
2960
|
-
"key": "name",
|
|
2961
|
-
"type": "standard",
|
|
2962
|
-
"collection": "users"
|
|
2963
|
-
},
|
|
2964
|
-
"enabled": true,
|
|
2965
|
-
"themeCtrl": null,
|
|
2966
|
-
"theme": {
|
|
2967
|
-
"value": null,
|
|
2968
|
-
"selected": null,
|
|
2969
|
-
"key": "name",
|
|
2970
|
-
"type": "standard",
|
|
2971
|
-
"collection": "themes"
|
|
2972
|
-
},
|
|
2973
|
-
"date": {
|
|
2974
|
-
"$date": "2022-02-10T22:00:42Z"
|
|
2975
|
-
},
|
|
2976
|
-
"modified": {
|
|
2977
|
-
"$date": "2022-02-26T00:41:15.779Z"
|
|
2978
|
-
},
|
|
2979
|
-
"shortCode": "tabsTagging",
|
|
2980
|
-
"isAutoResolvable": true,
|
|
2981
|
-
"engineRules": [],
|
|
2982
|
-
"severity": "high",
|
|
2983
|
-
"criteria": "context",
|
|
2984
|
-
"WCAGLevel": "A",
|
|
2985
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html",
|
|
2986
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
2987
|
-
"shortDescription": "Tabs should be tagged properly for assistive technology",
|
|
2988
|
-
"addSROnlyCSS": false,
|
|
2989
|
-
"saveSuccesses": true,
|
|
2990
|
-
"issueDescription": "Tabs are a very popular way to provide information on demand. However, If tabs aren't adequately tagged and labeled, screen reader users will most likely miss the entire content hidden within the inactive tabs, never knowing additional information exists.",
|
|
2991
|
-
"issueResolution": "<p>Add <strong>role=tab</strong> to the buttons which trigger the tab functionality.</p>",
|
|
2992
|
-
"suggestedFix": [
|
|
2993
|
-
{
|
|
2994
|
-
"suggestedFixType": "attribute",
|
|
2995
|
-
"suggestedFixKey": "role",
|
|
2996
|
-
"suggestedFixValue": "tab",
|
|
2997
|
-
"suggestedFixHTML": ""
|
|
2998
|
-
}
|
|
2999
|
-
]
|
|
3000
|
-
},
|
|
3001
|
-
{
|
|
3002
|
-
"_id": {
|
|
3003
|
-
"$oid": "62058b63acb7f0495c5df397"
|
|
3004
|
-
},
|
|
3005
|
-
"name": "Tab Panel Tagging",
|
|
3006
|
-
"route": "tab-panel-tagging",
|
|
3007
|
-
"ordering": 9999999,
|
|
3008
|
-
"owner": {
|
|
3009
|
-
"value": {
|
|
3010
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3011
|
-
},
|
|
3012
|
-
"selected": null,
|
|
3013
|
-
"key": "name",
|
|
3014
|
-
"type": "standard",
|
|
3015
|
-
"collection": "users"
|
|
3016
|
-
},
|
|
3017
|
-
"enabled": true,
|
|
3018
|
-
"themeCtrl": null,
|
|
3019
|
-
"theme": {
|
|
3020
|
-
"value": null,
|
|
3021
|
-
"selected": null,
|
|
3022
|
-
"key": "name",
|
|
3023
|
-
"type": "standard",
|
|
3024
|
-
"collection": "themes"
|
|
3025
|
-
},
|
|
3026
|
-
"date": {
|
|
3027
|
-
"$date": "2022-02-10T22:01:37Z"
|
|
3028
|
-
},
|
|
3029
|
-
"modified": {
|
|
3030
|
-
"$date": "2022-02-26T00:48:20.411Z"
|
|
3031
|
-
},
|
|
3032
|
-
"shortCode": "tabPanelTagging",
|
|
3033
|
-
"isAutoResolvable": true,
|
|
3034
|
-
"engineRules": [],
|
|
3035
|
-
"severity": "high",
|
|
3036
|
-
"criteria": "context",
|
|
3037
|
-
"WCAGLevel": "A",
|
|
3038
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
3039
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3040
|
-
"shortDescription": "Tab panels should be tagged for assistive technology",
|
|
3041
|
-
"addSROnlyCSS": false,
|
|
3042
|
-
"saveSuccesses": true,
|
|
3043
|
-
"issueDescription": "Tagging the tab triggers is essential but isn't enough. The tag panels should also be tagged appropriately to provide context. Otherwise, screen reader users won't know if the content being read is part of the tab functionality or just random text on the page.",
|
|
3044
|
-
"issueResolution": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.",
|
|
3045
|
-
"suggestedFix": [
|
|
3046
|
-
{
|
|
3047
|
-
"suggestedFixType": "attribute",
|
|
3048
|
-
"suggestedFixKey": "role",
|
|
3049
|
-
"suggestedFixValue": "tabpanel",
|
|
3050
|
-
"suggestedFixHTML": ""
|
|
3051
|
-
}
|
|
3052
|
-
]
|
|
3053
|
-
},
|
|
3054
|
-
{
|
|
3055
|
-
"_id": {
|
|
3056
|
-
"$oid": "6206341dacb7f0495c5df39f"
|
|
3057
|
-
},
|
|
3058
|
-
"name": "Custom Select Field",
|
|
3059
|
-
"route": "custom-select-field",
|
|
3060
|
-
"ordering": 9999999,
|
|
3061
|
-
"owner": {
|
|
3062
|
-
"value": {
|
|
3063
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3064
|
-
},
|
|
3065
|
-
"selected": null,
|
|
3066
|
-
"key": "name",
|
|
3067
|
-
"type": "standard",
|
|
3068
|
-
"collection": "users"
|
|
3069
|
-
},
|
|
3070
|
-
"enabled": true,
|
|
3071
|
-
"themeCtrl": null,
|
|
3072
|
-
"theme": {
|
|
3073
|
-
"value": null,
|
|
3074
|
-
"selected": null,
|
|
3075
|
-
"key": "name",
|
|
3076
|
-
"type": "standard",
|
|
3077
|
-
"collection": "themes"
|
|
3078
|
-
},
|
|
3079
|
-
"date": {
|
|
3080
|
-
"$date": "2022-02-11T10:01:46Z"
|
|
3081
|
-
},
|
|
3082
|
-
"modified": {
|
|
3083
|
-
"$date": "2022-02-26T15:51:47.328Z"
|
|
3084
|
-
},
|
|
3085
|
-
"shortCode": "customSelectField",
|
|
3086
|
-
"severity": "high",
|
|
3087
|
-
"criteria": "forms",
|
|
3088
|
-
"WCAGLevel": "A",
|
|
3089
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html",
|
|
3090
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3091
|
-
"shortDescription": "Custom select fields should be made accessible",
|
|
3092
|
-
"addSROnlyCSS": true,
|
|
3093
|
-
"saveSuccesses": true,
|
|
3094
|
-
"issueDescription": "Screen readers have built-in mechanisms to handle select fields. By default, assistive technology does not support custom select fields, and using those may prevent screen reader users from interacting with the fields. ",
|
|
3095
|
-
"issueResolution": "<p>Create a standard select field with all the options and make it available only for screen readers using the <strong>screen reader only </strong>technique. Then, hide the custom select box from screen readers using <strong>aria-hidden=true.</strong> Don't forget to add the same functionality to this hidden field as your custom one.</p>\n<p> Using this method, screen readers will not \"see\" the custom field but will see the standard one and interact with it regularly.</p>\n<pre class=\"language-html\"><code><div class=\"custom-select\" aria-hidden=\"true\">\n <ul>\n <li>Option 1</li>\n <li>Option 2</li>\n <li>Option 3</li>\n </ul>\n</div>\n<select class=\"sr-only\">\n <option>Option 1</option>\n <option>Option 2</option>\n <option>Option 3</option>\n</select></code></pre>",
|
|
3096
|
-
"suggestedFix": []
|
|
3097
|
-
},
|
|
3098
|
-
{
|
|
3099
|
-
"_id": {
|
|
3100
|
-
"$oid": "620640d544306b15b4367a3a"
|
|
3101
|
-
},
|
|
3102
|
-
"name": "Submenu Operability",
|
|
3103
|
-
"route": "submenu-operability",
|
|
3104
|
-
"ordering": 9999999,
|
|
3105
|
-
"owner": {
|
|
3106
|
-
"value": {
|
|
3107
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3108
|
-
},
|
|
3109
|
-
"selected": null,
|
|
3110
|
-
"key": "name",
|
|
3111
|
-
"type": "standard",
|
|
3112
|
-
"collection": "users"
|
|
3113
|
-
},
|
|
3114
|
-
"enabled": true,
|
|
3115
|
-
"themeCtrl": null,
|
|
3116
|
-
"theme": {
|
|
3117
|
-
"value": null,
|
|
3118
|
-
"selected": null,
|
|
3119
|
-
"key": "name",
|
|
3120
|
-
"type": "standard",
|
|
3121
|
-
"collection": "themes"
|
|
3122
|
-
},
|
|
3123
|
-
"date": {
|
|
3124
|
-
"$date": "2022-02-11T10:55:50Z"
|
|
3125
|
-
},
|
|
3126
|
-
"modified": {
|
|
3127
|
-
"$date": "2022-02-26T17:16:44.43Z"
|
|
3128
|
-
},
|
|
3129
|
-
"shortCode": "submenuOperability",
|
|
3130
|
-
"severity": "high",
|
|
3131
|
-
"criteria": "navigation",
|
|
3132
|
-
"WCAGLevel": "A",
|
|
3133
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211#keyboard-accessible",
|
|
3134
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3135
|
-
"shortDescription": "Sub-menu should open and close using the Enter key",
|
|
3136
|
-
"addSROnlyCSS": false,
|
|
3137
|
-
"saveSuccesses": true,
|
|
3138
|
-
"issueDescription": "Clicking Enter when a menu item with a sub-menu is focused should open the sub-menu. A second click should close it. If sub-menus are not operable using the keyboard, screen reader and keyboard users may miss a significant part of the website.",
|
|
3139
|
-
"issueResolution": "<p>Enable opening and closing sub-menus using the Enter key. If the menu item is a link, disable the link's behavior. Otherwise, rather than opening the menu, users will be redirected). However, make sure there's a link within the sub-menu that will take users to the designated menu item link that has been disabled. This menu item can be a <strong>screen-reader-only</strong> link.</p>",
|
|
3140
|
-
"suggestedFix": []
|
|
3141
|
-
},
|
|
3142
|
-
{
|
|
3143
|
-
"_id": {
|
|
3144
|
-
"$oid": "62065206b0b1184e88c8382b"
|
|
3145
|
-
},
|
|
3146
|
-
"name": "Marquee",
|
|
3147
|
-
"route": "marquee",
|
|
3148
|
-
"ordering": 9999999,
|
|
3149
|
-
"owner": {
|
|
3150
|
-
"value": {
|
|
3151
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3152
|
-
},
|
|
3153
|
-
"selected": null,
|
|
3154
|
-
"key": "name",
|
|
3155
|
-
"type": "standard",
|
|
3156
|
-
"collection": "users"
|
|
3157
|
-
},
|
|
3158
|
-
"enabled": true,
|
|
3159
|
-
"themeCtrl": null,
|
|
3160
|
-
"theme": {
|
|
3161
|
-
"value": null,
|
|
3162
|
-
"selected": null,
|
|
3163
|
-
"key": "name",
|
|
3164
|
-
"type": "standard",
|
|
3165
|
-
"collection": "themes"
|
|
3166
|
-
},
|
|
3167
|
-
"date": {
|
|
3168
|
-
"$date": "2022-02-11T12:09:22Z"
|
|
3169
|
-
},
|
|
3170
|
-
"modified": {
|
|
3171
|
-
"$date": "2022-02-26T20:49:43.38Z"
|
|
3172
|
-
},
|
|
3173
|
-
"shortCode": "marquee",
|
|
3174
|
-
"severity": "medium",
|
|
3175
|
-
"criteria": "errors",
|
|
3176
|
-
"WCAGLevel": "none",
|
|
3177
|
-
"issueWCAGLink": "-",
|
|
3178
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3179
|
-
"shortDescription": "Marquee elements are deprecated and should not be used",
|
|
3180
|
-
"addSROnlyCSS": false,
|
|
3181
|
-
"saveSuccesses": true,
|
|
3182
|
-
"issueDescription": "Marquee HTML tags are not supported in the HTML language anymore and therefore are also no longer supported by screen readers and should be removed.",
|
|
3183
|
-
"issueResolution": "<p>Remove the <strong>marquee</strong> element and use a different method of animating text like carousels or <strong>CSS transitions and animations.</strong></p>",
|
|
3184
|
-
"suggestedFix": []
|
|
3185
|
-
},
|
|
3186
|
-
{
|
|
3187
|
-
"_id": {
|
|
3188
|
-
"$oid": "620652f3b0b1184e88c8382e"
|
|
3189
|
-
},
|
|
3190
|
-
"name": "Keyboard Hoverables",
|
|
3191
|
-
"route": "keyboard-hoverables",
|
|
3192
|
-
"ordering": 9999999,
|
|
3193
|
-
"owner": {
|
|
3194
|
-
"value": {
|
|
3195
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3196
|
-
},
|
|
3197
|
-
"selected": null,
|
|
3198
|
-
"key": "name",
|
|
3199
|
-
"type": "standard",
|
|
3200
|
-
"collection": "users"
|
|
3201
|
-
},
|
|
3202
|
-
"enabled": true,
|
|
3203
|
-
"themeCtrl": null,
|
|
3204
|
-
"theme": {
|
|
3205
|
-
"value": null,
|
|
3206
|
-
"selected": null,
|
|
3207
|
-
"key": "name",
|
|
3208
|
-
"type": "standard",
|
|
3209
|
-
"collection": "themes"
|
|
3210
|
-
},
|
|
3211
|
-
"date": {
|
|
3212
|
-
"$date": "2022-02-11T12:12:53Z"
|
|
3213
|
-
},
|
|
3214
|
-
"modified": {
|
|
3215
|
-
"$date": "2022-02-27T12:49:50.748Z"
|
|
3216
|
-
},
|
|
3217
|
-
"shortCode": "keyboardHoverables",
|
|
3218
|
-
"severity": "high",
|
|
3219
|
-
"criteria": "keyboard",
|
|
3220
|
-
"WCAGLevel": "A",
|
|
3221
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/keyboard.html",
|
|
3222
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3223
|
-
"shortDescription": "Mouse hoverables should receive keyboard focus no function the same as with the mouse",
|
|
3224
|
-
"addSROnlyCSS": false,
|
|
3225
|
-
"saveSuccesses": true,
|
|
3226
|
-
"issueDescription": "Elements that appear or change behavior on mouse hover should also appear on keyboard focus and provide the same functionality. Otherwise, keyboard users will not be able to interact with those elements.",
|
|
3227
|
-
"issueResolution": "<p>As a general rule of thumb, it is best practice to avoid providing functionality only on mouse hover. The biggest reason for that is touch screens like mobile devices and tablets (and many laptops). Touch input does not include a hover functionality because the interaction isn't with a mouse. This is also true for accessibility - keyboards and assistive technology do not have a \"hover\" functionality.</p>\n<p>If you still wish to include hover functionality, in order to make it accessible, you'll need to use JavaScript rather than CSS to make it work. Using JavaScript, add a <strong>focusing </strong>event to the hoverable element to catch when it is being focused using the keyboard (don't forget to give it <strong>tabindex=0</strong>). Then, add a class, and make the hover CSS apply to that class as well. Lastly, add a <strong>focusout </strong>event to remove the class when the element is no longer focused.</p>\n<p>You can copy and paste the below JavaScript code, but make sure to include your actual selectors instead of the <strong>\".your-hoverable-selector\"</strong> and <strong>\".your-hoverable-class\" </strong>texts.</p>\n<pre class=\"language-javascript\"><code>document.addEventListener('focusin', e => {\n if( e.target.closest('.your-hoverable-selector') ) e.target.classList.add('.your-hoverable-class'); \n});\n\ndocument.addEventListener('focusout', e => {\n if( ! e.target.matches('.your-hoverable-selector') || ) e.target.parentElement.closest('.your-hoverable-selector') ) return;\n e.target.classList.remove('.your-hoverable-class');\n});</code></pre>",
|
|
3228
|
-
"suggestedFix": []
|
|
3229
|
-
},
|
|
3230
|
-
{
|
|
3231
|
-
"_id": {
|
|
3232
|
-
"$oid": "6204ee3e676c2425ec00052b"
|
|
3233
|
-
},
|
|
3234
|
-
"name": "Carousel Arrows",
|
|
3235
|
-
"route": "carousel-arrows",
|
|
3236
|
-
"ordering": 9999999,
|
|
3237
|
-
"owner": {
|
|
3238
|
-
"value": {
|
|
3239
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3240
|
-
},
|
|
3241
|
-
"selected": null,
|
|
3242
|
-
"key": "name",
|
|
3243
|
-
"type": "standard",
|
|
3244
|
-
"collection": "users"
|
|
3245
|
-
},
|
|
3246
|
-
"enabled": true,
|
|
3247
|
-
"themeCtrl": null,
|
|
3248
|
-
"theme": {
|
|
3249
|
-
"value": null,
|
|
3250
|
-
"selected": null,
|
|
3251
|
-
"key": "name",
|
|
3252
|
-
"type": "standard",
|
|
3253
|
-
"collection": "themes"
|
|
3254
|
-
},
|
|
3255
|
-
"date": {
|
|
3256
|
-
"$date": "2022-02-10T10:49:56Z"
|
|
3257
|
-
},
|
|
3258
|
-
"modified": {
|
|
3259
|
-
"$date": "2022-03-27T17:26:43.887Z"
|
|
3260
|
-
},
|
|
3261
|
-
"shortCode": "carouselArrows",
|
|
3262
|
-
"isAutoResolvable": true,
|
|
3263
|
-
"engineRules": [],
|
|
3264
|
-
"severity": "high",
|
|
3265
|
-
"criteria": "carousels",
|
|
3266
|
-
"WCAGLevel": "A",
|
|
3267
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html",
|
|
3268
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3269
|
-
"shortDescription": "Carousel navigation arrows should be labled for assistive technology",
|
|
3270
|
-
"addSROnlyCSS": false,
|
|
3271
|
-
"saveSuccesses": true,
|
|
3272
|
-
"issueDescription": "Carousel arrow buttons (next/previous slides) are essential for operating carousels. By design, carousels are difficult for assistive technology to handle. If the navigation arrows aren't accessible, carousels may be impossible for blind users to operate.",
|
|
3273
|
-
"issueResolution": "<p>Build the arrow buttons using a <strong>button </strong>tag. Alternatively, use the ARIA-role (<strong>role=button</strong>) attribute to mark those as buttons for assistive technology. Additionally, include an <strong>aria-label</strong> or a screen-reader-only text describing the functionality of the button.</p>\n<pre class=\"language-html\"><code><button type=\"button\" aria-label=\"Next/Previous\">... YOUR ARROW ICON</button>\n<button type=\"button\"><span class=\"sr-only\">Next/Previous</span>... YOUR ARROW ICON</button></code></pre>",
|
|
3274
|
-
"suggestedFix": [
|
|
3275
|
-
{
|
|
3276
|
-
"suggestedFixType": "attribute",
|
|
3277
|
-
"suggestedFixKey": "role",
|
|
3278
|
-
"suggestedFixValue": "button",
|
|
3279
|
-
"suggestedFixHTML": ""
|
|
3280
|
-
},
|
|
3281
|
-
{
|
|
3282
|
-
"suggestedFixType": "srOnly",
|
|
3283
|
-
"suggestedFixKey": "",
|
|
3284
|
-
"suggestedFixValue": "{suggestion}",
|
|
3285
|
-
"suggestedFixHTML": ""
|
|
3286
|
-
}
|
|
3287
|
-
]
|
|
3288
|
-
},
|
|
3289
|
-
{
|
|
3290
|
-
"_id": {
|
|
3291
|
-
"$oid": "6205712e6199d73f9cf2aecc"
|
|
3292
|
-
},
|
|
3293
|
-
"name": "Alt Text",
|
|
3294
|
-
"route": "alt-text",
|
|
3295
|
-
"ordering": 9999999,
|
|
3296
|
-
"owner": {
|
|
3297
|
-
"value": {
|
|
3298
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3299
|
-
},
|
|
3300
|
-
"selected": null,
|
|
3301
|
-
"key": "name",
|
|
3302
|
-
"type": "standard",
|
|
3303
|
-
"collection": "users"
|
|
3304
|
-
},
|
|
3305
|
-
"enabled": true,
|
|
3306
|
-
"themeCtrl": null,
|
|
3307
|
-
"theme": {
|
|
3308
|
-
"value": null,
|
|
3309
|
-
"selected": null,
|
|
3310
|
-
"key": "name",
|
|
3311
|
-
"type": "standard",
|
|
3312
|
-
"collection": "themes"
|
|
3313
|
-
},
|
|
3314
|
-
"date": {
|
|
3315
|
-
"$date": "2022-02-10T20:09:24Z"
|
|
3316
|
-
},
|
|
3317
|
-
"modified": {
|
|
3318
|
-
"$date": "2022-03-27T18:50:58.772Z"
|
|
3319
|
-
},
|
|
3320
|
-
"shortCode": "altText",
|
|
3321
|
-
"severity": "medium",
|
|
3322
|
-
"criteria": "graphics",
|
|
3323
|
-
"WCAGLevel": "A",
|
|
3324
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C412#non-text-content",
|
|
3325
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3326
|
-
"shortDescription": "Images should include alt text or if decorative, be excluded from screen readers",
|
|
3327
|
-
"addSROnlyCSS": false,
|
|
3328
|
-
"saveSuccesses": false,
|
|
3329
|
-
"issueDescription": "Images that lack proper alternative text descriptions will be read as \"unlabeled graphics\" to screen reader users. This prevents screen reader users with visual impairments from getting the full context of a web page and interacting with it fully.",
|
|
3330
|
-
"issueResolution": "<p>Provide a descriptive <strong>alt </strong>attribute to your images. The alt must include the text that is embedded within the image, often used in banners to provide information about sales, and the objects that comprise the image.</p>\n<p>If the image is decorative and does not provide any specific information or additional context, or the content of the image is provided in the text surrounding it (like an image of a product that has information about it all over the page), exclude it from screen readers using <strong>role=presentation.</strong></p>\n<pre class=\"language-html\"><code><img src=\"...\" alt=\"50% OFF all shoes shop now. Close up of a black Nike shoe.\">\n<img src=\"...\" role=\"presentation\"></code></pre>",
|
|
3331
|
-
"suggestedFix": []
|
|
3332
|
-
},
|
|
3333
|
-
{
|
|
3334
|
-
"_id": {
|
|
3335
|
-
"$oid": "620574356199d73f9cf2aed8"
|
|
3336
|
-
},
|
|
3337
|
-
"name": "Row Table Headers",
|
|
3338
|
-
"route": "row-table-headers",
|
|
3339
|
-
"ordering": 9999999,
|
|
3340
|
-
"owner": {
|
|
3341
|
-
"value": {
|
|
3342
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3343
|
-
},
|
|
3344
|
-
"selected": null,
|
|
3345
|
-
"key": "name",
|
|
3346
|
-
"type": "standard",
|
|
3347
|
-
"collection": "users"
|
|
3348
|
-
},
|
|
3349
|
-
"enabled": true,
|
|
3350
|
-
"themeCtrl": null,
|
|
3351
|
-
"theme": {
|
|
3352
|
-
"value": null,
|
|
3353
|
-
"selected": null,
|
|
3354
|
-
"key": "name",
|
|
3355
|
-
"type": "standard",
|
|
3356
|
-
"collection": "themes"
|
|
3357
|
-
},
|
|
3358
|
-
"date": {
|
|
3359
|
-
"$date": "2022-02-10T20:22:45Z"
|
|
3360
|
-
},
|
|
3361
|
-
"modified": {
|
|
3362
|
-
"$date": "2022-02-25T20:06:44.442Z"
|
|
3363
|
-
},
|
|
3364
|
-
"shortCode": "rowTableHeaders",
|
|
3365
|
-
"isAutoResolvable": true,
|
|
3366
|
-
"engineRules": [
|
|
3367
|
-
"table-row-header"
|
|
3368
|
-
],
|
|
3369
|
-
"severity": "high",
|
|
3370
|
-
"criteria": "tables",
|
|
3371
|
-
"WCAGLevel": "A",
|
|
3372
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
3373
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3374
|
-
"shortDescription": "Row table headers should be tagged properly for assistive technology",
|
|
3375
|
-
"addSROnlyCSS": false,
|
|
3376
|
-
"saveSuccesses": true,
|
|
3377
|
-
"issueDescription": "Assistive technology users rely on properly coded table headers to consume table information. Tables with row headers that aren't appropriately coded will be complex for screen reader users to browse and read.",
|
|
3378
|
-
"issueResolution": "<p>If your table has row headers, add the <strong>role=rowheader</strong> attribute to indicate that to assistive technology like in the example below:</p>\n<pre class=\"language-html\"><code><table>\n <thead>\n <tr>\n <th>I'm a column header</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td role=\"rowheader\">I'm a row header</td>\n <td>I'm a regular cell</td>\n </tr>\n </tbody>\n</table></code></pre>",
|
|
3379
|
-
"suggestedFix": [
|
|
3380
|
-
{
|
|
3381
|
-
"suggestedFixType": "attribute",
|
|
3382
|
-
"suggestedFixKey": "role",
|
|
3383
|
-
"suggestedFixValue": "rowheader",
|
|
3384
|
-
"suggestedFixHTML": ""
|
|
3385
|
-
}
|
|
3386
|
-
]
|
|
3387
|
-
},
|
|
3388
|
-
{
|
|
3389
|
-
"_id": {
|
|
3390
|
-
"$oid": "62058b88acb7f0495c5df398"
|
|
3391
|
-
},
|
|
3392
|
-
"name": "Popup Tagging",
|
|
3393
|
-
"route": "popup-tagging",
|
|
3394
|
-
"ordering": 9999999,
|
|
3395
|
-
"owner": {
|
|
3396
|
-
"value": {
|
|
3397
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3398
|
-
},
|
|
3399
|
-
"selected": null,
|
|
3400
|
-
"key": "name",
|
|
3401
|
-
"type": "standard",
|
|
3402
|
-
"collection": "users"
|
|
3403
|
-
},
|
|
3404
|
-
"enabled": true,
|
|
3405
|
-
"themeCtrl": null,
|
|
3406
|
-
"theme": {
|
|
3407
|
-
"value": null,
|
|
3408
|
-
"selected": null,
|
|
3409
|
-
"key": "name",
|
|
3410
|
-
"type": "standard",
|
|
3411
|
-
"collection": "themes"
|
|
3412
|
-
},
|
|
3413
|
-
"date": {
|
|
3414
|
-
"$date": "2022-02-10T22:02:11Z"
|
|
3415
|
-
},
|
|
3416
|
-
"modified": {
|
|
3417
|
-
"$date": "2022-03-08T13:29:24.466Z"
|
|
3418
|
-
},
|
|
3419
|
-
"shortCode": "popupTagging",
|
|
3420
|
-
"isAutoResolvable": true,
|
|
3421
|
-
"engineRules": [],
|
|
3422
|
-
"severity": "extreme",
|
|
3423
|
-
"criteria": "context",
|
|
3424
|
-
"WCAGLevel": "A",
|
|
3425
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
3426
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3427
|
-
"shortDescription": "Popups should be tagged properly for assistive technology",
|
|
3428
|
-
"addSROnlyCSS": false,
|
|
3429
|
-
"saveSuccesses": true,
|
|
3430
|
-
"issueDescription": "Popups are essential to get right because inaccessible popups can often block the entire functionality of the page and render the website unusable for keyboard and assistive technology users.",
|
|
3431
|
-
"issueResolution": "<p>Add the <strong>aria-modal=true </strong>alongside the <strong>role=dialog</strong> like in the example below to indicate to screen readers that this element is indeed a popup. Screen readers will recognize this and enable specific assistive technology functionality to help the user navigate within the popup and lock the screen-reader virtual focus into the popup itself.</p>\n<pre class=\"language-html\"><code><div class=\"my-popup\" role=\"dialog\" aria-modal=\"true\">...</div></code></pre>",
|
|
3432
|
-
"suggestedFix": [
|
|
3433
|
-
{
|
|
3434
|
-
"suggestedFixType": "attribute",
|
|
3435
|
-
"suggestedFixKey": "aria-modal",
|
|
3436
|
-
"suggestedFixValue": "true",
|
|
3437
|
-
"suggestedFixHTML": ""
|
|
3438
|
-
},
|
|
3439
|
-
{
|
|
3440
|
-
"suggestedFixType": "attribute",
|
|
3441
|
-
"suggestedFixKey": "role",
|
|
3442
|
-
"suggestedFixValue": "dialog",
|
|
3443
|
-
"suggestedFixHTML": ""
|
|
3444
|
-
}
|
|
3445
|
-
]
|
|
3446
|
-
},
|
|
3447
|
-
{
|
|
3448
|
-
"_id": {
|
|
3449
|
-
"$oid": "6206343dacb7f0495c5df3a0"
|
|
3450
|
-
},
|
|
3451
|
-
"name": "Search Form Tagging",
|
|
3452
|
-
"route": "search-form-tagging",
|
|
3453
|
-
"ordering": 9999999,
|
|
3454
|
-
"owner": {
|
|
3455
|
-
"value": {
|
|
3456
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3457
|
-
},
|
|
3458
|
-
"selected": null,
|
|
3459
|
-
"key": "name",
|
|
3460
|
-
"type": "standard",
|
|
3461
|
-
"collection": "users"
|
|
3462
|
-
},
|
|
3463
|
-
"enabled": true,
|
|
3464
|
-
"themeCtrl": null,
|
|
3465
|
-
"theme": {
|
|
3466
|
-
"value": null,
|
|
3467
|
-
"selected": null,
|
|
3468
|
-
"key": "name",
|
|
3469
|
-
"type": "standard",
|
|
3470
|
-
"collection": "themes"
|
|
3471
|
-
},
|
|
3472
|
-
"date": {
|
|
3473
|
-
"$date": "2022-02-11T10:02:05Z"
|
|
3474
|
-
},
|
|
3475
|
-
"modified": {
|
|
3476
|
-
"$date": "2022-02-26T12:17:25.099Z"
|
|
3477
|
-
},
|
|
3478
|
-
"shortCode": "searchFormTagging",
|
|
3479
|
-
"isAutoResolvable": true,
|
|
3480
|
-
"engineRules": [
|
|
3481
|
-
"search-form-mismatch"
|
|
3482
|
-
],
|
|
3483
|
-
"severity": "medium",
|
|
3484
|
-
"criteria": "forms",
|
|
3485
|
-
"WCAGLevel": "A",
|
|
3486
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131#info-and-relationships",
|
|
3487
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3488
|
-
"shortDescription": "Search forms should be tagged as landmarks",
|
|
3489
|
-
"addSROnlyCSS": false,
|
|
3490
|
-
"saveSuccesses": true,
|
|
3491
|
-
"issueDescription": "Screen reader users have different controls to help them browse directly to specific elements on the page while skipping other, less critical, or page-repetitive elements like the menu. The search is one such landmark that should be appropriately tagged.",
|
|
3492
|
-
"issueResolution": "<p>Add the <strong>role=search</strong> attributes to the wrapping element of the <strong>FORM</strong> tag (as long as it still is the search form only). If the form does not have a wrapping element, it is recommended to add one. Otherwise, include the <strong>role=search</strong> on the form tag itself, although it's less recommended because it overrides the basic form role of the element.</p>",
|
|
3493
|
-
"suggestedFix": [
|
|
3494
|
-
{
|
|
3495
|
-
"suggestedFixType": "attribute",
|
|
3496
|
-
"suggestedFixKey": "role",
|
|
3497
|
-
"suggestedFixValue": "search",
|
|
3498
|
-
"suggestedFixHTML": ""
|
|
3499
|
-
}
|
|
3500
|
-
]
|
|
3501
|
-
},
|
|
3502
|
-
{
|
|
3503
|
-
"_id": {
|
|
3504
|
-
"$oid": "6206517fb0b1184e88c83827"
|
|
3505
|
-
},
|
|
3506
|
-
"name": "Role Applications",
|
|
3507
|
-
"route": "role-applications",
|
|
3508
|
-
"ordering": 9999999,
|
|
3509
|
-
"owner": {
|
|
3510
|
-
"value": {
|
|
3511
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3512
|
-
},
|
|
3513
|
-
"selected": null,
|
|
3514
|
-
"key": "name",
|
|
3515
|
-
"type": "standard",
|
|
3516
|
-
"collection": "users"
|
|
3517
|
-
},
|
|
3518
|
-
"enabled": true,
|
|
3519
|
-
"themeCtrl": null,
|
|
3520
|
-
"theme": {
|
|
3521
|
-
"value": null,
|
|
3522
|
-
"selected": null,
|
|
3523
|
-
"key": "name",
|
|
3524
|
-
"type": "standard",
|
|
3525
|
-
"collection": "themes"
|
|
3526
|
-
},
|
|
3527
|
-
"date": {
|
|
3528
|
-
"$date": "2022-02-11T12:06:52Z"
|
|
3529
|
-
},
|
|
3530
|
-
"modified": {
|
|
3531
|
-
"$date": "2022-02-26T20:46:12.159Z"
|
|
3532
|
-
},
|
|
3533
|
-
"shortCode": "roleApplications",
|
|
3534
|
-
"isAutoResolvable": true,
|
|
3535
|
-
"engineRules": [
|
|
3536
|
-
"no-role-application"
|
|
3537
|
-
],
|
|
3538
|
-
"severity": "extreme",
|
|
3539
|
-
"criteria": "errors",
|
|
3540
|
-
"WCAGLevel": "none",
|
|
3541
|
-
"issueWCAGLink": "-",
|
|
3542
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3543
|
-
"shortDescription": "Avoid using role applications",
|
|
3544
|
-
"addSROnlyCSS": false,
|
|
3545
|
-
"saveSuccesses": true,
|
|
3546
|
-
"issueDescription": "The role application attribute completely overrides and changes the screen reader behavior on the page. This will force users to figure out how to interact with your pages differently than they are used to.",
|
|
3547
|
-
"issueResolution": "<p>Remove the <strong>role=application.</strong></p>",
|
|
3548
|
-
"suggestedFix": [
|
|
3549
|
-
{
|
|
3550
|
-
"suggestedFixType": "removeAttribute",
|
|
3551
|
-
"suggestedFixKey": "",
|
|
3552
|
-
"suggestedFixValue": "role",
|
|
3553
|
-
"suggestedFixHTML": ""
|
|
3554
|
-
}
|
|
3555
|
-
]
|
|
3556
|
-
},
|
|
3557
|
-
{
|
|
3558
|
-
"_id": {
|
|
3559
|
-
"$oid": "6206542cb0b1184e88c83836"
|
|
3560
|
-
},
|
|
3561
|
-
"name": "Fake Hidden Interactive",
|
|
3562
|
-
"route": "fake-hidden-interactive",
|
|
3563
|
-
"ordering": 9999999,
|
|
3564
|
-
"owner": {
|
|
3565
|
-
"value": {
|
|
3566
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3567
|
-
},
|
|
3568
|
-
"selected": null,
|
|
3569
|
-
"key": "name",
|
|
3570
|
-
"type": "standard",
|
|
3571
|
-
"collection": "users"
|
|
3572
|
-
},
|
|
3573
|
-
"enabled": true,
|
|
3574
|
-
"themeCtrl": null,
|
|
3575
|
-
"theme": {
|
|
3576
|
-
"value": null,
|
|
3577
|
-
"selected": null,
|
|
3578
|
-
"key": "name",
|
|
3579
|
-
"type": "standard",
|
|
3580
|
-
"collection": "themes"
|
|
3581
|
-
},
|
|
3582
|
-
"date": {
|
|
3583
|
-
"$date": "2022-02-11T12:18:26Z"
|
|
3584
|
-
},
|
|
3585
|
-
"modified": {
|
|
3586
|
-
"$date": "2022-02-27T17:30:02.293Z"
|
|
3587
|
-
},
|
|
3588
|
-
"shortCode": "fakeHiddenInteractive",
|
|
3589
|
-
"severity": "extreme",
|
|
3590
|
-
"criteria": "keyboard",
|
|
3591
|
-
"WCAGLevel": "A",
|
|
3592
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html",
|
|
3593
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3594
|
-
"shortDescription": "Visually hidden elements should not receive keyboard focus",
|
|
3595
|
-
"addSROnlyCSS": false,
|
|
3596
|
-
"saveSuccesses": true,
|
|
3597
|
-
"issueDescription": "Hiding elements on screen using any other method than display=none or visibility=hidden keeps them keyboard-navigable. Therefore when users navigate, they'll focus on those elements but won't see anything focused on-page and lose orientation.",
|
|
3598
|
-
"issueResolution": "<p>If you are hiding elements using <strong>opacity, size, positioning,</strong> or any other CSS method other than <strong>display=none or visibility=hidden,</strong> add all interactive elements inside this \"hidden\" element <strong>tabindex=-1</strong>. This includes links, buttons, and form fields.</p>\n<p>When this \"hidden\" element becomes visible on screen, remove the <strong>tabindex=-1</strong> for any native links, buttons, and form fields in it (those elements are keyboard navigable by default), and add <strong>tabindex=0</strong> to interactive elements that aren't coded as links or buttons link <strong>SPAN, DIV, I</strong> and other interactive elements bound by JS.</p>\n<pre class=\"language-html\"><code><a href=\"...\" tabindex=\"-1\">This link will not be keyboard navigable</a></code></pre>",
|
|
3599
|
-
"suggestedFix": [
|
|
3600
|
-
{
|
|
3601
|
-
"suggestedFixType": "attribute",
|
|
3602
|
-
"suggestedFixKey": "tabindex",
|
|
3603
|
-
"suggestedFixValue": "-1",
|
|
3604
|
-
"suggestedFixHTML": ""
|
|
3605
|
-
}
|
|
3606
|
-
]
|
|
3607
|
-
},
|
|
3608
|
-
{
|
|
3609
|
-
"_id": {
|
|
3610
|
-
"$oid": "6204f1ae676c2425ec000530"
|
|
3611
|
-
},
|
|
3612
|
-
"name": "Ambiguous Links",
|
|
3613
|
-
"route": "ambiguous-links",
|
|
3614
|
-
"ordering": 9999999,
|
|
3615
|
-
"owner": {
|
|
3616
|
-
"value": {
|
|
3617
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3618
|
-
},
|
|
3619
|
-
"selected": null,
|
|
3620
|
-
"key": "name",
|
|
3621
|
-
"type": "standard",
|
|
3622
|
-
"collection": "users"
|
|
3623
|
-
},
|
|
3624
|
-
"enabled": true,
|
|
3625
|
-
"themeCtrl": null,
|
|
3626
|
-
"theme": {
|
|
3627
|
-
"value": null,
|
|
3628
|
-
"selected": null,
|
|
3629
|
-
"key": "name",
|
|
3630
|
-
"type": "standard",
|
|
3631
|
-
"collection": "themes"
|
|
3632
|
-
},
|
|
3633
|
-
"date": {
|
|
3634
|
-
"$date": "2022-02-10T11:05:38Z"
|
|
3635
|
-
},
|
|
3636
|
-
"modified": {
|
|
3637
|
-
"$date": "2022-03-27T18:48:17.785Z"
|
|
3638
|
-
},
|
|
3639
|
-
"shortCode": "ambiguousLinks",
|
|
3640
|
-
"severity": "high",
|
|
3641
|
-
"criteria": "clickables",
|
|
3642
|
-
"WCAGLevel": "A",
|
|
3643
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211#link-purpose-in-context",
|
|
3644
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3645
|
-
"shortDescription": "Ambiguous links should include additional screen-reader description",
|
|
3646
|
-
"addSROnlyCSS": true,
|
|
3647
|
-
"saveSuccesses": true,
|
|
3648
|
-
"issueDescription": "Ambiguous links like \"Learn More,\" \"Shop Now,\" and \"Start Here\" are often used as a call to action. However, screen-reader users, while using link navigation, do not interact with content above or below the link and therefore don't have the same context as to what they will learn more about.",
|
|
3649
|
-
"issueResolution": "<p>Add a screen-reader only text which gives additional context to the destination of the link such as the example below:</p>\n<pre class=\"language-html\"><code><a href=\"...\">Shop Now <span class=\"sr-only\">New summer collection</span></a></code></pre>",
|
|
3650
|
-
"suggestedFix": [
|
|
3651
|
-
{
|
|
3652
|
-
"suggestedFixType": "srOnly",
|
|
3653
|
-
"suggestedFixKey": "",
|
|
3654
|
-
"suggestedFixValue": "Link destination description",
|
|
3655
|
-
"suggestedFixHTML": ""
|
|
3656
|
-
}
|
|
3657
|
-
]
|
|
3658
|
-
},
|
|
3659
|
-
{
|
|
3660
|
-
"_id": {
|
|
3661
|
-
"$oid": "620570f46199d73f9cf2aecb"
|
|
3662
|
-
},
|
|
3663
|
-
"name": "Decorative Content",
|
|
3664
|
-
"route": "decorative-content",
|
|
3665
|
-
"ordering": 9999999,
|
|
3666
|
-
"owner": {
|
|
3667
|
-
"value": {
|
|
3668
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3669
|
-
},
|
|
3670
|
-
"selected": null,
|
|
3671
|
-
"key": "name",
|
|
3672
|
-
"type": "standard",
|
|
3673
|
-
"collection": "users"
|
|
3674
|
-
},
|
|
3675
|
-
"enabled": true,
|
|
3676
|
-
"themeCtrl": null,
|
|
3677
|
-
"theme": {
|
|
3678
|
-
"value": null,
|
|
3679
|
-
"selected": null,
|
|
3680
|
-
"key": "name",
|
|
3681
|
-
"type": "standard",
|
|
3682
|
-
"collection": "themes"
|
|
3683
|
-
},
|
|
3684
|
-
"date": {
|
|
3685
|
-
"$date": "2022-02-10T20:08:39Z"
|
|
3686
|
-
},
|
|
3687
|
-
"modified": {
|
|
3688
|
-
"$date": "2022-03-27T18:50:37.01Z"
|
|
3689
|
-
},
|
|
3690
|
-
"shortCode": "decorativeContent",
|
|
3691
|
-
"isAutoResolvable": true,
|
|
3692
|
-
"engineRules": [
|
|
3693
|
-
"icon-discernible"
|
|
3694
|
-
],
|
|
3695
|
-
"severity": "medium",
|
|
3696
|
-
"criteria": "graphics",
|
|
3697
|
-
"WCAGLevel": "A",
|
|
3698
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C412#non-text-content",
|
|
3699
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3700
|
-
"shortDescription": "Decorative content should be ignored by assistive technology",
|
|
3701
|
-
"addSROnlyCSS": true,
|
|
3702
|
-
"saveSuccesses": false,
|
|
3703
|
-
"issueDescription": "Graphics used as decorative or complementary elements, like icons or illustrations that do not provide additional information, will often add unnecessary clutter to a screen reader user's browsing experience.",
|
|
3704
|
-
"issueResolution": "<p>If the element is decorative or complementary, hide it from assistive technology. For <img> elements, use an empty alt attribute (alt=""). For other elements, such as <svg> and <span>, assign aria-hidden="true". </p>\n<pre class=\"language-html\"><code><span class=\"complementary\">\n <img src=\"stock-img-site/frvns6jh.com\" alt=\"\"/>\n</span>\n<svg class=\"complementary\" aria-hidden=\"true\"></svg>\n<i class=\"icon\" aria-hidden=\"true\"></i></code></pre>",
|
|
3705
|
-
"suggestedFix": [
|
|
3706
|
-
{
|
|
3707
|
-
"suggestedFixType": "attribute",
|
|
3708
|
-
"suggestedFixKey": "aria-hidden",
|
|
3709
|
-
"suggestedFixValue": "true",
|
|
3710
|
-
"suggestedFixHTML": ""
|
|
3711
|
-
}
|
|
3712
|
-
]
|
|
3713
|
-
},
|
|
3714
|
-
{
|
|
3715
|
-
"_id": {
|
|
3716
|
-
"$oid": "6205714e6199d73f9cf2aecd"
|
|
3717
|
-
},
|
|
3718
|
-
"name": "Figure Setup",
|
|
3719
|
-
"route": "figure-setup",
|
|
3720
|
-
"ordering": 9999999,
|
|
3721
|
-
"owner": {
|
|
3722
|
-
"value": {
|
|
3723
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3724
|
-
},
|
|
3725
|
-
"selected": null,
|
|
3726
|
-
"key": "name",
|
|
3727
|
-
"type": "standard",
|
|
3728
|
-
"collection": "users"
|
|
3729
|
-
},
|
|
3730
|
-
"enabled": true,
|
|
3731
|
-
"themeCtrl": null,
|
|
3732
|
-
"theme": {
|
|
3733
|
-
"value": null,
|
|
3734
|
-
"selected": null,
|
|
3735
|
-
"key": "name",
|
|
3736
|
-
"type": "standard",
|
|
3737
|
-
"collection": "themes"
|
|
3738
|
-
},
|
|
3739
|
-
"date": {
|
|
3740
|
-
"$date": "2022-02-10T20:10:22Z"
|
|
3741
|
-
},
|
|
3742
|
-
"modified": {
|
|
3743
|
-
"$date": "2022-03-27T18:51:14.94Z"
|
|
3744
|
-
},
|
|
3745
|
-
"shortCode": "figureSetup",
|
|
3746
|
-
"severity": "low",
|
|
3747
|
-
"criteria": "graphics",
|
|
3748
|
-
"WCAGLevel": "none",
|
|
3749
|
-
"issueWCAGLink": "-",
|
|
3750
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3751
|
-
"shortDescription": "Figure elements should receive text description or lose figure role",
|
|
3752
|
-
"addSROnlyCSS": false,
|
|
3753
|
-
"saveSuccesses": true,
|
|
3754
|
-
"issueDescription": "Figure elements are often incorrectly used to display images on the screen. Incorrectly using the figure tag, without providing a proper figcaption, adds unnecessary clutter to the screen reader user's experience.",
|
|
3755
|
-
"issueResolution": "<p>Standard images should be coded regularly without having a figure parent element. The figure tag should only be used for images you wish to provide additional visual descriptions for, like the date and time a photo was taken or other metadata.</p>\n<p>To make a figure tag non-cluttering for screen-readers, add the role=presentation attribute to replace it with another element like DIV. Alternatively, if you did intend to use the figure tag, make sure to add a figcaption tag with the additional metadata.</p>\n<pre class=\"language-html\"><code><figure role=\"presentation\"><img src=\"...\" alt=\"Image alt\"></figure>\n<figure><img src=\"...\" alt=\"Image alt\"><figcaption>January 2020, 10 AM, Milano Italy.</figcaption></figure></code></pre>",
|
|
3756
|
-
"suggestedFix": [
|
|
3757
|
-
{
|
|
3758
|
-
"suggestedFixType": "attribute",
|
|
3759
|
-
"suggestedFixKey": "role",
|
|
3760
|
-
"suggestedFixValue": "presentation",
|
|
3761
|
-
"suggestedFixHTML": ""
|
|
3762
|
-
}
|
|
3763
|
-
]
|
|
3764
|
-
},
|
|
3765
|
-
{
|
|
3766
|
-
"_id": {
|
|
3767
|
-
"$oid": "6206336bacb7f0495c5df39a"
|
|
3768
|
-
},
|
|
3769
|
-
"name": "Field Label",
|
|
3770
|
-
"route": "field-label",
|
|
3771
|
-
"ordering": 9999999,
|
|
3772
|
-
"owner": {
|
|
3773
|
-
"value": {
|
|
3774
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3775
|
-
},
|
|
3776
|
-
"selected": null,
|
|
3777
|
-
"key": "name",
|
|
3778
|
-
"type": "standard",
|
|
3779
|
-
"collection": "users"
|
|
3780
|
-
},
|
|
3781
|
-
"enabled": true,
|
|
3782
|
-
"themeCtrl": null,
|
|
3783
|
-
"theme": {
|
|
3784
|
-
"value": null,
|
|
3785
|
-
"selected": null,
|
|
3786
|
-
"key": "name",
|
|
3787
|
-
"type": "standard",
|
|
3788
|
-
"collection": "themes"
|
|
3789
|
-
},
|
|
3790
|
-
"date": {
|
|
3791
|
-
"$date": "2022-02-11T09:58:41Z"
|
|
3792
|
-
},
|
|
3793
|
-
"modified": {
|
|
3794
|
-
"$date": "2022-02-26T11:45:31.202Z"
|
|
3795
|
-
},
|
|
3796
|
-
"shortCode": "fieldLabel",
|
|
3797
|
-
"severity": "extreme",
|
|
3798
|
-
"criteria": "forms",
|
|
3799
|
-
"WCAGLevel": "A",
|
|
3800
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html",
|
|
3801
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3802
|
-
"shortDescription": "Form fields must include a descriptive label",
|
|
3803
|
-
"addSROnlyCSS": false,
|
|
3804
|
-
"saveSuccesses": true,
|
|
3805
|
-
"issueDescription": "Screen readers rely on properly coded, associated labels to identify a field's purpose and read it to the user. Without properly coding the connection between the label and the input, blind users won't be able to interact with the form.",
|
|
3806
|
-
"issueResolution": "<p>Provide a <strong>LABEL</strong> tag and associate it to the field using the <strong>for </strong>and the <strong>id</strong> attributes like in the example below. Alternatively, you can put an <strong>aria-label</strong> attribute directly on the field without including an associated label tag.</p>\n<pre class=\"language-html\"><code><div>\n <label for=\"field-id\">Field label</label>\n <input id=\"field-id\">\n</div>\n--------- OR ---------\n<input aria-label=\"Field label\"></code></pre>",
|
|
3807
|
-
"suggestedFix": [
|
|
3808
|
-
{
|
|
3809
|
-
"suggestedFixType": "attribute",
|
|
3810
|
-
"suggestedFixKey": "aria-label",
|
|
3811
|
-
"suggestedFixValue": "{suggestion}",
|
|
3812
|
-
"suggestedFixHTML": ""
|
|
3813
|
-
}
|
|
3814
|
-
]
|
|
3815
|
-
},
|
|
3816
|
-
{
|
|
3817
|
-
"_id": {
|
|
3818
|
-
"$oid": "620635dcacb7f0495c5df3a2"
|
|
3819
|
-
},
|
|
3820
|
-
"name": "Field Validations",
|
|
3821
|
-
"route": "field-validations",
|
|
3822
|
-
"ordering": 9999999,
|
|
3823
|
-
"owner": {
|
|
3824
|
-
"value": {
|
|
3825
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3826
|
-
},
|
|
3827
|
-
"selected": null,
|
|
3828
|
-
"key": "name",
|
|
3829
|
-
"type": "standard",
|
|
3830
|
-
"collection": "users"
|
|
3831
|
-
},
|
|
3832
|
-
"enabled": true,
|
|
3833
|
-
"themeCtrl": null,
|
|
3834
|
-
"theme": {
|
|
3835
|
-
"value": null,
|
|
3836
|
-
"selected": null,
|
|
3837
|
-
"key": "name",
|
|
3838
|
-
"type": "standard",
|
|
3839
|
-
"collection": "themes"
|
|
3840
|
-
},
|
|
3841
|
-
"date": {
|
|
3842
|
-
"$date": "2022-02-11T10:03:59Z"
|
|
3843
|
-
},
|
|
3844
|
-
"modified": {
|
|
3845
|
-
"$date": "2022-02-26T12:31:06.193Z"
|
|
3846
|
-
},
|
|
3847
|
-
"shortCode": "fieldValidations",
|
|
3848
|
-
"severity": "high",
|
|
3849
|
-
"criteria": "forms",
|
|
3850
|
-
"WCAGLevel": "A",
|
|
3851
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=131%2C411#error-suggestion",
|
|
3852
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3853
|
-
"shortDescription": "Fields must indicate validation errors to assistive technology ",
|
|
3854
|
-
"addSROnlyCSS": false,
|
|
3855
|
-
"saveSuccesses": true,
|
|
3856
|
-
"issueDescription": "Screen reader users rely on properly coded field validation status and associated validation messages. Otherwise, users would have to browse around and try to pick up clues on the page as to why their submission attempt did not work.",
|
|
3857
|
-
"issueResolution": "<p>Include the <strong>aria-invalid</strong><strong>=true</strong> attribute when the field validation shows on the page. Screen readers will pick that up and inform the user that this field is invalid. Make sure to change the <strong>aria-invalid</strong> to <strong>false</strong> when the field value does become valid.</p>\n<p>To associate validation messages with fields, use the <strong>aria-describedby</strong> attribute and give it the field's ID for which it provides a validation message. Alternatively, put the validation message inside the associated field <strong>LABEL,</strong> causing screen readers to announce it on interaction.</p>\n<pre class=\"language-html\"><code><input aria-labeledby=\"phone-validation\" aria-label=\"Phone number\">\n<span id=\"phone-validation\">Please enter exactly 10 digits</span></code></pre>",
|
|
3858
|
-
"suggestedFix": [
|
|
3859
|
-
{
|
|
3860
|
-
"suggestedFixType": "attribute",
|
|
3861
|
-
"suggestedFixKey": "aria-invalid",
|
|
3862
|
-
"suggestedFixValue": "true",
|
|
3863
|
-
"suggestedFixHTML": ""
|
|
3864
|
-
},
|
|
3865
|
-
{
|
|
3866
|
-
"suggestedFixType": "attribute",
|
|
3867
|
-
"suggestedFixKey": "aria-describedby",
|
|
3868
|
-
"suggestedFixValue": "#error-message-element-id",
|
|
3869
|
-
"suggestedFixHTML": ""
|
|
3870
|
-
}
|
|
3871
|
-
]
|
|
3872
|
-
},
|
|
3873
|
-
{
|
|
3874
|
-
"_id": {
|
|
3875
|
-
"$oid": "62063631acb7f0495c5df3a3"
|
|
3876
|
-
},
|
|
3877
|
-
"name": "Field Validation Focus",
|
|
3878
|
-
"route": "field-validation-focus",
|
|
3879
|
-
"ordering": 9999999,
|
|
3880
|
-
"owner": {
|
|
3881
|
-
"value": {
|
|
3882
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3883
|
-
},
|
|
3884
|
-
"selected": null,
|
|
3885
|
-
"key": "name",
|
|
3886
|
-
"type": "standard",
|
|
3887
|
-
"collection": "users"
|
|
3888
|
-
},
|
|
3889
|
-
"enabled": true,
|
|
3890
|
-
"themeCtrl": null,
|
|
3891
|
-
"theme": {
|
|
3892
|
-
"value": null,
|
|
3893
|
-
"selected": null,
|
|
3894
|
-
"key": "name",
|
|
3895
|
-
"type": "standard",
|
|
3896
|
-
"collection": "themes"
|
|
3897
|
-
},
|
|
3898
|
-
"date": {
|
|
3899
|
-
"$date": "2022-02-11T10:09:45Z"
|
|
3900
|
-
},
|
|
3901
|
-
"modified": {
|
|
3902
|
-
"$date": "2022-02-26T12:35:05.232Z"
|
|
3903
|
-
},
|
|
3904
|
-
"shortCode": "fieldValidationFocus",
|
|
3905
|
-
"severity": "high",
|
|
3906
|
-
"criteria": "forms",
|
|
3907
|
-
"WCAGLevel": "A",
|
|
3908
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html",
|
|
3909
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3910
|
-
"shortDescription": "Keyboard focus should move into the invalid field on submission",
|
|
3911
|
-
"addSROnlyCSS": false,
|
|
3912
|
-
"saveSuccesses": true,
|
|
3913
|
-
"issueDescription": "When field validations appear, if the keyboard focus doesn't automatically land on an incorrect field, it is often difficult for screen reader and keyboard users to identify and navigate to the error message and start fixing the form from there.",
|
|
3914
|
-
"issueResolution": "<p>Automatically move the keyboard focus into the first errored field on unsuccessful form submission.</p>\n<pre class=\"language-javascript\"><code>document.querySelector('#field-id').focus()</code></pre>",
|
|
3915
|
-
"suggestedFix": []
|
|
3916
|
-
},
|
|
3917
|
-
{
|
|
3918
|
-
"_id": {
|
|
3919
|
-
"$oid": "6206413144306b15b4367a3c"
|
|
3920
|
-
},
|
|
3921
|
-
"name": "Submenu Tagging",
|
|
3922
|
-
"route": "submenu-tagging",
|
|
3923
|
-
"ordering": 9999999,
|
|
3924
|
-
"owner": {
|
|
3925
|
-
"value": {
|
|
3926
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3927
|
-
},
|
|
3928
|
-
"selected": null,
|
|
3929
|
-
"key": "name",
|
|
3930
|
-
"type": "standard",
|
|
3931
|
-
"collection": "users"
|
|
3932
|
-
},
|
|
3933
|
-
"enabled": true,
|
|
3934
|
-
"themeCtrl": null,
|
|
3935
|
-
"theme": {
|
|
3936
|
-
"value": null,
|
|
3937
|
-
"selected": null,
|
|
3938
|
-
"key": "name",
|
|
3939
|
-
"type": "standard",
|
|
3940
|
-
"collection": "themes"
|
|
3941
|
-
},
|
|
3942
|
-
"date": {
|
|
3943
|
-
"$date": "2022-02-11T10:57:07Z"
|
|
3944
|
-
},
|
|
3945
|
-
"modified": {
|
|
3946
|
-
"$date": "2022-02-26T17:38:59.193Z"
|
|
3947
|
-
},
|
|
3948
|
-
"shortCode": "submenuTagging",
|
|
3949
|
-
"isAutoResolvable": true,
|
|
3950
|
-
"engineRules": [],
|
|
3951
|
-
"severity": "high",
|
|
3952
|
-
"criteria": "navigation",
|
|
3953
|
-
"WCAGLevel": "A",
|
|
3954
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html",
|
|
3955
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
3956
|
-
"shortDescription": "Sub menus should be labled properly",
|
|
3957
|
-
"addSROnlyCSS": false,
|
|
3958
|
-
"saveSuccesses": true,
|
|
3959
|
-
"issueDescription": "Complex menu structures such as sub-menus unintentionally cause screen reader users to lose orientation and get lost within them. This can be mitigated by adequately labeling and marking the sub-menus, to provide additional context to assistive technology.",
|
|
3960
|
-
"issueResolution": "<p>Add the <strong>role=region </strong>and <strong>aria-label=Sub-menu</strong> to the sub-menu elements. When the sub-menu is expanded, screen readers will pick that up and provide this context to the users. When users leave the sub-menu, they will hear, loud and clear, that they've left the sub-menu region, thus never losing orientation.</p>\n<pre class=\"language-html\"><code><nav>\n <ul>\n <li>\n <a href=\"...\">Menu item</a>\n <div class=\"sub-menu\" role=\"region\" aria-label=\"Sub-menu\">...</div>\n </li>\n </ul>\n</nav></code></pre>",
|
|
3961
|
-
"suggestedFix": [
|
|
3962
|
-
{
|
|
3963
|
-
"suggestedFixType": "attribute",
|
|
3964
|
-
"suggestedFixKey": "role",
|
|
3965
|
-
"suggestedFixValue": "region",
|
|
3966
|
-
"suggestedFixHTML": ""
|
|
3967
|
-
},
|
|
3968
|
-
{
|
|
3969
|
-
"suggestedFixType": "attribute",
|
|
3970
|
-
"suggestedFixKey": "aria-label",
|
|
3971
|
-
"suggestedFixValue": "Sub-menu",
|
|
3972
|
-
"suggestedFixHTML": ""
|
|
3973
|
-
}
|
|
3974
|
-
]
|
|
3975
|
-
},
|
|
3976
|
-
{
|
|
3977
|
-
"_id": {
|
|
3978
|
-
"$oid": "620641b844306b15b4367a3f"
|
|
3979
|
-
},
|
|
3980
|
-
"name": "Nested Navigation",
|
|
3981
|
-
"route": "nested-navigation",
|
|
3982
|
-
"ordering": 9999999,
|
|
3983
|
-
"owner": {
|
|
3984
|
-
"value": {
|
|
3985
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
3986
|
-
},
|
|
3987
|
-
"selected": null,
|
|
3988
|
-
"key": "name",
|
|
3989
|
-
"type": "standard",
|
|
3990
|
-
"collection": "users"
|
|
3991
|
-
},
|
|
3992
|
-
"enabled": true,
|
|
3993
|
-
"themeCtrl": null,
|
|
3994
|
-
"theme": {
|
|
3995
|
-
"value": null,
|
|
3996
|
-
"selected": null,
|
|
3997
|
-
"key": "name",
|
|
3998
|
-
"type": "standard",
|
|
3999
|
-
"collection": "themes"
|
|
4000
|
-
},
|
|
4001
|
-
"date": {
|
|
4002
|
-
"$date": "2022-02-11T10:59:30Z"
|
|
4003
|
-
},
|
|
4004
|
-
"modified": {
|
|
4005
|
-
"$date": "2022-02-26T17:52:55.479Z"
|
|
4006
|
-
},
|
|
4007
|
-
"shortCode": "nestedNavigation",
|
|
4008
|
-
"isAutoResolvable": true,
|
|
4009
|
-
"engineRules": [
|
|
4010
|
-
"navigation-not-nested"
|
|
4011
|
-
],
|
|
4012
|
-
"severity": "medium",
|
|
4013
|
-
"criteria": "navigation",
|
|
4014
|
-
"WCAGLevel": "none",
|
|
4015
|
-
"issueWCAGLink": "-",
|
|
4016
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4017
|
-
"shortDescription": "Avoid using nested navigation structure",
|
|
4018
|
-
"addSROnlyCSS": false,
|
|
4019
|
-
"saveSuccesses": true,
|
|
4020
|
-
"issueDescription": "Navigation elements are complex for screen readers to handle by default. This is especially true if sub-menus or other more complex structures exist. Nesting navigation regions will cause users to lose orientation and get lost in them very quickly.",
|
|
4021
|
-
"issueResolution": "<p>Use the <strong>role=presentation</strong> attribute to reset the navigation role of the nested navigation element. Alternatively, do not code it as an HTML <strong>NAV </strong>tag but as a <strong>DIV</strong>. If the nested navigation element is a sub-menu wrapper element, use the <strong>role=region</strong> and <strong>aria-label=Sub-menu</strong> attributes.</p>\n<pre class=\"language-html\"><code><nav>\n <ul>\n <li>\n <a href=\"...\" aria-expanded=\"false\" aria-haspopup=\"true\">Menu item</a>\n <nav role=\"presentation/region\" aria-label=\"Submenu\">...</nav>\n </li>\n </ul>\n</nav></code></pre>",
|
|
4022
|
-
"suggestedFix": [
|
|
4023
|
-
{
|
|
4024
|
-
"suggestedFixType": "attribute",
|
|
4025
|
-
"suggestedFixKey": "role",
|
|
4026
|
-
"suggestedFixValue": "presentation",
|
|
4027
|
-
"suggestedFixHTML": ""
|
|
4028
|
-
}
|
|
4029
|
-
]
|
|
4030
|
-
},
|
|
4031
|
-
{
|
|
4032
|
-
"_id": {
|
|
4033
|
-
"$oid": "620651c9b0b1184e88c83829"
|
|
4034
|
-
},
|
|
4035
|
-
"name": "Broken List",
|
|
4036
|
-
"route": "broken-list",
|
|
4037
|
-
"ordering": 9999999,
|
|
4038
|
-
"owner": {
|
|
4039
|
-
"value": {
|
|
4040
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
4041
|
-
},
|
|
4042
|
-
"selected": null,
|
|
4043
|
-
"key": "name",
|
|
4044
|
-
"type": "standard",
|
|
4045
|
-
"collection": "users"
|
|
4046
|
-
},
|
|
4047
|
-
"enabled": true,
|
|
4048
|
-
"themeCtrl": null,
|
|
4049
|
-
"theme": {
|
|
4050
|
-
"value": null,
|
|
4051
|
-
"selected": null,
|
|
4052
|
-
"key": "name",
|
|
4053
|
-
"type": "standard",
|
|
4054
|
-
"collection": "themes"
|
|
4055
|
-
},
|
|
4056
|
-
"date": {
|
|
4057
|
-
"$date": "2022-02-11T12:07:53Z"
|
|
4058
|
-
},
|
|
4059
|
-
"modified": {
|
|
4060
|
-
"$date": "2022-02-26T20:56:00.955Z"
|
|
4061
|
-
},
|
|
4062
|
-
"shortCode": "brokenList",
|
|
4063
|
-
"severity": "high",
|
|
4064
|
-
"criteria": "errors",
|
|
4065
|
-
"WCAGLevel": "A",
|
|
4066
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html",
|
|
4067
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4068
|
-
"shortDescription": "List items exist without ol/ul parents",
|
|
4069
|
-
"addSROnlyCSS": false,
|
|
4070
|
-
"saveSuccesses": false,
|
|
4071
|
-
"issueDescription": "Screen readers rely on properly written, valid HTML. Every list item must have an OL/UL parent, or else screen readers will fail to parse those list item elements and won't read them correctly to users.",
|
|
4072
|
-
"issueResolution": "<p>Add an <strong>OL </strong>or a <strong>UL </strong>HTML tag to the orphaned list items.</p>\n<pre class=\"language-html\"><code><ul>\n <li>List item inside a UL tag</li>\n</ul></code></pre>",
|
|
4073
|
-
"suggestedFix": [
|
|
4074
|
-
{
|
|
4075
|
-
"suggestedFixType": "attribute",
|
|
4076
|
-
"suggestedFixKey": "",
|
|
4077
|
-
"suggestedFixValue": "",
|
|
4078
|
-
"suggestedFixHTML": "<ul><li>list item...</li></ul>"
|
|
4079
|
-
}
|
|
4080
|
-
]
|
|
4081
|
-
},
|
|
4082
|
-
{
|
|
4083
|
-
"_id": {
|
|
4084
|
-
"$oid": "6204f450676c2425ec000532"
|
|
4085
|
-
},
|
|
4086
|
-
"name": "Language Report",
|
|
4087
|
-
"route": "language-report",
|
|
4088
|
-
"ordering": 9999999,
|
|
4089
|
-
"owner": {
|
|
4090
|
-
"value": {
|
|
4091
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
4092
|
-
},
|
|
4093
|
-
"selected": null,
|
|
4094
|
-
"key": "name",
|
|
4095
|
-
"type": "standard",
|
|
4096
|
-
"collection": "users"
|
|
4097
|
-
},
|
|
4098
|
-
"enabled": true,
|
|
4099
|
-
"themeCtrl": null,
|
|
4100
|
-
"theme": {
|
|
4101
|
-
"value": null,
|
|
4102
|
-
"selected": null,
|
|
4103
|
-
"key": "name",
|
|
4104
|
-
"type": "standard",
|
|
4105
|
-
"collection": "themes"
|
|
4106
|
-
},
|
|
4107
|
-
"date": {
|
|
4108
|
-
"$date": "2022-02-10T11:17:00Z"
|
|
4109
|
-
},
|
|
4110
|
-
"modified": {
|
|
4111
|
-
"$date": "2022-03-27T18:48:48.909Z"
|
|
4112
|
-
},
|
|
4113
|
-
"shortCode": "languageReport",
|
|
4114
|
-
"severity": "medium",
|
|
4115
|
-
"criteria": "document",
|
|
4116
|
-
"WCAGLevel": "A",
|
|
4117
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=211%2C242%2C412%2C311#language-of-page",
|
|
4118
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4119
|
-
"shortDescription": "The HTML element should include a proper \"lang\" attribute",
|
|
4120
|
-
"addSROnlyCSS": false,
|
|
4121
|
-
"saveSuccesses": true,
|
|
4122
|
-
"issueDescription": "For screen readers to know which language to announce the content to the users, they need to receive information about the dominant language of the page from the HTML tag of the document.",
|
|
4123
|
-
"issueResolution": "<p>Include a lang attribute with the language code of the dominant language of the page, directly on the HTML tag. You can use only the two first characters of the language code, for example, use en rather than en-us or en-gb.</p>\n<pre class=\"language-html\"><code><html lang=\"en/es/fr/de/ru...\"></code></pre>",
|
|
4124
|
-
"suggestedFix": [
|
|
4125
|
-
{
|
|
4126
|
-
"suggestedFixType": "attribute",
|
|
4127
|
-
"suggestedFixKey": "lang",
|
|
4128
|
-
"suggestedFixValue": "en/es/de/ru...",
|
|
4129
|
-
"suggestedFixHTML": ""
|
|
4130
|
-
}
|
|
4131
|
-
]
|
|
4132
|
-
},
|
|
4133
|
-
{
|
|
4134
|
-
"_id": {
|
|
4135
|
-
"$oid": "620572366199d73f9cf2aed0"
|
|
4136
|
-
},
|
|
4137
|
-
"name": "Long Headings",
|
|
4138
|
-
"route": "long-headings",
|
|
4139
|
-
"ordering": 9999999,
|
|
4140
|
-
"owner": {
|
|
4141
|
-
"value": {
|
|
4142
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
4143
|
-
},
|
|
4144
|
-
"selected": null,
|
|
4145
|
-
"key": "name",
|
|
4146
|
-
"type": "standard",
|
|
4147
|
-
"collection": "users"
|
|
4148
|
-
},
|
|
4149
|
-
"enabled": true,
|
|
4150
|
-
"themeCtrl": null,
|
|
4151
|
-
"theme": {
|
|
4152
|
-
"value": null,
|
|
4153
|
-
"selected": null,
|
|
4154
|
-
"key": "name",
|
|
4155
|
-
"type": "standard",
|
|
4156
|
-
"collection": "themes"
|
|
4157
|
-
},
|
|
4158
|
-
"date": {
|
|
4159
|
-
"$date": "2022-02-10T20:14:02Z"
|
|
4160
|
-
},
|
|
4161
|
-
"modified": {
|
|
4162
|
-
"$date": "2023-07-19T10:43:33.097Z"
|
|
4163
|
-
},
|
|
4164
|
-
"shortCode": "longHeadings",
|
|
4165
|
-
"severity": "medium",
|
|
4166
|
-
"criteria": "headings",
|
|
4167
|
-
"WCAGLevel": "A",
|
|
4168
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html",
|
|
4169
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4170
|
-
"shortDescription": "Headings with too much text should lose heading role",
|
|
4171
|
-
"addSROnlyCSS": false,
|
|
4172
|
-
"saveSuccesses": false,
|
|
4173
|
-
"issueDescription": "Screen reader users use header navigation to determine the topics the page provides and to browse between them. Headers with a lot of text don't function as headers, but as paragraphs, and add unnecessary clutter to assistive technology.",
|
|
4174
|
-
"issueResolution": "<p>To reset the heading role of an element you can either add the <strong>role=presentation</strong> attribute, or completely change the HTML tag from a <strong>heading</strong> tag to a <strong>SPAN, DIV, </strong>or a <strong>P (paragraph) </strong>tag.</p>\n<pre class=\"language-html\"><code><h3 role=\"presentation\"></h3></code></pre>",
|
|
4175
|
-
"suggestedFix": [
|
|
4176
|
-
{
|
|
4177
|
-
"suggestedFixType": "tag",
|
|
4178
|
-
"suggestedFixKey": "",
|
|
4179
|
-
"suggestedFixValue": "p",
|
|
4180
|
-
"suggestedFixHTML": ""
|
|
4181
|
-
},
|
|
4182
|
-
{
|
|
4183
|
-
"suggestedFixType": "removeAttribute",
|
|
4184
|
-
"suggestedFixKey": "",
|
|
4185
|
-
"suggestedFixValue": "role",
|
|
4186
|
-
"suggestedFixHTML": ""
|
|
4187
|
-
}
|
|
4188
|
-
]
|
|
4189
|
-
},
|
|
4190
|
-
{
|
|
4191
|
-
"_id": {
|
|
4192
|
-
"$oid": "620572d36199d73f9cf2aed3"
|
|
4193
|
-
},
|
|
4194
|
-
"name": "Multiple Main Headings",
|
|
4195
|
-
"route": "multiple-main-headings",
|
|
4196
|
-
"ordering": 9999999,
|
|
4197
|
-
"owner": {
|
|
4198
|
-
"value": {
|
|
4199
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
4200
|
-
},
|
|
4201
|
-
"selected": null,
|
|
4202
|
-
"key": "name",
|
|
4203
|
-
"type": "standard",
|
|
4204
|
-
"collection": "users"
|
|
4205
|
-
},
|
|
4206
|
-
"enabled": true,
|
|
4207
|
-
"themeCtrl": null,
|
|
4208
|
-
"theme": {
|
|
4209
|
-
"value": null,
|
|
4210
|
-
"selected": null,
|
|
4211
|
-
"key": "name",
|
|
4212
|
-
"type": "standard",
|
|
4213
|
-
"collection": "themes"
|
|
4214
|
-
},
|
|
4215
|
-
"date": {
|
|
4216
|
-
"$date": "2022-02-10T20:16:56Z"
|
|
4217
|
-
},
|
|
4218
|
-
"modified": {
|
|
4219
|
-
"$date": "2022-03-27T18:53:06.429Z"
|
|
4220
|
-
},
|
|
4221
|
-
"shortCode": "multipleMainHeadings",
|
|
4222
|
-
"severity": "medium",
|
|
4223
|
-
"criteria": "headings",
|
|
4224
|
-
"WCAGLevel": "none",
|
|
4225
|
-
"issueWCAGLink": "-",
|
|
4226
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4227
|
-
"shortDescription": "Only one visible main heading (H1) is permitted per page",
|
|
4228
|
-
"addSROnlyCSS": false,
|
|
4229
|
-
"saveSuccesses": true,
|
|
4230
|
-
"issueDescription": "Screen reader users use the H1 (main heading) to determine the page's topic and locate the main content section. If multiple visible H1 elements exist on the same page, screen reader users can lose orientation and get confused.",
|
|
4231
|
-
"issueResolution": "<p>Keep only one H1 element visible on-page at the time. You can use the <strong>role=heading</strong> attribute and set the <strong>aria-level </strong>to a different heading level like <strong>aria-level=2,</strong> which will convert an <strong>H1 </strong>heading to an <strong>H2</strong> only for assistive technology. Alternatively, you can directly change the <strong>H1 </strong>to another heading using <strong>H2-6</strong> HTML headings.</p>\n<pre class=\"language-html\"><code><h1 role=\"heading\" aria-level=\"2\"></h1></code></pre>",
|
|
4232
|
-
"suggestedFix": []
|
|
4233
|
-
},
|
|
4234
|
-
{
|
|
4235
|
-
"_id": {
|
|
4236
|
-
"$oid": "620633dfacb7f0495c5df39d"
|
|
4237
|
-
},
|
|
4238
|
-
"name": "Missing Form Button",
|
|
4239
|
-
"route": "missing-form-button",
|
|
4240
|
-
"ordering": 9999999,
|
|
4241
|
-
"owner": {
|
|
4242
|
-
"value": {
|
|
4243
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
4244
|
-
},
|
|
4245
|
-
"selected": null,
|
|
4246
|
-
"key": "name",
|
|
4247
|
-
"type": "standard",
|
|
4248
|
-
"collection": "users"
|
|
4249
|
-
},
|
|
4250
|
-
"enabled": true,
|
|
4251
|
-
"themeCtrl": null,
|
|
4252
|
-
"theme": {
|
|
4253
|
-
"value": null,
|
|
4254
|
-
"selected": null,
|
|
4255
|
-
"key": "name",
|
|
4256
|
-
"type": "standard",
|
|
4257
|
-
"collection": "themes"
|
|
4258
|
-
},
|
|
4259
|
-
"date": {
|
|
4260
|
-
"$date": "2022-02-11T10:00:16Z"
|
|
4261
|
-
},
|
|
4262
|
-
"modified": {
|
|
4263
|
-
"$date": "2022-02-26T11:56:35.89Z"
|
|
4264
|
-
},
|
|
4265
|
-
"shortCode": "missingFormButton",
|
|
4266
|
-
"severity": "medium",
|
|
4267
|
-
"criteria": "forms",
|
|
4268
|
-
"WCAGLevel": "none",
|
|
4269
|
-
"issueWCAGLink": "-",
|
|
4270
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4271
|
-
"shortDescription": "Forms must include a visible or hidden submit button",
|
|
4272
|
-
"addSROnlyCSS": true,
|
|
4273
|
-
"saveSuccesses": true,
|
|
4274
|
-
"issueDescription": "Screen reader users rely on predictable behaviors and interactions. If a form doesn't include a submit button, screen reader users will lose orientation and will find the form difficult or impossible to interact with.",
|
|
4275
|
-
"issueResolution": "<p>Include a submit button in your form. If the form doesn't technically require a visible submit button, including one just for screen readers using the <strong>screen-reader-only</strong> technique. This will provide the necessary clarity for screen reader users.</p>\n<pre class=\"language-html\"><code><button type=\"submit\" class=\"sr-only\">Submit</button></code></pre>",
|
|
4276
|
-
"suggestedFix": [
|
|
4277
|
-
{
|
|
4278
|
-
"suggestedFixType": "attribute",
|
|
4279
|
-
"suggestedFixKey": "",
|
|
4280
|
-
"suggestedFixValue": "",
|
|
4281
|
-
"suggestedFixHTML": "<button type=\"submit\">submit</button>"
|
|
4282
|
-
}
|
|
4283
|
-
]
|
|
4284
|
-
},
|
|
4285
|
-
{
|
|
4286
|
-
"_id": {
|
|
4287
|
-
"$oid": "6206536bb0b1184e88c83830"
|
|
4288
|
-
},
|
|
4289
|
-
"name": "Scroll Focus",
|
|
4290
|
-
"route": "scroll-focus",
|
|
4291
|
-
"ordering": 9999999,
|
|
4292
|
-
"owner": {
|
|
4293
|
-
"value": {
|
|
4294
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
4295
|
-
},
|
|
4296
|
-
"selected": null,
|
|
4297
|
-
"key": "name",
|
|
4298
|
-
"type": "standard",
|
|
4299
|
-
"collection": "users"
|
|
4300
|
-
},
|
|
4301
|
-
"enabled": true,
|
|
4302
|
-
"themeCtrl": null,
|
|
4303
|
-
"theme": {
|
|
4304
|
-
"value": null,
|
|
4305
|
-
"selected": null,
|
|
4306
|
-
"key": "name",
|
|
4307
|
-
"type": "standard",
|
|
4308
|
-
"collection": "themes"
|
|
4309
|
-
},
|
|
4310
|
-
"date": {
|
|
4311
|
-
"$date": "2022-02-11T12:15:15Z"
|
|
4312
|
-
},
|
|
4313
|
-
"modified": {
|
|
4314
|
-
"$date": "2022-02-27T13:18:53.216Z"
|
|
4315
|
-
},
|
|
4316
|
-
"shortCode": "scrollFocus",
|
|
4317
|
-
"severity": "medium",
|
|
4318
|
-
"criteria": "keyboard",
|
|
4319
|
-
"WCAGLevel": "A",
|
|
4320
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html",
|
|
4321
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4322
|
-
"shortDescription": "Move focus to relevant element when a click has scroled the page",
|
|
4323
|
-
"addSROnlyCSS": false,
|
|
4324
|
-
"saveSuccesses": true,
|
|
4325
|
-
"issueDescription": "If the page scrolls to a different location after an element is clicked, the keyboard focus should move with the scroll. Otherwise, the next Tab key hit (attempt to navigate with the keyboard) will take the user back to the location before the scroll. ",
|
|
4326
|
-
"issueResolution": "<p>When users click elements that scroll the page (like scroll to top/scroll to bottom), use JavaScript like the example below to focus the element or area they scroll to. If the element to focus isn't focusable by default (like links and buttons), giving it <strong>tabindex=-1 </strong>will make it keyboard focusable but exclude it from tab navigation.</p>\n<p>Note: the <strong>preventScroll </strong>argument in the object passed to the scroll function tells the browser not to re-scroll the page.</p>\n<pre class=\"language-javascript\"><code>document.querySelector('.element-to-focus').focus({preventScroll: true})</code></pre>",
|
|
4327
|
-
"suggestedFix": []
|
|
4328
|
-
},
|
|
4329
|
-
{
|
|
4330
|
-
"_id": {
|
|
4331
|
-
"$oid": "6226a40421708e36947589fa"
|
|
4332
|
-
},
|
|
4333
|
-
"name": "Inline Popup Focus",
|
|
4334
|
-
"route": "copy-of-scroll-focus",
|
|
4335
|
-
"ordering": 9999999,
|
|
4336
|
-
"owner": {
|
|
4337
|
-
"value": {
|
|
4338
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
4339
|
-
},
|
|
4340
|
-
"selected": null,
|
|
4341
|
-
"key": "name",
|
|
4342
|
-
"type": "standard",
|
|
4343
|
-
"collection": "users"
|
|
4344
|
-
},
|
|
4345
|
-
"enabled": true,
|
|
4346
|
-
"themeCtrl": null,
|
|
4347
|
-
"theme": {
|
|
4348
|
-
"value": null,
|
|
4349
|
-
"selected": null,
|
|
4350
|
-
"key": "name",
|
|
4351
|
-
"type": "standard",
|
|
4352
|
-
"collection": "themes"
|
|
4353
|
-
},
|
|
4354
|
-
"date": {
|
|
4355
|
-
"$date": "2022-02-11T12:15:15Z"
|
|
4356
|
-
},
|
|
4357
|
-
"modified": {
|
|
4358
|
-
"$date": "2022-03-08T00:35:25.259Z"
|
|
4359
|
-
},
|
|
4360
|
-
"shortCode": "inlinePopupFocus",
|
|
4361
|
-
"severity": "high",
|
|
4362
|
-
"criteria": "context",
|
|
4363
|
-
"WCAGLevel": "AA",
|
|
4364
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/quickref/#focus-visible",
|
|
4365
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4366
|
-
"shortDescription": "Move focus into revealed element after trigger",
|
|
4367
|
-
"addSROnlyCSS": false,
|
|
4368
|
-
"saveSuccesses": true,
|
|
4369
|
-
"issueDescription": "If an element because visible after clicking on another element, keyboard focus should move into that newly visible element. Otherwise, screen reader users will not know something has changed on the page.",
|
|
4370
|
-
"issueResolution": "<p>s</p>",
|
|
4371
|
-
"suggestedFix": []
|
|
4372
|
-
},
|
|
4373
|
-
{
|
|
4374
|
-
"_id": {
|
|
4375
|
-
"$oid": "64a6af8e79a6201fe15b45ea"
|
|
4376
|
-
},
|
|
4377
|
-
"name": "SVG Content",
|
|
4378
|
-
"route": "svg-content",
|
|
4379
|
-
"ordering": 9999999,
|
|
4380
|
-
"owner": {
|
|
4381
|
-
"value": {
|
|
4382
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
4383
|
-
},
|
|
4384
|
-
"selected": null,
|
|
4385
|
-
"key": "name",
|
|
4386
|
-
"type": "standard",
|
|
4387
|
-
"collection": "users"
|
|
4388
|
-
},
|
|
4389
|
-
"enabled": true,
|
|
4390
|
-
"themeCtrl": null,
|
|
4391
|
-
"theme": {
|
|
4392
|
-
"value": null,
|
|
4393
|
-
"selected": null,
|
|
4394
|
-
"key": "name",
|
|
4395
|
-
"type": "standard",
|
|
4396
|
-
"collection": "themes"
|
|
4397
|
-
},
|
|
4398
|
-
"date": {
|
|
4399
|
-
"$date": "2023-07-06T11:35:07Z"
|
|
4400
|
-
},
|
|
4401
|
-
"modified": {
|
|
4402
|
-
"$date": "2023-07-09T09:50:15.863Z"
|
|
4403
|
-
},
|
|
4404
|
-
"shortCode": "svgContent",
|
|
4405
|
-
"isAutoResolvable": true,
|
|
4406
|
-
"engineRules": [
|
|
4407
|
-
"icon-discernible"
|
|
4408
|
-
],
|
|
4409
|
-
"severity": "medium",
|
|
4410
|
-
"criteria": "graphics",
|
|
4411
|
-
"WCAGLevel": "A",
|
|
4412
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html",
|
|
4413
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4414
|
-
"shortDescription": "Inline SVGs Should Be Hidden from Assistive Technology",
|
|
4415
|
-
"addSROnlyCSS": false,
|
|
4416
|
-
"saveSuccesses": false,
|
|
4417
|
-
"issueDescription": "Scalable Vector Graphics (SVGs) are widely used for icons and illustrations on the web due to their scalability and quality. However, when SVGs are used inline, they can often be misinterpreted by screen readers, causing confusion or unnecessary information being read to the user. This happens because screen readers can interpret and read out the SVG's XML structure, which is usually not intended to be part of the user's experience.",
|
|
4418
|
-
"issueResolution": "<p>For inline SVGs that are not relevant content and should not be interpreted by screen readers, add the <strong>aria-hidden=\"true\"</strong> attribute. This attribute will prevent screen readers from trying to interpret and read the SVG's XML structure, which can lead to unnecessary or confusing information being relayed to the user.</p>\n<pre class=\"language-html\"><code><svg aria-hidden=\"true\">\n <rect width=\"50\" height=\"50\" style=\"fill:rgb(0,0,255);\" />\n</svg></code></pre>\n<p>However, if the SVG is intended to convey important information, include a <strong><title></strong> element in the SVG. This will allow the screen reader to provide a descriptive title to the user, making the SVG content accessible.</p>\n<pre class=\"language-html\"><code><svg>\n <title>Descriptive title for SVG</title>\n <rect width=\"50\" height=\"50\" style=\"fill:rgb(0,0,255);\" />\n</svg></code></pre>",
|
|
4419
|
-
"suggestedFix": [
|
|
4420
|
-
{
|
|
4421
|
-
"suggestedFixType": "attribute",
|
|
4422
|
-
"suggestedFixKey": "aria-hidden",
|
|
4423
|
-
"suggestedFixValue": "true",
|
|
4424
|
-
"suggestedFixHTML": ""
|
|
4425
|
-
}
|
|
4426
|
-
]
|
|
4427
|
-
},
|
|
4428
|
-
{
|
|
4429
|
-
"_id": {
|
|
4430
|
-
"$oid": "64ec8440b3dc7f3b8ad467e9"
|
|
4431
|
-
},
|
|
4432
|
-
"name": "Duplicate IDs",
|
|
4433
|
-
"route": "duplicate-ids",
|
|
4434
|
-
"ordering": 9999999,
|
|
4435
|
-
"owner": {
|
|
4436
|
-
"value": {
|
|
4437
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
4438
|
-
},
|
|
4439
|
-
"selected": null,
|
|
4440
|
-
"key": "name",
|
|
4441
|
-
"type": "standard",
|
|
4442
|
-
"collection": "users"
|
|
4443
|
-
},
|
|
4444
|
-
"enabled": false,
|
|
4445
|
-
"themeCtrl": null,
|
|
4446
|
-
"theme": {
|
|
4447
|
-
"value": null,
|
|
4448
|
-
"selected": null,
|
|
4449
|
-
"key": "name",
|
|
4450
|
-
"type": "standard",
|
|
4451
|
-
"collection": "themes"
|
|
4452
|
-
},
|
|
4453
|
-
"date": {
|
|
4454
|
-
"$date": "2023-07-06T11:35:07Z"
|
|
4455
|
-
},
|
|
4456
|
-
"modified": {
|
|
4457
|
-
"$date": "2023-07-09T09:50:15.863Z"
|
|
4458
|
-
},
|
|
4459
|
-
"shortCode": "duplicateIds",
|
|
4460
|
-
"severity": "low",
|
|
4461
|
-
"criteria": "errors",
|
|
4462
|
-
"WCAGLevel": "A",
|
|
4463
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/parsing.html",
|
|
4464
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4465
|
-
"shortDescription": "Duplicate IDs Must Be Avoided",
|
|
4466
|
-
"addSROnlyCSS": false,
|
|
4467
|
-
"saveSuccesses": false,
|
|
4468
|
-
"issueDescription": "The ID attribute in HTML provides a unique identifier for elements within the document. Duplicate IDs can lead to unpredictable behavior, especially in scripts or styles that reference them, and can be problematic for assistive technologies. However, it's worth noting that IDs within SVGs often serve different purposes and can be scoped to the SVG, so they are exempt from this rule.",
|
|
4469
|
-
"issueResolution": "<p>Always ensure that IDs are unique within your document. If an ID is used multiple times, consider revising your naming scheme or utilizing classes or data-attributes instead for repeated elements.</p>",
|
|
4470
|
-
"suggestedFix": [
|
|
4471
|
-
{
|
|
4472
|
-
"suggestedFixType": "removeAttribute",
|
|
4473
|
-
"suggestedFixKey": "",
|
|
4474
|
-
"suggestedFixValue": "id",
|
|
4475
|
-
"suggestedFixHTML": ""
|
|
4476
|
-
}
|
|
4477
|
-
]
|
|
4478
|
-
},
|
|
4479
|
-
{
|
|
4480
|
-
"_id": {
|
|
4481
|
-
"$oid": "659bda14bcce6bace5a7e619"
|
|
4482
|
-
},
|
|
4483
|
-
"name": "Hidden Visible Content",
|
|
4484
|
-
"route": "hidden-visible-content",
|
|
4485
|
-
"ordering": 9999999,
|
|
4486
|
-
"owner": {
|
|
4487
|
-
"value": {
|
|
4488
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
4489
|
-
},
|
|
4490
|
-
"selected": null,
|
|
4491
|
-
"key": "name",
|
|
4492
|
-
"type": "standard",
|
|
4493
|
-
"collection": "users"
|
|
4494
|
-
},
|
|
4495
|
-
"enabled": true,
|
|
4496
|
-
"themeCtrl": null,
|
|
4497
|
-
"theme": {
|
|
4498
|
-
"value": null,
|
|
4499
|
-
"selected": null,
|
|
4500
|
-
"key": "name",
|
|
4501
|
-
"type": "standard",
|
|
4502
|
-
"collection": "themes"
|
|
4503
|
-
},
|
|
4504
|
-
"date": {
|
|
4505
|
-
"$date": "2024-01-06T11:35:07Z"
|
|
4506
|
-
},
|
|
4507
|
-
"modified": {
|
|
4508
|
-
"$date": "2024-01-09T09:50:15.863Z"
|
|
4509
|
-
},
|
|
4510
|
-
"shortCode": "hiddenVisibleContent",
|
|
4511
|
-
"isAutoResolvable": true,
|
|
4512
|
-
"engineRules": [
|
|
4513
|
-
"visibility-mismatch"
|
|
4514
|
-
],
|
|
4515
|
-
"severity": "high",
|
|
4516
|
-
"criteria": "errors",
|
|
4517
|
-
"WCAGLevel": "A",
|
|
4518
|
-
"issueWCAGLink": "https://www.w3.org/WAI/WCAG21/Understanding/meaningful-sequence.html",
|
|
4519
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4520
|
-
"shortDescription": "Visible Content Should Not Be Hidden From Assistive Technology",
|
|
4521
|
-
"addSROnlyCSS": false,
|
|
4522
|
-
"saveSuccesses": false,
|
|
4523
|
-
"issueDescription": "Content that is visible to users should also be made available to assistive technologies. This ensures that all users, including those with disabilities, have access to the same information. When content is visible but hidden from assistive technologies, it creates a discrepancy in the information presented to users, which can lead to an incomplete or confusing experience.",
|
|
4524
|
-
"issueResolution": "<p>For visible content, ensure that it is not marked with <strong>aria-hidden=\"true\"</strong> or presented in such a way that screen readers and other assistive technologies cannot perceive it. Instead, use appropriate semantic HTML elements and ARIA roles to describe the content and its purpose. Here is an example of visible content that should be accessible to assistive technologies:\n<pre class=\"language-markup\"><code><!-- Incorrect: Content is visible but hidden from assistive technology -->\n<div aria-hidden=\"true\">Important content here</div>\n\n<!-- Correct: Content is visible and accessible to assistive technology -->\n<div>Important content here</div></code></pre></p>",
|
|
4525
|
-
"suggestedFix": [
|
|
4526
|
-
{
|
|
4527
|
-
"suggestedFixType": "removeAttribute",
|
|
4528
|
-
"suggestedFixKey": "",
|
|
4529
|
-
"suggestedFixValue": "aria-hidden",
|
|
4530
|
-
"suggestedFixHTML": ""
|
|
4531
|
-
}
|
|
4532
|
-
]
|
|
4533
|
-
},
|
|
4534
|
-
{
|
|
4535
|
-
"_id": {
|
|
4536
|
-
"$oid": "64eca748b3dc7f3b8ad467ea"
|
|
4537
|
-
},
|
|
4538
|
-
"name": "Multiple Main Landmarks",
|
|
4539
|
-
"route": "multiple-main-landmarks",
|
|
4540
|
-
"ordering": 9999999,
|
|
4541
|
-
"owner": {
|
|
4542
|
-
"value": {
|
|
4543
|
-
"$oid": "61bf9f03fb0f852408e25252"
|
|
4544
|
-
},
|
|
4545
|
-
"selected": null,
|
|
4546
|
-
"key": "name",
|
|
4547
|
-
"type": "standard",
|
|
4548
|
-
"collection": "users"
|
|
4549
|
-
},
|
|
4550
|
-
"enabled": true,
|
|
4551
|
-
"themeCtrl": null,
|
|
4552
|
-
"theme": {
|
|
4553
|
-
"value": null,
|
|
4554
|
-
"selected": null,
|
|
4555
|
-
"key": "name",
|
|
4556
|
-
"type": "standard",
|
|
4557
|
-
"collection": "themes"
|
|
4558
|
-
},
|
|
4559
|
-
"date": {
|
|
4560
|
-
"$date": "2023-07-06T11:35:07Z"
|
|
4561
|
-
},
|
|
4562
|
-
"modified": {
|
|
4563
|
-
"$date": "2023-07-09T09:50:15.863Z"
|
|
4564
|
-
},
|
|
4565
|
-
"shortCode": "multiMainLandmarks",
|
|
4566
|
-
"severity": "medium",
|
|
4567
|
-
"criteria": "context",
|
|
4568
|
-
"WCAGLevel": "none",
|
|
4569
|
-
"issueWCAGLink": "-",
|
|
4570
|
-
"issueTutorialLink": "https://accessibe.com/support/knowledgebase",
|
|
4571
|
-
"shortDescription": "Avoid Multiple Main Landmarks",
|
|
4572
|
-
"addSROnlyCSS": false,
|
|
4573
|
-
"saveSuccesses": false,
|
|
4574
|
-
"issueDescription": "The <strong><main></strong> element is a landmark that assists users in quickly navigating to the primary content of a page. Multiple <strong><main></strong> elements can confuse assistive technology users as it suggests there are multiple primary content areas on a page. However, there might be valid exceptions where pages are designed with modular or tab-based content sections that have their own primary contents.",
|
|
4575
|
-
"issueResolution": "<p>If there are multiple <strong><main></strong> elements and they are not serving as individual primary contents for modular or tabbed sections, convert the redundant <strong><main></strong> elements to <strong><div></strong> elements.</p><p>If your design contains modular or tab-based sections where each module or tab is intended to have its own primary content, multiple <strong><main></strong> elements can be used. In such cases, ensure that only one <strong><main></strong> is visible at a time and others are hidden, ensuring a clear distinction of the primary content at any given time.</p>",
|
|
4576
|
-
"suggestedFix": [
|
|
4577
|
-
{
|
|
4578
|
-
"suggestedFixType": "tag",
|
|
4579
|
-
"suggestedFixKey": "",
|
|
4580
|
-
"suggestedFixValue": "div",
|
|
4581
|
-
"suggestedFixHTML": ""
|
|
4582
|
-
},
|
|
4583
|
-
{
|
|
4584
|
-
"suggestedFixType": "removeAttribute",
|
|
4585
|
-
"suggestedFixKey": "",
|
|
4586
|
-
"suggestedFixValue": "role",
|
|
4587
|
-
"suggestedFixHTML": ""
|
|
4588
|
-
}
|
|
4589
|
-
]
|
|
4590
|
-
}
|
|
4591
|
-
]
|