.
675 |
--------------------------------------------------------------------------------
/src/wave_docs/wave_docs.json:
--------------------------------------------------------------------------------
1 | {
2 |
3 | "alt_missing": {
4 | "data": {
5 | "name": "alt_missing",
6 | "title": "Missing alternative text",
7 | "type": "error",
8 | "summary": "Image alternative text is not present.",
9 | "purpose": "Each image must have an alt attribute. Without alternative text, the content of an image will not be available to screen reader users or when the image is unavailable.",
10 | "actions": "Add an alt attribute to the image. The attribute value should accurately and succinctly present the content and function of the image. If the content of the image is conveyed in the context or surroundings of the image, or if the image does not convey content or have a function, it should be given empty/null alternative text (alt=\"\").",
11 | "details": "An image does not have an alt attribute.",
12 | "guidelines": [{
13 | "name": "Section 508 (a)",
14 | "link": "http://webaim.org/standards/508/checklist#standarda"
15 | }, {
16 | "name": "1.1.1 Non-text Content (Level A)",
17 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
18 | }]
19 | }
20 | },
21 | "alt_link_missing": {
22 | "data": {
23 | "name": "alt_link_missing",
24 | "title": "Linked image missing alternative text",
25 | "type": "error",
26 | "summary": "An image without alternative text results in an empty link.",
27 | "purpose": "Images that are the only thing within a link must have descriptive alternative text. If an image is within a link that contains no text and that image does not provide alternative text, a screen reader has no content to present to the user regarding the function of the link.",
28 | "actions": "Add appropriate alternative text that presents the content of the image and/or the function of the link.",
29 | "details": "An image without alternative text (missing alt attribute or an alt value that is null/empty or only space characters) is within a link that contains no text and no images with alternative text.",
30 | "guidelines": [{
31 | "name": "Section 508 (a)",
32 | "link": "http://webaim.org/standards/508/checklist#standarda"
33 | }, {
34 | "name": "1.1.1 Non-text Content (Level A)",
35 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
36 | }, {
37 | "name": "2.4.4 Link Purpose (In Context) (Level A)",
38 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.4"
39 | }]
40 | }
41 | },
42 | "alt_spacer_missing": {
43 | "data": {
44 | "name": "alt_spacer_missing",
45 | "title": "Spacer image missing alternative text",
46 | "type": "error",
47 | "summary": "A layout spacer image (which should have null/empty alternative text) does not have an alt attribute.",
48 | "purpose": "Spacer images are used to maintain layout. They do not convey content and should be given null/empty alternative text (alt=\"\") so they are not presented to users and are ignored by screen readers.",
49 | "actions": "If the image is a spacer image, give the image null/empty alternative text (alt=\"\"). Alternatively, consider using CSS instead of spacer images to control positioning and layout.",
50 | "details": "An image is missing an alt attribute and has a width or height of 3 pixels or less or has a file name starting with \"spacer.*\", \"space.*\", or \"blank.*\". ",
51 | "guidelines": [{
52 | "name": "Section 508 (a)",
53 | "link": "http://webaim.org/standards/508/checklist#standarda"
54 | }, {
55 | "name": "1.1.1 Non-text Content (Level A)",
56 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
57 | }]
58 | }
59 | },
60 | "alt_input_missing": {
61 | "data": {
62 | "name": "alt_input_missing",
63 | "title": "Image button missing alternative text",
64 | "type": "error",
65 | "summary": "Alternative text is not present for a form image button.",
66 | "purpose": "Image buttons provide important functionality that must be presented in alternative text. Without alternative text, the function of an image button is not made available to screen reader users or when images are disabled or unavailable.",
67 | "actions": "Add appropriate alternative text that presents the function of the image button (e.g., <input src=\"button.gif\" type=\"image\" alt=\"Submit search\">).",
68 | "details": "An image button (<input type=\"image\">) does not have an alt attribute or has an alt value that is null/empty (alt=\"\") or only space characters.",
69 | "guidelines": [{
70 | "name": "Section 508 (a)",
71 | "link": "http://webaim.org/standards/508/checklist#standarda"
72 | }, {
73 | "name": "1.1.1 Non-text Content (Level A)",
74 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
75 | }, {
76 | "name": "2.4.4 Link Purpose (In Context) (Level A)",
77 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.4"
78 | }]
79 | }
80 | },
81 |
82 | "alt_area_missing": {
83 | "data": {
84 | "name": "alt_area_missing",
85 | "title": "Image map area missing alternative text",
86 | "type": "error",
87 | "summary": "Alternative text is not present for an image map area (hot spot).",
88 | "purpose": "Image map areas or clickable hot spots provide important functionality that must be provided in alternative text. Without alternative text, the function of the area is not made available to screen reader users or when images are unavailable.",
89 | "actions": "Add a descriptive alt attribute value to each area element. Additionally, ensure that the area elements are listed in the code in a logical, intuitive order (e.g., matching the visual order, alphabetically, etc.).",
90 | "details": "An area element does not have the alt attribute or has an alt value that is null/empty (alt=\"\") or only space characters.",
91 | "guidelines": [{
92 | "name": "Section 508 (a)",
93 | "link": "http://webaim.org/standards/508/checklist#standarda"
94 | }, {
95 | "name": "Section 508 (f)",
96 | "link": "http://webaim.org/standards/508/checklist#standardf"
97 | }, {
98 | "name": "1.1.1 Non-text Content (Level A)",
99 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
100 | }, {
101 | "name": "2.4.4 Link Purpose (In Context) (Level A)",
102 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.4"
103 | }]
104 | }
105 | },
106 |
107 | "alt_map_missing": {
108 | "data": {
109 | "name": "alt_map_missing",
110 | "title": "Image map missing alt attribute",
111 | "type": "error",
112 | "summary": "An image that has hot spots does not have an alt attribute.",
113 | "purpose": "Any content or function of an image that uses an image map (hot spots) and does not have an alt attribute will not be available to screen reader users or if the image is unavailable.",
114 | "actions": "Add an alt attribute to the image. Ensure the alt attribute value for the image map image is appropriate. The alternative text is typically null/empty (alt=\"\"), unless the image conveys content not conveyed in the hot spot areas (e.g., \"Map of the United States\").",
115 | "details": "An image element has the usemap attribute and no alt attribute.",
116 | "guidelines": [{
117 | "name": "Section 508 (a)",
118 | "link": "http://webaim.org/standards/508/checklist#standarda"
119 | }, {
120 | "name": "Section 508 (f)",
121 | "link": "http://webaim.org/standards/508/checklist#standardf"
122 | }, {
123 | "name": "1.1.1 Non-text Content (Level A)",
124 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
125 | }]
126 | }
127 | },
128 |
129 | "server_image_map": {
130 | "data": {
131 | "name": "server_image_map",
132 | "title": "Server-side image map",
133 | "type": "error",
134 | "summary": "A server-side image map is present.",
135 | "purpose": "Server-side images maps cannot be made accessible to keyboard-only users.",
136 | "actions": "Replace the server-side image map (an image that, when clicked with the mouse, sends the X and Y coordinates of the click position to a server for analysis) with a client-side map.",
137 | "details": "An image has the ismap attribute.",
138 | "guidelines": [{
139 | "name": "Section 508 (e)",
140 | "link": "http://webaim.org/standards/508/checklist#standarde"
141 | }, {
142 | "name": "Section 508 (f)",
143 | "link": "http://webaim.org/standards/508/checklist#standardf"
144 | }, {
145 | "name": "2.1.1 Keyboard (Level A)",
146 | "link": "http://webaim.org/standards/wcag/checklist#sc2.1.1"
147 | }]
148 | }
149 | },
150 |
151 | "longdesc_invalid": {
152 | "data": {
153 | "name": "longdesc_invalid",
154 | "title": "Invalid longdesc",
155 | "type": "error",
156 | "summary": "The longdesc attribute is not a URL.",
157 | "purpose": "The longdesc attribute of an image must be a valid URL of a page that contains a description of the image content. A longdesc value that contains image description text will not provide any accessibility information.",
158 | "actions": "Make the longdesc attribute value a valid URL/filename or remove the longdesc attribute. Because of poor browser support for longdesc, it is recommended that it always be used in conjunction with a standard link to the long description page. Because of poor browser support for longdesc, it is recommended that longdesc always be used in conjunction with a standard link to the long description page.",
159 | "details": "The longdesc attribute value:\r\n\r\n- is empty
\r\n- is not a URL or filename
\r\n- is a URL or filename with an extension of .jpg, .gif, or .png
\r\n
",
160 | "guidelines": [{
161 | "name": "Section 508 (a)",
162 | "link": "http://webaim.org/standards/508/checklist#standarda"
163 | }, {
164 | "name": "1.1.1 Non-text Content (Level A)",
165 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
166 | }]
167 | }
168 | },
169 |
170 | "label_missing": {
171 | "data": {
172 | "name": "label_missing",
173 | "title": "Missing form label",
174 | "type": "error",
175 | "summary": "A form control does not have a corresponding label.",
176 | "purpose": "If a form control does not have a properly associated text label, the function or purpose of that form control may not be presented to screen reader users. Form labels also provide visible descriptions and larger clickable targets for form controls.",
177 | "actions": "If a text label for a form control is visible, use the <label> element to associate it with its respective form control. If there is no visible label, either provide an associated label, add a descriptive title attribute to the form control, or reference the label(s) using aria-labelledby. Labels are not required for image, submit, reset, button, or hidden form controls.",
178 | "details": "An <input> (except types of image, submit, reset, button, or hidden), <select>, or <textarea> does not have a properly associated label text. A properly associated label is:\r\n\r\n- a <label> element with a for attribute value that is equal to the id of a unique form control\r\n
- a <label> element that surrounds the form control, does not surround any other form controls, and does not reference another element with its for attribute\r\n
- a non-empty title attribute, or\r\n
- a non-empty aria-labelledby attribute.\r\n
",
179 | "guidelines": [{
180 | "name": "Section 508 (n)",
181 | "link": "http://webaim.org/standards/508/checklist#standardn"
182 | }, {
183 | "name": "1.1.1 Non-text Content (Level A)",
184 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
185 | }, {
186 | "name": "1.3.1 Info and Relationships (Level A)",
187 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
188 | }, {
189 | "name": "2.4.6 Headings and Labels (Level AA)",
190 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
191 | }, {
192 | "name": "3.3.2 Labels or Instructions (Level A)",
193 | "link": "http://webaim.org/standards/wcag/checklist#sc3.3.2"
194 | }]
195 | }
196 | },
197 |
198 | "label_empty": {
199 | "data": {
200 | "name": "label_empty",
201 | "title": "Empty form label",
202 | "type": "error",
203 | "summary": "A form label is present, but does not contain any content.",
204 | "purpose": "A <label> element that is associated to a form control but does not contain text will not present any information about the form control to the user.",
205 | "actions": "Ensure that the form label contains text that describes the function of the associated form control. Labels are not required for image, submit, reset, button, or hidden form controls. If a label is not necessary visually, a descriptive title attribute may be added to the form control.",
206 | "details": "A form label is present and associated with an existing form control (using for/id or surrounds the form control), but does not contain any text or images with alternative text.",
207 | "guidelines": [{
208 | "name": "Section 508 (n)",
209 | "link": "http://webaim.org/standards/508/checklist#standardn"
210 | }, {
211 | "name": "1.1.1 Non-text Content (Level A)",
212 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
213 | }, {
214 | "name": "1.3.1 Info and Relationships (Level A)",
215 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
216 | }, {
217 | "name": "2.4.6 Headings and Labels (Level AA)",
218 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
219 | }, {
220 | "name": "3.3.2 Labels or Instructions (Level A)",
221 | "link": "http://webaim.org/standards/wcag/checklist#sc3.3.2"
222 | }]
223 | }
224 | },
225 |
226 | "label_multiple": {
227 | "data": {
228 | "name": "label_multiple",
229 | "title": "Multiple form labels",
230 | "type": "error",
231 | "summary": "A form control has more than one label associated with it.",
232 | "purpose": "A form control should have at most one associated label element. If more than one label element is associated to the control, assistive technology may not read the appropriate label.",
233 | "actions": "Ensure that at most one label element is associated to the form control. If multiple form labels are necessary, use aria-labelledby.",
234 | "details": "Two of more <label>s are associated to a single <input> (except types of image, submit, reset, button, or hidden), <select>, or <textarea>.",
235 | "guidelines": [{
236 | "name": "Section 508 (n)",
237 | "link": "http://webaim.org/standards/508/checklist#standardn"
238 | }, {
239 | "name": "1.1.1 Non-text Content (Level A)",
240 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
241 | }, {
242 | "name": "1.3.1 Info and Relationships (Level A)",
243 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
244 | }, {
245 | "name": "2.4.6 Headings and Labels (Level AA)",
246 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
247 | }, {
248 | "name": "3.3.2 Labels or Instructions (Level A)",
249 | "link": "http://webaim.org/standards/wcag/checklist#sc3.3.2"
250 | }]
251 | }
252 | },
253 |
254 | "title_invalid": {
255 | "data": {
256 | "name": "title_invalid",
257 | "title": "Missing or uninformative page title",
258 | "type": "error",
259 | "summary": "The page title is missing or not descriptive.",
260 | "purpose": "A descriptive title helps users understand a page's purpose or content. Without a proper title, many users (especially those using screen readers or other assistive technology) may have difficulty orienting themselves to the page.",
261 | "actions": "Add a brief, descriptive page title.",
262 | "details": "The page title is missing, empty, contains only whitespace characters, or begins with \"untitled\".",
263 | "guidelines": [{
264 | "name": "2.4.2 Page Titled (Level A)",
265 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.2"
266 | }]
267 | }
268 | },
269 |
270 | "language_missing": {
271 | "data": {
272 | "name": "language_missing",
273 | "title": "Document language missing",
274 | "type": "error",
275 | "summary": "The language of the document is not identified.",
276 | "purpose": "Identifying the language of the page allows screen readers to read the content in the appropriate language. It also facilitates automatic translation of content.",
277 | "actions": "Identify the document language using the <html lang> attribute (e.g., <html lang=\"en\">).",
278 | "details": "The <html lang> attribute is missing or is empty.",
279 | "guidelines": [{
280 | "name": "3.1.1 Language of Page (Level A)",
281 | "link": "http://webaim.org/standards/wcag/checklist#sc3.1.1"
282 | }]
283 | }
284 | },
285 |
286 | "meta_refresh": {
287 | "data": {
288 | "name": "meta_refresh",
289 | "title": "Page refreshes or redirects",
290 | "type": "error",
291 | "summary": "The page is set to automatically change location or refresh using a <meta> tag.",
292 | "purpose": "Pages that automatically change location or refresh pose significant usability issues, particularly for screen reader and keyboard users.",
293 | "actions": "Remove the <meta> refresh and give the user control over time-sensitive content changes.",
294 | "details": "A <meta http-equiv=\"refresh\"> tag is present.",
295 | "guidelines": [{
296 | "name": "Section 508 (p)",
297 | "link": "http://webaim.org/standards/508/checklist#standardp"
298 | }, {
299 | "name": "2.2.1 Timing Adjustable (Level A)",
300 | "link": "http://webaim.org/standards/wcag/checklist#sc2.2.1"
301 | }, {
302 | "name": "2.2.2 Pause, Stop, Hide (Level A)",
303 | "link": "http://webaim.org/standards/wcag/checklist#sc2.2.2"
304 | }]
305 | }
306 | },
307 |
308 | "heading_empty": {
309 | "data": {
310 | "name": "heading_empty",
311 | "title": "Empty heading",
312 | "type": "error",
313 | "summary": "A heading contains no content.",
314 | "purpose": "Some users, especially keyboard and screen reader users, often navigate by heading elements. An empty heading will present no information and may introduce confusion.",
315 | "actions": "Ensure that all headings contain informative content.",
316 | "details": "A heading element is present that contains no text (or only spaces) and no images with alternative text.",
317 | "guidelines": [{
318 | "name": "Section 508 (o)",
319 | "link": "http://webaim.org/standards/508/checklist#standardo"
320 | }, {
321 | "name": "1.3.1 Info and Relationships (Level A)",
322 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
323 | }, {
324 | "name": "2.4.1 Bypass Blocks (Level A)",
325 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
326 | }, {
327 | "name": "2.4.6 Headings and Labels (Level AA)",
328 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
329 | }]
330 | }
331 | },
332 |
333 | "button_empty": {
334 | "data": {
335 | "name": "button_empty",
336 | "title": "Empty button",
337 | "type": "error",
338 | "summary": "A button is empty or has no value text.",
339 | "purpose": "When navigating to a button, descriptive text must be presented to screen reader users to indicate the function of the button.",
340 | "actions": "Place text content within the <button> element or give the <input> element a value attribute.",
341 | "details": "A <button> element is present that contains no text content (or alternative text), or an <input type=\"submit\">, <input type=\"button\">, or <input type=\"reset\"> has an empty or missing value attribute.",
342 | "guidelines": [{
343 | "name": "1.1.1 Non-text Content (Level A)",
344 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
345 | }, {
346 | "name": "2.4.4 Link Purpose (In Context) (Level A)",
347 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.4"
348 | }]
349 | }
350 | },
351 |
352 | "link_empty": {
353 | "data": {
354 | "name": "link_empty",
355 | "title": "Empty link",
356 | "type": "error",
357 | "summary": "A link contains no text.",
358 | "purpose": "If a link contains no text, the function or purpose of the link will not be presented to the user. This can introduce confusion for keyboard and screen reader users.",
359 | "actions": "Remove the empty link or provide text within the link that describes the functionality and/or target of that link.",
360 | "details": "An anchor element has an href attribute, but contains no text (or only spaces) and no images with alternative text.",
361 | "guidelines": [{
362 | "name": "2.4.4 Link Purpose (In Context) (Level A)",
363 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.4"
364 | }]
365 | }
366 | },
367 |
368 | "link_skip_broken": {
369 | "data": {
370 | "name": "link_skip_broken",
371 | "title": "Broken skip link",
372 | "type": "error",
373 | "summary": "A skip navigation link exists, but the target for the link does not exist or the link is not keyboard accessible.",
374 | "purpose": "A link to jump over navigation or jump to the main content of the page assists keyboard users only if the link is properly functioning and is keyboard accessible.",
375 | "actions": "Ensure that the target for the link exists and that the link is not hidden with CSS display:none or visibility:hidden.",
376 | "details": "An in-page link contains the words \"skip\" or \"jump\" and is hidden with CSS display:none or visibility:hidden, or the link has an href attribute that does not match the id value of another element within the page or the name attribute value of an anchor element within the page.",
377 | "guidelines": [{
378 | "name": "Section 508 (o)",
379 | "link": "http://webaim.org/standards/508/checklist#standardo"
380 | }, {
381 | "name": "2.4.1 Bypass Blocks (Level A)",
382 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
383 | }]
384 | }
385 | },
386 |
387 | "th_empty": {
388 | "data": {
389 | "name": "th_empty",
390 | "title": "Empty table header",
391 | "type": "error",
392 | "summary": "A <th> (table header) contains no text.",
393 | "purpose": "The <th> element helps associate table cells with the correct row/column headers. A <th> that contains no text may result in cells with missing or incorrect header information.",
394 | "actions": "If the table cell is a header, provide text within the cell that describes the column or row. If the cell is not a header or must remain empty (such as the top-left cell in a data table), make the cell a <td> rather than a <th>.",
395 | "details": "A <th> element does not contain any text (or contains only spaces) and no images with alternative text.",
396 | "guidelines": [{
397 | "name": "Section 508 (g)",
398 | "link": "http://webaim.org/standards/508/checklist#standardg"
399 | }, {
400 | "name": "Section 508 (h)",
401 | "link": "http://webaim.org/standards/508/checklist#standardh"
402 | }, {
403 | "name": "1.3.1 Info and Relationships (Level A)",
404 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
405 | }]
406 | }
407 | },
408 |
409 | "blink": {
410 | "data": {
411 | "name": "blink",
412 | "title": "Blinking content",
413 | "type": "error",
414 | "summary": "Blinking content is present.",
415 | "purpose": "Blinking content can be distracting and confusing to users, particularly those with certain cognitive disabilities.",
416 | "actions": "Remove the blinking effect (<blink> element or text-decoration:blink style). Important text can be styled in other ways.",
417 | "details": "A non-empty <blink> element or other text has CSS text-decoration:blink styling.",
418 | "guidelines": [{
419 | "name": "2.2.2 Pause, Stop, Hide (Level A)",
420 | "link": "http://webaim.org/standards/wcag/checklist#sc2.2.2"
421 | }]
422 | }
423 | },
424 |
425 | "marquee": {
426 | "data": {
427 | "name": "marquee",
428 | "title": "Marquee",
429 | "type": "error",
430 | "summary": "A <marquee> element is present.",
431 | "purpose": "A marquee element presents scrolling text that the user cannot stop. Scrolling animated content can be distracting and confusing to users, particularly for those with certain cognitive disabilities.",
432 | "actions": "Remove the marquee element. If content must scroll, use an alternative scrolling mechanism that allows the user to pause or stop the animation.",
433 | "details": "A <marquee> element is present.",
434 | "guidelines": [{
435 | "name": "2.2.2 Pause, Stop, Hide (Level A)",
436 | "link": "http://webaim.org/standards/wcag/checklist#sc2.2.2"
437 | }]
438 | }
439 | },
440 |
441 | "aria_reference_broken": {
442 | "data": {
443 | "guidelines": []
444 | }
445 | },
446 |
447 | "alt_suspicious": {
448 | "data": {
449 | "name": "alt_suspicious",
450 | "title": "Suspicious alternative text",
451 | "type": "alert",
452 | "summary": "Alternative text is likely insufficient or contains extraneous information.",
453 | "purpose": "If the alternative text for an image does not provide the same content or information conveyed by the image, that content will not be available to screen reader users and when images are unavailable.",
454 | "actions": "Ensure that the alternative text for the image or image input provides a succinct, yet equivalent alternative to the content and function of the image. Screen readers and browser presentation inform the user that the object is an image, so alternative text of \"image of...\" (and similar) should be avoided. If the image does not convey content or if the content is presented in nearby text (e.g., a caption), null/empty alternative text (alt=\"\") is appropriate.",
455 | "details": "The alt text value of an image or image button:\r\n\r\n- begins with \"graphic of\", \"bullet\", or \"image of\",\r\n
- ends with \"image\" or \"graphic\",\r\n
- contains only space characters (alt=\" \"),\r\n
- is an image file name (e.g. alt=\"photo.gif\"), or\r\n
- is one of the following: \"image\", \"graphic\", \"photo\", \"photograph\", \"drawing\", \"painting\", \"artwork\", \"logo\", \"bullet\", \"button\", \"arrow\", \"more\", \"spacer\", \"blank\", \"chart\", \"table\", \"diagram\", \"graph\", or \"*\".\r\n
",
456 | "guidelines": [{
457 | "name": "Section 508 (a)",
458 | "link": "http://webaim.org/standards/508/checklist#standarda"
459 | }, {
460 | "name": "1.1.1 Non-text Content (Level A)",
461 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
462 | }]
463 | }
464 | },
465 |
466 | "alt_redundant": {
467 | "data": {
468 | "name": "alt_redundant",
469 | "title": "Redundant alternative text",
470 | "type": "alert",
471 | "summary": "The alternative text for an image is the same as nearby or adjacent text.",
472 | "purpose": "Alternative text that is the same as nearby or adjacent text will be presented multiple times to screen readers or when images are unavailable.",
473 | "actions": "Change either the alternative text or the adjacent text to eliminate the redundancy. In most cases, you can give the image empty/null alternative text (alt=\"\") because the content of the image is already provided in context through text. Linked images may often be combined with the adjacent text into one link, in which case the image may be given null/empty alternative text (alt=\"\").",
474 | "details": "The alternative text is the same as text that is within 15 characters of the image.",
475 | "guidelines": [{
476 | "name": "Section 508 (a)",
477 | "link": "http://webaim.org/standards/508/checklist#standarda"
478 | }, {
479 | "name": "1.1.1 Non-text Content (Level A)",
480 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
481 | }]
482 | }
483 | },
484 |
485 | "alt_duplicate": {
486 | "data": {
487 | "name": "alt_duplicate",
488 | "title": "A nearby image has the same alternative text",
489 | "type": "alert",
490 | "summary": "Two images near each other have the same alternative text.",
491 | "purpose": "When two images have the same alternative text, this often causes redundancy or indicates incorrect alternative text.",
492 | "actions": "Ensure that the alternative text for each image or image button is appropriate while removing unnecessary redundancy. If the content of the image is already conveyed elsewhere (through text or the alternative text of a nearby image) or if the image does not convey content, the image may generally be given empty/null alternative text (alt=\"\"). Image buttons always convey a specific function, and thus cannot be given null alternative text.",
493 | "details": "The same alternative text (case insensitive, but not null/empty) is present for two images or image buttons (<input type='image'>) near each other (no more than 2 other images separate them).",
494 | "guidelines": [{
495 | "name": "Section 508 (a)",
496 | "link": "http://webaim.org/standards/508/checklist#standarda"
497 | }, {
498 | "name": "1.1.1 Non-text Content (Level A)",
499 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
500 | }]
501 | }
502 | },
503 |
504 | "alt_long": {
505 | "data": {
506 | "name": "alt_long",
507 | "title": "Long alternative text",
508 | "type": "alert",
509 | "summary": "An image has very long alternative text.",
510 | "purpose": "Alternative text should be succinct, yet descriptive of the content and function of an image. Lengthy alternative text (more than around 100 characters) often indicates that extraneous content or content that is not available to sighted users is being presented.",
511 | "actions": "Ensure the alternative text is succinct, yet descriptive. Ensure that no content is being presented in alternative text that is not available to sighted users viewing the image. When possible, either shorten the alternative text or provide the text alternative via another method (e.g., in text near the image, through a separate description page, etc.).",
512 | "details": "The image's alt attribute value is more than 100 characters. Note that the 100 character limit is a rough and somewhat arbitrary length. For images that present complex content or lengthy text, alternative text longer than 100 characters may be appropriate.",
513 | "guidelines": [{
514 | "name": "Section 508 (a)",
515 | "link": "http://webaim.org/standards/508/checklist#standarda"
516 | }, {
517 | "name": "1.1.1 Non-text Content (Level A)",
518 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
519 | }]
520 | }
521 | },
522 |
523 | "label_orphaned": {
524 | "data": {
525 | "name": "label_orphaned",
526 | "title": "Orphaned form label",
527 | "type": "alert",
528 | "summary": "A form label is present, but it is not correctly associated with a form control.",
529 | "purpose": "An incorrectly associated label does not provide functionality or information about the form control to the user. It usually indicates a coding or other form labeling issues.",
530 | "actions": "Properly associate the label with its corresponding form control. If there is no corresponding form control, remove the label. Labels are not appropriate for image, submit, reset, button, or hidden form controls.",
531 | "details": "A <label> element:\r\n\r\n- does not surround a form control and the for attribute is missing/empty\r\n
- references an element that is not present in the page\r\n
- references an element that is not an <input>, <select> or <textarea> element\r\n
- references an <input> element with image, submit, reset, button, or hidden type\r\n
",
532 | "guidelines": [{
533 | "name": "Section 508 (n)",
534 | "link": "http://webaim.org/standards/508/checklist#standardn"
535 | }, {
536 | "name": "1.1.1 Non-text Content (Level A)",
537 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
538 | }, {
539 | "name": "1.3.1 Info and Relationships (Level A)",
540 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
541 | }, {
542 | "name": "2.4.6 Headings and Labels (Level AA)",
543 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
544 | }, {
545 | "name": "3.3.2 Labels or Instructions (Level A)",
546 | "link": "http://webaim.org/standards/wcag/checklist#sc3.3.2"
547 | }]
548 | }
549 | },
550 |
551 | "fieldset_missing": {
552 | "data": {
553 | "name": "fieldset_missing",
554 | "title": "Missing fieldset",
555 | "type": "alert",
556 | "summary": "A group of check boxes or radio buttons is not enclosed in a fieldset.",
557 | "purpose": "A fieldset provides a visual and structural grouping of related form elements. It is typically necessary for groups of check boxes or radio buttons where a higher level description (called a legend) is necessary to understand the function of the check boxes or radio buttons. The description will be identified by a screen reader only if provided in a fieldset legend.",
558 | "actions": "Determine whether the grouping of check boxes or radio buttons has or needs text that explains the purpose of the check boxes or radio button grouping. If so, mark up the group within a fieldset and put the group description in a legend element.",
559 | "details": "Two or more checkbox or radio input elements within a form have the same name value, but are not enclosed in a fieldset.",
560 | "guidelines": [{
561 | "name": "Section 508 (n)",
562 | "link": "http://webaim.org/standards/508/checklist#standardn"
563 | }, {
564 | "name": "1.1.1 Non-text Content (Level A)",
565 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
566 | }, {
567 | "name": "1.3.1 Info and Relationships (Level A)",
568 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
569 | }, {
570 | "name": "2.4.6 Headings and Labels (Level AA)",
571 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
572 | }, {
573 | "name": "3.3.2 Labels or Instructions (Level A)",
574 | "link": "http://webaim.org/standards/wcag/checklist#sc3.3.2"
575 | }]
576 | }
577 | },
578 |
579 | "legend_missing": {
580 | "data": {
581 | "name": "legend_missing",
582 | "title": "Fieldset missing legend",
583 | "type": "alert",
584 | "summary": "A fieldset does not have a legend.",
585 | "purpose": "A fieldset legend presents a description of the form elements within a fieldset and is especially useful to screen reader users. A legend should be provided when a higher level description is necessary for groups of check boxes, radio buttons, or other form controls.",
586 | "actions": "If a higher level description is necessary for the user to understand the function or purpose of the controls within the fieldset, provide this description within the <legend>. If this description or grouping is not necessary, the fieldset should probably be removed. Note that the legend is repeated to screen reader users for each form control within the fieldset.",
587 | "details": "A fieldset does not have a legend or the legend is empty.",
588 | "guidelines": [{
589 | "name": "Section 508 (n)",
590 | "link": "http://webaim.org/standards/508/checklist#standardn"
591 | }, {
592 | "name": "1.1.1 Non-text Content (Level A)",
593 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
594 | }, {
595 | "name": "1.3.1 Info and Relationships (Level A)",
596 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
597 | }, {
598 | "name": "2.4.6 Headings and Labels (Level AA)",
599 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
600 | }, {
601 | "name": "3.3.2 Labels or Instructions (Level A)",
602 | "link": "http://webaim.org/standards/wcag/checklist#sc3.3.2"
603 | }]
604 | }
605 | },
606 |
607 | "label_title": {
608 | "data": {
609 | "name": "label_title",
610 | "title": "Unlabeled form element with title",
611 | "type": "alert",
612 | "summary": "A form control does not have a label, but has a title.",
613 | "purpose": "The title attribute value for unlabeled form controls will be presented to screen reader users. However, a properly associated text label provides better usability and accessibility and should be used unless the purpose of the form control is intuitive without the label.",
614 | "actions": "If a visible text label is available for the form control, associate the text label to the form control using the label element. This provides additional functionality for end users because if the label is clicked it will set focus to the form control. If the form control is intuitive without a <label>, the title attribute value may be used. Note that the title attribute value will not generally be read by a screen reader if the control has a label and may not be available to sighted users, particularly keyboard-only users.",
615 | "details": "An <input> (except types of image, submit, reset, button, or hidden), <textarea>, or <select> element has a non-empty title attribute value and is missing a label or valid aria-labelledby reference.",
616 | "guidelines": [{
617 | "name": "Section 508 (n)",
618 | "link": "http://webaim.org/standards/508/checklist#standardn"
619 | }, {
620 | "name": "1.1.1 Non-text Content (Level A)",
621 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
622 | }, {
623 | "name": "1.3.1 Info and Relationships (Level A)",
624 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
625 | }, {
626 | "name": "2.4.6 Headings and Labels (Level AA)",
627 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
628 | }, {
629 | "name": "3.3.2 Labels or Instructions (Level A)",
630 | "link": "http://webaim.org/standards/wcag/checklist#sc3.3.2"
631 | }]
632 | }
633 | },
634 |
635 | "heading_missing": {
636 | "data": {
637 | "name": "heading_missing",
638 | "title": "No heading structure",
639 | "type": "alert",
640 | "summary": "The page has no headings.",
641 | "purpose": "Headings (<h1>-<h6>) provide important document structure, outlines, and navigation functionality to assistive technology users. ",
642 | "actions": "Provide a clear, consistent heading structure, generally one <h1> and sub-headings as appropriate. Except for very simple pages, most web pages should have a heading structure.",
643 | "details": "No <h1>-<h6> elements are present in the page.",
644 | "guidelines": [{
645 | "name": "Section 508 (o)",
646 | "link": "http://webaim.org/standards/508/checklist#standardo"
647 | }, {
648 | "name": "1.3.1 Info and Relationships (Level A)",
649 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
650 | }, {
651 | "name": "2.4.2 Page Titled (Level A)",
652 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.2"
653 | }, {
654 | "name": "2.4.6 Headings and Labels (Level AA)",
655 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
656 | }]
657 | }
658 | },
659 |
660 | "h1_missing": {
661 | "data": {
662 | "name": "h1_missing",
663 | "title": "Missing first level heading",
664 | "type": "alert",
665 | "summary": "A page does not have a first level heading.",
666 | "purpose": "Headings facilitate page navigation for users of many assistive technologies. They also provide semantic and visual meaning and structure to the document. A first level heading (<h1>) should be present on nearly all pages. It should contain the most important heading on the page (generally the document title).",
667 | "actions": "If the page presents a main heading, place it within an <h1> element. Add other sub-headings as necessary.",
668 | "details": "A page does not have an <h1> element.",
669 | "guidelines": [{
670 | "name": "Section 508 (o)",
671 | "link": "http://webaim.org/standards/508/checklist#standardo"
672 | }, {
673 | "name": "1.3.1 Info and Relationships (Level A)",
674 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
675 | }, {
676 | "name": "2.4.6 Headings and Labels (Level AA)",
677 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
678 | }]
679 | }
680 | },
681 |
682 | "heading_skipped": {
683 | "data": {
684 | "name": "heading_skipped",
685 | "title": "Skipped heading level",
686 | "type": "alert",
687 | "summary": "A heading level is skipped.",
688 | "purpose": "Headings provide document structure and facilitate keyboard navigation by users of assistive technology. These users may be confused or experience difficulty navigating when heading levels are skipped.",
689 | "actions": "Restructure the document headings to ensure that heading levels are not skipped.",
690 | "details": "A heading level is skipped (e.g., an <h1> is followed by an <h3>, with no intermediate <h2>). Note that an <h1> is not required to be the first heading within the document.",
691 | "guidelines": [{
692 | "name": "Section 508 (o)",
693 | "link": "http://webaim.org/standards/508/checklist#standardo"
694 | }, {
695 | "name": "1.3.1 Info and Relationships (Level A)",
696 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
697 | }, {
698 | "name": "2.4.1 Bypass Blocks (Level A)",
699 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
700 | }, {
701 | "name": "2.4.6 Headings and Labels (Level AA)",
702 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
703 | }]
704 | }
705 | },
706 |
707 | "heading_possible": {
708 | "data": {
709 | "name": "heading_possible",
710 | "title": "Possible heading",
711 | "type": "alert",
712 | "summary": "Text appears to be a heading but is not a heading element.",
713 | "purpose": "Heading elements (<h1>-<h6>) provide important document structure, outlines, and navigation functionality to assistive technology users. If heading text is not a true heading, this information and functionality will not be available for that text.",
714 | "actions": "If the paragraph is a section heading, use a heading element instead (<h1>-<h6>).",
715 | "details": "A <p> element contains less than 50 characters and is either:\r\n\r\n- 20 pixels or bigger, or\r\n
- 16 pixels or bigger and bold and/or italicized.\r\n
",
716 | "guidelines": [{
717 | "name": "Section 508 (o)",
718 | "link": "http://webaim.org/standards/508/checklist#standardo"
719 | }, {
720 | "name": "1.3.1 Info and Relationships (Level A)",
721 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
722 | }, {
723 | "name": "2.4.1 Bypass Blocks (Level A)",
724 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
725 | }, {
726 | "name": "2.4.6 Headings and Labels (Level AA)",
727 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
728 | }]
729 | }
730 | },
731 |
732 | "table_caption_possible": {
733 | "data": {
734 | "name": "table_caption_possible",
735 | "title": "Possible table caption",
736 | "type": "alert",
737 | "summary": "Text appears to be a table caption, but is not a caption element.",
738 | "purpose": "A table caption should be associated with a table using the <caption> element so it will be read by a screen reader with the table content.",
739 | "actions": "If the text is a description of the table, associate the text with the table using the <caption> element (<caption> should be the first element within the <table>).",
740 | "details": "A data table (has at least one table header) that does not already have a caption has:\r\n- A colspan attribute value of 3 or greater on the first cell of the table.\r\n- A element immediately before the table that contains less than 50 characters or contains less than 100 characters and is bold and/or centered.\r\n",
741 | "guidelines": [{
742 | "name": "1.3.1 Info and Relationships (Level A)",
743 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
744 | }]
745 | }
746 | },
747 |
748 | "link_internal_broken": {
749 | "data": {
750 | "name": "link_internal_broken",
751 | "title": "Broken same-page link",
752 | "type": "alert",
753 | "summary": "A link to another location within the page is present but does not have a corresponding target.",
754 | "purpose": "A link to jump to another position within the the page assists users in navigating the web page, but only if the link target exists.",
755 | "actions": "Ensure that the target for the link exists or remove the the same-page link.",
756 | "details": "An in-page link has an href attribute (starting with a #), but does not match either the id value of another element or the name attribute value of an anchor element within the page.",
757 | "guidelines": [{
758 | "name": "2.1.1 Keyboard (Level A)",
759 | "link": "http://webaim.org/standards/wcag/checklist#sc2.1.1"
760 | }]
761 | }
762 | },
763 |
764 | "link_suspicious": {
765 | "data": {
766 | "name": "link_suspicious",
767 | "title": "Suspicious link text",
768 | "type": "alert",
769 | "summary": "Link text contains extraneous text or may not make sense out of context.",
770 | "purpose": "Links, which are often read out of context, should clearly describe the destination or function of the link. Ambiguous text, text that does not make sense out of context, and extraneous text (such as \"click here\") can cause confusion and should be avoided.",
771 | "actions": "Where appropriate, reword the link text so that it is more descriptive of its destination when read out of context. Remove any extraneous text (such as \"click here\").",
772 | "details": "A link (including alt text of linked images) contains the phrase \"click here\" or \"click\", or the link text is \"click here\", \"here\", \"more\", \"more...\", \"details\", \"more details\", \"link\", \"this page\", \"continue\", \"continue reading\", \"read more\", or \"button\".",
773 | "guidelines": [{
774 | "name": "2.4.4 Link Purpose (In Context) (Level A)",
775 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.4"
776 | }]
777 | }
778 | },
779 |
780 | "link_redundant": {
781 | "data": {
782 | "name": "link_redundant",
783 | "title": "Redundant link",
784 | "type": "alert",
785 | "summary": "Adjacent links go to the same URL.",
786 | "purpose": "When adjacent links go to the same location (such as a linked product image and an adjacent linked product name that go to the same product page) this results in additional navigation and repetition for keyboard and screen reader users.",
787 | "actions": "If possible, combine the redundant links into one link and remove any redundant text or alternative text (for example, if a product image and product name are in the same link, the image can usually be given alt=\"\").",
788 | "details": "Two adjacent links go to the same URL.",
789 | "guidelines": [{
790 | "name": "2.4.4 Link Purpose (In Context) (Level A)",
791 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.4"
792 | }]
793 | }
794 | },
795 |
796 | "link_word": {
797 | "data": {
798 | "name": "link_word",
799 | "title": "Link to Word document",
800 | "type": "alert",
801 | "summary": "A link to a Microsoft Word document is present.",
802 | "purpose": "Unless authored with accessibility in mind, Microsoft Word documents often have accessibility issues. Additionally, Word documents are typically viewed using a separate application, and can thus cause confusion and navigation difficulties.",
803 | "actions": "Ensure that the Word document is natively accessible. Additionally, inform the user that the link will open a Word document. Because Word documents have limitations in accessibility (particularly for complex content) and require a separate program, HTML content should usually be used in place of or in addition to the Word document.",
804 | "details": "A link to a .doc or .docx file is present.",
805 | "guidelines": [{
806 | "name": "Section 508 (m)",
807 | "link": "http://webaim.org/standards/508/checklist#standardm"
808 | }]
809 | }
810 | },
811 |
812 | "link_excel": {
813 | "data": {
814 | "name": "link_excel",
815 | "title": "Link to Excel spreadsheet",
816 | "type": "alert",
817 | "summary": "A link to a Microsoft Excel spreadsheet is present.",
818 | "purpose": "Unless authored with accessibility in mind, Microsoft Excel spreadsheets often have accessibility issues. Additionally, Excel documents are typically viewed using a separate application, and can thus cause confusion and navigation difficulties.",
819 | "actions": "Ensure the Excel spreadsheet is natively accessible. Additionally, inform the user that the link will open an Excel spreadsheet. Because Excel spreadsheets have limitations in accessibility (particularly for complex content) and require a separate program, HTML content should usually be used in place of or in addition to the Excel spreadsheet.",
820 | "details": "A link to a .xls or .xlsx file is present.",
821 | "guidelines": [{
822 | "name": "Section 508 (m)",
823 | "link": "http://webaim.org/standards/508/checklist#standardm"
824 | }]
825 | }
826 | },
827 |
828 | "link_powerpoint": {
829 | "data": {
830 | "name": "link_powerpoint",
831 | "title": "Link to PowerPoint document",
832 | "type": "alert",
833 | "summary": "A link to a Microsoft PowerPoint presentation is present.",
834 | "purpose": "Unless authored with accessibility in mind, PowerPoint documents often have accessibility issues. Additionally, PowerPoint documents are typically viewed using a separate application, and can thus cause confusion and navigation difficulties.",
835 | "actions": "Ensure the PowerPoint presentation is natively accessible. Additionally, inform the user that the link will open a PowerPoint document. Because PowerPoint documents have limitations in accessibility (particularly for complex content) and require a separate program, HTML content or an alternative accessible version (e.g., tagged PDF) should usually be used in place of or in addition to the PowerPoint presentation.",
836 | "details": "A link to a .ppt, .pptx, .pps, or .ppsx file is present.",
837 | "guidelines": [{
838 | "name": "Section 508 (m)",
839 | "link": "http://webaim.org/standards/508/checklist#standardm"
840 | }]
841 | }
842 | },
843 |
844 | "link_pdf": {
845 | "data": {
846 | "name": "link_pdf",
847 | "title": "Link to PDF document",
848 | "type": "alert",
849 | "summary": "A link to a PDF document is present.",
850 | "purpose": "Unless authored with accessibility in mind, PDF documents often have accessibility issues. Additionally, PDF documents are typically viewed using a separate application or plug-in, and can thus cause confusion and navigation difficulties.",
851 | "actions": "Ensure the PDF document is natively accessible. Additionally, inform the user that the link will open a PDF document. Because PDF documents may have limitations in accessibility (particularly for complex content) and require a separate program, HTML content should often be used in place of or in addition to the PDF document.",
852 | "details": "A link to a .pdf file is present.",
853 | "guidelines": [{
854 | "name": "Section 508 (m)",
855 | "link": "http://webaim.org/standards/508/checklist#standardm"
856 | }]
857 | }
858 | },
859 |
860 | "link_document": {
861 | "data": {
862 | "name": "link_document",
863 | "title": "Link to document",
864 | "type": "alert",
865 | "summary": "A link to a non-HTML document is present.",
866 | "purpose": "Unless authored with accessibility in mind, documents that are not HTML often have accessibility issues. Additionally, these documents are typically viewed using a separate application, and can thus cause confusion and navigation difficulties.",
867 | "actions": "Ensure the document is authored to be accessible, if possible. Additionally, inform the user that the link will open in a separate program. Because these documents have limitations in accessibility (particularly for complex content) and require a separate program, an accessible format should usually be used in place of or in addition to the document.",
868 | "details": "A link to a .rtf, .wpd, .ods, .odt, .odp, .sxw, .sxc, .sxd, .sxi, .pages, or .key file is present. Word, PowerPoint, Excel, and PDF are identified with separate icons.",
869 | "guidelines": [{
870 | "name": "Section 508 (m)",
871 | "link": "http://webaim.org/standards/508/checklist#standardm"
872 | }]
873 | }
874 | },
875 |
876 | "text_justified": {
877 | "data": {
878 | "guidelines": []
879 | }
880 | },
881 |
882 | "audio_video": {
883 | "data": {
884 | "name": "audio_video",
885 | "title": "Audio/Video",
886 | "type": "alert",
887 | "summary": "An audio or video file or link is present.",
888 | "purpose": "Audio content must be presented in a text format to be fully accessible to users who are deaf and hard of hearing. Video content with audio must have synchronized captions and a transcript. Audio-only content must have a transcript.",
889 | "actions": "For video content, ensure that synchronized captioning and a transcript is provided. For audio-only content, ensure that a transcript is provided.",
890 | "details": "An embedded QuickTime, Windows Media Player, or RealPlayer movie is present or a link is present to a file with one of the following extensions: 3gp, aif, aiff, asf, asx, avi, flv, m4a, m4p, mov, mp2, mp3, mp4, mpa, mpeg, mpeg2, mpg, mpv, ogg, ogv, qtl, ra, ram, smi, smil, wav, wax, webm, wma, wmp, or wmx.",
891 | "guidelines": [{
892 | "name": "Section 508 (b)",
893 | "link": "http://webaim.org/standards/508/checklist#standardb"
894 | }, {
895 | "name": "Section 508 (m)",
896 | "link": "http://webaim.org/standards/508/checklist#standardm"
897 | }, {
898 | "name": "1.2.1 Prerecorded Audio-only and Video-only (Level A)",
899 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.1"
900 | }, {
901 | "name": "1.2.2 Captions (Prerecorded) (Level A)",
902 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.2"
903 | }, {
904 | "name": "1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)",
905 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.3"
906 | }, {
907 | "name": "1.2.5 Audio Description (Prerecorded) (Level AA)",
908 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.5"
909 | }, {
910 | "name": "1.4.2 Audio Control (Level A)",
911 | "link": "http://webaim.org/standards/wcag/checklist#sc1.4.2"
912 | }]
913 | }
914 | },
915 |
916 | "flash": {
917 | "data": {
918 | "name": "flash",
919 | "title": "Flash",
920 | "type": "alert",
921 | "summary": "Flash content is present.",
922 | "purpose": "Flash content, if not authored to be accessible, will typically introduce significant accessibility issues.",
923 | "actions": "If the Flash object does not present content, hide it from screen readers. If content is presented, provide an HTML alternative and/or make the Flash object natively accessible, including providing captions/transcripts when necessary and ensuring that the Flash object is keyboard-accessible.",
924 | "details": "An <object> element is present that has a classid attribute value of \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" or a type attribute value of \"application/x-shockwave-flash\", or an <embed> element is present that has a src attribute value of a .swf file or a type attribute value of \"application/x-shockwave-flash\".",
925 | "guidelines": [{
926 | "name": "Section 508 (b)",
927 | "link": "http://webaim.org/standards/508/checklist#standardb"
928 | }, {
929 | "name": "Section 508 (m)",
930 | "link": "http://webaim.org/standards/508/checklist#standardm"
931 | }, {
932 | "name": "1.2.1 Prerecorded Audio-only and Video-only (Level A)",
933 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.1"
934 | }, {
935 | "name": "1.2.2 Captions (Prerecorded) (Level A)",
936 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.2"
937 | }, {
938 | "name": "1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)",
939 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.3"
940 | }, {
941 | "name": "1.2.5 Audio Description (Prerecorded) (Level AA)",
942 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.5"
943 | }, {
944 | "name": "2.1.2 No Keyboard Trap (Level A)",
945 | "link": "http://webaim.org/standards/wcag/checklist#sc2.1.2"
946 | }]
947 | }
948 | },
949 |
950 | "applet": {
951 | "data": {
952 | "name": "applet",
953 | "title": "Java Applet",
954 | "type": "alert",
955 | "summary": "A Java applet is present.",
956 | "purpose": "Java applets will typically introduce significant accessibility issues.",
957 | "actions": "Where possible, replace the Java content with a more accessible format. If Java is necessary, author the applet to support accessibility to the extent possible.",
958 | "details": "An <applet> element is present.",
959 | "guidelines": [{
960 | "name": "Section 508 (m)",
961 | "link": "http://webaim.org/standards/508/checklist#standardm"
962 | }]
963 | }
964 | },
965 | "plugin": {
966 | "data": {
967 | "name": "plugin",
968 | "title": "Plugin",
969 | "type": "alert",
970 | "summary": "An unidentified plugin is present.",
971 | "purpose": "Plugins allow the introduction of non-HTML content, media players, etc. Because of limitations in non-HTML content, these often introduce accessibility issues.",
972 | "actions": "Provide an HTML alternative or ensure the plugin content is accessible. Provide a link to download any required software.",
973 | "details": "An <object> or <embed> element is present that is not identified as Flash, Quicktime, RealPlayer, or Windows Media Player.",
974 | "guidelines": [{
975 | "name": "Section 508 (m)",
976 | "link": "http://webaim.org/standards/508/checklist#standardm"
977 | }]
978 | }
979 | },
980 | "noscript": {
981 | "data": {
982 | "name": "noscript",
983 | "title": "Noscript element",
984 | "type": "alert",
985 | "summary": "A <noscript> element is present.",
986 | "purpose": "Content within <noscript> is presented if JavaScript is disabled. Because nearly all users (including users of screen readers and other assistive technologies) have JavaScript enabled, <noscript> cannot be used to provide an accessible version of inaccessible scripted content.",
987 | "actions": "Ensure that scripted content is accessible. The <noscript> content will be presented to very few users, but must be accessible if used.",
988 | "details": "A <noscript> element is present.",
989 | "guidelines": [{
990 | "name": "Section 508 (l)",
991 | "link": "http://webaim.org/standards/508/checklist#standardl"
992 | }]
993 | }
994 | },
995 | "event_handler": {
996 | "data": {
997 | "name": "event_handler",
998 | "title": "Device dependent event handler",
999 | "type": "alert",
1000 | "summary": "An event handler is present that may not be accessible.",
1001 | "purpose": "The JavaScript events in use do not appear to be accessible to both mouse and keyboard users. To be fully accessible, critical JavaScript interaction should be device independent.",
1002 | "actions": "Ensure that critical functionality and content is accessible by using a device independent event handler (which responds to both keyboard and mouse) or by using both a mouse dependent and a keyboard dependent event handler.",
1003 | "details": "One of the following are present:\r\n
\r\n- an onmouseover event but not an onfocus event
\r\n- an onclick event on something other than a link, form control, or element with a tabindex value of 0
\r\n- ondblclick
\r\n
",
1004 | "guidelines": [{
1005 | "name": "Section 508 (l)",
1006 | "link": "http://webaim.org/standards/508/checklist#standardl"
1007 | }]
1008 | }
1009 | },
1010 | "javascript_jumpmenu": {
1011 | "data": {
1012 | "name": "javascript_jumpmenu",
1013 | "title": "JavaScript jump menu",
1014 | "type": "alert",
1015 | "summary": "A JavaScript jump menu may be present.",
1016 | "purpose": "A JavaScript jump menu is a select element that triggers a new web page with the onchange event handler. When navigating with the keyboard, each change in the select menu triggers a page change in some web browsers, thus making navigation very difficult.",
1017 | "actions": "If the onchange event handler triggers a new web page, eliminate the JavaScript jump menu and allow the user to change the select menu, then activate an adjacent button to trigger the new page.",
1018 | "details": "The onchange attribute is present on a <select> element.",
1019 | "guidelines": [{
1020 | "name": "Section 508 (l)",
1021 | "link": "http://webaim.org/standards/508/checklist#standardl"
1022 | }, {
1023 | "name": "2.1.1 Keyboard (Level A)",
1024 | "link": "http://webaim.org/standards/wcag/checklist#sc2.1.1"
1025 | }, {
1026 | "name": "3.2.2 On Input (Level A)",
1027 | "link": "http://webaim.org/standards/wcag/checklist#sc3.2.2"
1028 | }]
1029 | }
1030 | },
1031 | "accesskey": {
1032 | "data": {
1033 | "name": "accesskey",
1034 | "title": "Accesskey",
1035 | "type": "alert",
1036 | "summary": "An accesskey attribute is present.",
1037 | "purpose": "Accesskey provides a way to define shortcut keys for web page elements. Accesskeys often conflict with user or assistive technology shortcut keys and should be avoided or implemented with care.",
1038 | "actions": "Remove the accesskey or be aware that the accesskey may conflict with user shortcut keys.",
1039 | "details": "An element has an accesskey attribute.",
1040 | "guidelines": [{
1041 | "name": "2.4.1 Bypass Blocks (Level A)",
1042 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1043 | }]
1044 | }
1045 | },
1046 | "tabindex": {
1047 | "data": {
1048 | "name": "tabindex",
1049 | "title": "Tabindex",
1050 | "type": "alert",
1051 | "summary": "A positive tabindex value is present.",
1052 | "purpose": "Tabindex values of 1 or greater specify an explicit tab/navigation order for page elements. Because it modifies the default tab order, cause confusion, and result in decreased keyboard accessibility, it should be avoided.",
1053 | "actions": "If the natural tab order is already logical, remove the tabindex. Otherwise, consider restructuring the page so that tabindex is not needed. If tabindex is maintained, ensure that the resulting navigation is logical and complete.",
1054 | "details": "A tabindex attribute is present and has a positive value.",
1055 | "guidelines": [{
1056 | "name": "2.4.3 Focus Order (Level A)",
1057 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.3"
1058 | }]
1059 | }
1060 | },
1061 | "text_small": {
1062 | "data": {
1063 | "name": "text_small",
1064 | "title": "Very small text",
1065 | "type": "alert",
1066 | "summary": "Text is very small.",
1067 | "purpose": "Text which is very small is difficult to read, particularly for those with low vision.",
1068 | "actions": "Increase the text to a more readable size.",
1069 | "details": "Text is present that is sized 10 pixels or smaller.",
1070 | "guidelines": []
1071 | }
1072 | },
1073 | "underline": {
1074 | "data": {
1075 | "name": "underline",
1076 | "title": "Underlined text",
1077 | "type": "alert",
1078 | "summary": "Underlined text is present.",
1079 | "purpose": "Underlines almost universally indicates linked text. Consider removing the underline from the non-link text. Other styling (e.g., bold or italics) can be used to differentiate the text.",
1080 | "actions": "Unless there is a distinct need for the underlined text, remove the underline from it. ",
1081 | "details": "A <u> element is present.",
1082 | "guidelines": []
1083 | }
1084 | },
1085 | "title_redundant": {
1086 | "data": {
1087 | "name": "title_redundant",
1088 | "title": "Redundant title text",
1089 | "type": "alert",
1090 | "summary": "Title attribute text is the same as text or alternative text.",
1091 | "purpose": "The title attribute value is used to provide advisory information. It typically appears when the users hovers the mouse over an element. The advisory information presented should not be identical to or very similar to the element text or alternative text.",
1092 | "actions": "In most cases the title attribute can be removed, otherwise modify it to provide advisory, but not redundant information. Note that the title text may or may not be read by a screen reader and is typically inaccessible to sighted keyboard users. ",
1093 | "details": "A title attribute value is identical to element text or image alternative text.",
1094 | "guidelines": []
1095 | }
1096 | },
1097 | "alt": {
1098 | "data": {
1099 | "name": "alt",
1100 | "title": "Alternative text",
1101 | "type": "feature",
1102 | "summary": "Image alternative text is present.",
1103 | "purpose": "Alternative text presents the content or function of an image to screen reader users or in other situations where images cannot be seen or are unavailable.",
1104 | "actions": "Ensure that the alternative text conveys the content and function of the image accurately and succinctly. The alt attribute should be equivalent, accurate, and succinct.",
1105 | "details": "A non-empty alt attribute is present on an image.",
1106 | "guidelines": [{
1107 | "name": "Section 508 (a)",
1108 | "link": "http://webaim.org/standards/508/checklist#standarda"
1109 | }, {
1110 | "name": "1.1.1 Non-text Content (Level A)",
1111 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
1112 | }]
1113 | }
1114 | },
1115 | "alt_null": {
1116 | "data": {
1117 | "name": "alt_null",
1118 | "title": "Null or empty alternative text",
1119 | "type": "feature",
1120 | "summary": "Alternative text is null or empty (alt=\"\").",
1121 | "purpose": "If an image does not convey content or if the content of the image is conveyed elsewhere (such as in a caption or nearby text), the image should have empty/null alternative text (alt=\"\") to ensure that it is ignored by a screen reader and is hidden when images are disabled or unavailable.",
1122 | "actions": "Ensure that the image does not convey content or that the content of the image is conveyed in nearby text (e.g., a caption).",
1123 | "details": "An image has alt=\"\".",
1124 | "guidelines": [{
1125 | "name": "Section 508 (a)",
1126 | "link": "http://webaim.org/standards/508/checklist#standarda"
1127 | }, {
1128 | "name": "1.1.1 Non-text Content (Level A)",
1129 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
1130 | }]
1131 | }
1132 | },
1133 | "alt_spacer": {
1134 | "data": {
1135 | "name": "alt_spacer",
1136 | "title": "Null or empty alternative text on spacer",
1137 | "type": "feature",
1138 | "summary": "Alternative text is null or empty (alt=\"\") on a spacer image.",
1139 | "purpose": "Spacer images are used to control layout or positioning. Because they do not convey content, they should be given empty/null alternative text (alt=\"\") to ensure that the content is not presented to screen reader users and is hidden when images are disabled or unavailable.",
1140 | "actions": "Ensure that the image is a spacer image and that it does not convey content. Consider using CSS instead of spacer images for better control of positioning and layout.",
1141 | "details": "An image with width and/or height of 3 pixels or less or file name of spacer.*, space.*, or blank.* has empty/null alt attribute value (alt=\"\").",
1142 | "guidelines": [{
1143 | "name": "Section 508 (a)",
1144 | "link": "http://webaim.org/standards/508/checklist#standarda"
1145 | }, {
1146 | "name": "1.1.1 Non-text Content (Level A)",
1147 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
1148 | }]
1149 | }
1150 | },
1151 | "alt_link": {
1152 | "data": {
1153 | "name": "alt_link",
1154 | "title": "Linked image with alternative text",
1155 | "type": "feature",
1156 | "summary": "Alternative text is present for an image that is within a link.",
1157 | "purpose": "Including appropriate alternative text on an image within a link ensures that the function and purpose of the link and the content of the image is available to screen reader users or when images are unavailable.",
1158 | "actions": "Ensure that the alternative text presents the content of the image and/or the function of the link. If the full content and function of the link is presented in text within the link (an image and a text caption both within the same link, for example), then the image should generally be given empty/null alternative text (alt=\"\") to avoid redundancy.",
1159 | "details": "An image element has non-empty alternative text, is within a link, and no other text (or images with alternative text) is present within the link.",
1160 | "guidelines": [{
1161 | "name": "Section 508 (a)",
1162 | "link": "http://webaim.org/standards/508/checklist#standarda"
1163 | }, {
1164 | "name": "1.1.1 Non-text Content (Level A)",
1165 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
1166 | }, {
1167 | "name": "2.4.4 Link Purpose (In Context) (Level A)",
1168 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.4"
1169 | }]
1170 | }
1171 | },
1172 | "alt_input": {
1173 | "data": {
1174 | "name": "alt_input",
1175 | "title": "Image button with alternative text",
1176 | "type": "feature",
1177 | "summary": "Alternative text is present for an image input element.",
1178 | "purpose": "Providing the functionality of image buttons in alternative text ensures that the button function is available to all users.",
1179 | "actions": "Ensure that the alt attribute value presents the content and function of the image input element. If the image presents text, typically this text should be provided in the alt attribute.",
1180 | "details": "An <input type=\"image\"> element has a non-empty alt attribute value.",
1181 | "guidelines": [{
1182 | "name": "Section 508 (a)",
1183 | "link": "http://webaim.org/standards/508/checklist#standarda"
1184 | }, {
1185 | "name": "1.1.1 Non-text Content (Level A)",
1186 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
1187 | }, {
1188 | "name": "2.4.4 Link Purpose (In Context) (Level A)",
1189 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.4"
1190 | }]
1191 | }
1192 | },
1193 | "alt_map": {
1194 | "data": {
1195 | "name": "alt_map",
1196 | "title": "Image map with alt attribute",
1197 | "type": "feature",
1198 | "summary": "An alt attribute is present for an image that has hot spots.",
1199 | "purpose": "If an image that uses an image map provides content or a function that is not already available through the hot spots (and their respective alternative texts), that information must be in the image's alt attribute in order for it to be available to screen reader users or when images are disabled.",
1200 | "actions": "Ensure that the alternative text for the image map image is appropriate. The alternative text is typically empty (alt=\"\"), unless the image conveys content not conveyed in the hot spot areas (e.g., \"Map of the United States\").",
1201 | "details": "An <img> element has both usemap and alt attributes.",
1202 | "guidelines": [{
1203 | "name": "Section 508 (a)",
1204 | "link": "http://webaim.org/standards/508/checklist#standarda"
1205 | }, {
1206 | "name": "Section 508 (f)",
1207 | "link": "http://webaim.org/standards/508/checklist#standardf"
1208 | }, {
1209 | "name": "1.1.1 Non-text Content (Level A)",
1210 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
1211 | }]
1212 | }
1213 | },
1214 | "alt_area": {
1215 | "data": {
1216 | "name": "alt_area",
1217 | "title": "Image map area with alternative text",
1218 | "type": "feature",
1219 | "summary": "Alternative text is present for an image map area (hot spot).",
1220 | "purpose": "Presenting the functionality of image map areas (hot spots) in the <area> element's alt attribute value ensures that this information is presented to screen reader users or when images are disabled or unavailable.",
1221 | "actions": "Ensure the alternative text for the area element describes the function of the image map hot spot. Additionally, ensure that the area elements are listed in the code in a logical, intuitive order (e.g., matching the visual order, alphabetically, etc.).",
1222 | "details": "An image uses an image map containing an area element with a non-empty alt attribute value.",
1223 | "guidelines": [{
1224 | "name": "Section 508 (a)",
1225 | "link": "http://webaim.org/standards/508/checklist#standarda"
1226 | }, {
1227 | "name": "Section 508 (f)",
1228 | "link": "http://webaim.org/standards/508/checklist#standardf"
1229 | }, {
1230 | "name": "1.1.1 Non-text Content (Level A)",
1231 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
1232 | }, {
1233 | "name": "2.4.4 Link Purpose (In Context) (Level A)",
1234 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.4"
1235 | }]
1236 | }
1237 | },
1238 | "longdesc": {
1239 | "data": {
1240 | "name": "longdesc",
1241 | "title": "Long description",
1242 | "type": "feature",
1243 | "summary": "The longdesc attribute is present for an image.",
1244 | "purpose": "If the content and function of a complex image cannot be adequately presented in succinct alternative text, the longdesc attribute may be used to provide access to a description of the image content.",
1245 | "actions": "Because of poor browser support for longdesc, it is generally not the best way to provide the description of complex images. The description may be provided:\r\n\r\n- in the alt attribute, if possible. Alt text should be succinct (generally no more than ~100 characters).\r\n
- in nearby text (e.g., a caption, data table, etc.)\r\n
- via a link to a separate description page that contains an accurate and equivalent description and (optionally) the longdesc attribute. The longdesc attribute must be the URL of the description page.\r\n
",
1246 | "details": "An image has a longdesc attribute containing a valid URL.",
1247 | "guidelines": [{
1248 | "name": "Section 508 (a)",
1249 | "link": "http://webaim.org/standards/508/checklist#standarda"
1250 | }, {
1251 | "name": "1.1.1 Non-text Content (Level A)",
1252 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
1253 | }]
1254 | }
1255 | },
1256 | "label": {
1257 | "data": {
1258 | "name": "label",
1259 | "title": "Form label",
1260 | "type": "feature",
1261 | "summary": "A form label is present and associated with a form control.",
1262 | "purpose": "A properly associated form label is presented to a screen reader user when the form control is accessed. Additionally, a label can be clicked with the mouse to set focus to the form control.",
1263 | "actions": "Ensure that the label is accurate, descriptive, succinct, and that it is associated with the correct form control element.",
1264 | "details": "A <label> element is present and properly associated to <input> (except types of image, submit, reset, button, or hidden), <textarea>, or <select> element.",
1265 | "guidelines": [{
1266 | "name": "Section 508 (n)",
1267 | "link": "http://webaim.org/standards/508/checklist#standardn"
1268 | }, {
1269 | "name": "1.1.1 Non-text Content (Level A)",
1270 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
1271 | }, {
1272 | "name": "1.3.1 Info and Relationships (Level A)",
1273 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1274 | }, {
1275 | "name": "2.4.6 Headings and Labels (Level AA)",
1276 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
1277 | }]
1278 | }
1279 | },
1280 | "fieldset": {
1281 | "data": {
1282 | "name": "fieldset",
1283 | "title": "Fieldset",
1284 | "type": "feature",
1285 | "summary": "A fieldset is present.",
1286 | "purpose": "A fieldset provides a visual and structural grouping of related form elements. If present, a fieldset legend presents a description of the grouped form elements to screen reader users. A fieldset and legend are typically necessary for groups of check boxes or radio buttons.",
1287 | "actions": "Ensure that the fieldset encloses the proper form elements. Most fieldsets should have an accurate, descriptive, and succinct legend. Note that the legend is repeated to screen reader users for each form control within the fieldsets.",
1288 | "details": "A fieldset element is present.",
1289 | "guidelines": [{
1290 | "name": "Section 508 (n)",
1291 | "link": "http://webaim.org/standards/508/checklist#standardn"
1292 | }, {
1293 | "name": "1.1.1 Non-text Content (Level A)",
1294 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
1295 | }, {
1296 | "name": "1.3.1 Info and Relationships (Level A)",
1297 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1298 | }, {
1299 | "name": "2.4.6 Headings and Labels (Level AA)",
1300 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
1301 | }]
1302 | }
1303 | },
1304 | "link_skip": {
1305 | "data": {
1306 | "name": "link_skip",
1307 | "title": "Skip link",
1308 | "type": "feature",
1309 | "summary": "A link is present which allows users to skip over navigation or other content.",
1310 | "purpose": "A link that provides functionality for the user to jump over navigation or other elements or jump to the main content of the page greatly assists keyboard users in navigating the web page.",
1311 | "actions": "Ensure that the link is functioning properly and that the link text adequately describes the link functionality. If the skip link is hidden from sighted users, it should be made visible within the page when it has keyboard focus and must be accessible via the keyboard (do not use CSS display:none or visibility:hidden).",
1312 | "details": "An in-page link:\r\n\r\n- starts with the words \"skip\" or \"jump\"\r\n
- has an href attribute value and that value matches the id value of another element within the page or the name attribute value of an anchor element within the page.\r\n
- is NOT hidden with CSS display:none or visibility:hidden (this would result in a inaccessible \"skip\" link).\r\n
",
1313 | "guidelines": [{
1314 | "name": "Section 508 (o)",
1315 | "link": "http://webaim.org/standards/508/checklist#standardo"
1316 | }, {
1317 | "name": "2.4.1 Bypass Blocks (Level A)",
1318 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1319 | }]
1320 | }
1321 | },
1322 | "link_skip_target": {
1323 | "data": {
1324 | "name": "link_skip_target",
1325 | "title": "Skip link target",
1326 | "type": "feature",
1327 | "summary": "A target for a \"skip\" link is present.",
1328 | "purpose": "A \"skip\" target identifies the location within the page where reading and navigation will resume after a \"skip\" link is activated.",
1329 | "actions": "Ensure that the element is at the appropriate place within the page.",
1330 | "details": "An id value for any element or a name value for an anchor element matches the href value of a \"skip\" link within the page.",
1331 | "guidelines": [{
1332 | "name": "Section 508 (o)",
1333 | "link": "http://webaim.org/standards/508/checklist#standardo"
1334 | }, {
1335 | "name": "2.4.1 Bypass Blocks (Level A)",
1336 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1337 | }]
1338 | }
1339 | },
1340 | "lang": {
1341 | "data": {
1342 | "name": "lang",
1343 | "title": "Element language",
1344 | "type": "feature",
1345 | "summary": "The language of a page element or part is identified.",
1346 | "purpose": "Identifying the language of an element or portion of page that is in a different language than the page itself allows screen readers to read the content appropriately.",
1347 | "actions": "Ensure the lang attribute is necessary (it is different than the page's language) and the attribute value is a valid language code.",
1348 | "details": "An element has a non-empty lang attribute value.",
1349 | "guidelines": [{
1350 | "name": "3.1.2 Language of Parts (Level AA)",
1351 | "link": "http://webaim.org/standards/wcag/checklist#sc3.1.2"
1352 | }]
1353 | }
1354 | },
1355 | "table_layout": {
1356 | "data": {
1357 | "name": "table_layout",
1358 | "title": "Layout table",
1359 | "type": "structure",
1360 | "summary": "A layout table is present.",
1361 | "purpose": "While tables are primarily intended for the presentation of tabular information or data, they are often used to control page layout and formatting. Layout tables can introduce reading and navigation order issues and must not contain header (<th>) cells.",
1362 | "actions": "Ensure that the table is indeed a layout table and that it does not contain tabular data. If it is a data table, provide appropriate header (<th>) cells. Verify that the reading and navigation order of table content (based on underlying source code order) is logical.",
1363 | "details": "A <table> element is present that does not contain any header (<th>) cells.",
1364 | "guidelines": []
1365 | }
1366 | },
1367 | "table_data": {
1368 | "data": {
1369 | "name": "table_data",
1370 | "title": "Data table",
1371 | "type": "structure",
1372 | "summary": "A data table is present.",
1373 | "purpose": "Data tables present tabular data. Data tables should contain table header cells that identify the content of their respective row and/or columns. Tables with proper table headers provide additional information and navigation for screen reader users.",
1374 | "actions": "Ensure that the table contains tabular data and that it is not used merely for page layout. Ensure that all column and row headers are <th> elements and ensure the data cells are associated with their proper header cells (typically by assigning scope to the table headers). Where appropriate, associate a descriptive caption (<caption> element) to the table.",
1375 | "details": "A <table> element is present that contains at least one table header cell (<th>).",
1376 | "guidelines": [{
1377 | "name": "Section 508 (g)",
1378 | "link": "http://webaim.org/standards/508/checklist#standardg"
1379 | }, {
1380 | "name": "Section 508 (h)",
1381 | "link": "http://webaim.org/standards/508/checklist#standardh"
1382 | }, {
1383 | "name": "1.3.1 Info and Relationships (Level A)",
1384 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1385 | }]
1386 | }
1387 | },
1388 | "table_caption": {
1389 | "data": {
1390 | "name": "table_caption",
1391 | "title": "Table caption",
1392 | "type": "structure",
1393 | "summary": "A table caption is present.",
1394 | "purpose": "An associated table caption will be read by a screen reader with the table content.",
1395 | "actions": "Ensure the table caption is properly associated with the correct table (<caption> should be the first element within the <table>) and that it provides a succinct description of the table.",
1396 | "details": "A <caption> element is present.",
1397 | "guidelines": [{
1398 | "name": "1.3.1 Info and Relationships (Level A)",
1399 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1400 | }]
1401 | }
1402 | },
1403 | "th": {
1404 | "data": {
1405 | "name": "th",
1406 | "title": "Table header cell",
1407 | "type": "structure",
1408 | "summary": "A table header cell (<th>) is present.",
1409 | "purpose": "Table headers describe the content of their respective row or column. They can be identified by screen readers when data cells are encountered.",
1410 | "actions": "Ensure the cell is a table header, otherwise change it to a data cell (<td>). For complex tables (particularly when there are spanned cells), the relationship between header and data cells may need to be defined using scope (e.g., <th scope=\"col\"> or <th scope=\"row\">) or headers and id attributes.",
1411 | "details": "A <th> element is present that does not have a scope attribute value of \"row\" or \"col\".",
1412 | "guidelines": [{
1413 | "name": "Section 508 (g)",
1414 | "link": "http://webaim.org/standards/508/checklist#standardg"
1415 | }, {
1416 | "name": "Section 508 (h)",
1417 | "link": "http://webaim.org/standards/508/checklist#standardh"
1418 | }, {
1419 | "name": "1.3.1 Info and Relationships (Level A)",
1420 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1421 | }]
1422 | }
1423 | },
1424 | "th_col": {
1425 | "data": {
1426 | "name": "th_col",
1427 | "title": "Column header cell",
1428 | "type": "structure",
1429 | "summary": "A table column header (<th scope=\"col\">) is present.",
1430 | "purpose": "Adding a column scope to a table header ensures the cells within that column will be programmatically associated to that header, particularly with complex tables. This facilitates screen reader navigation and orientation within the data table.",
1431 | "actions": "Ensure that the cell is actually a header cell for tabular data and that it is a column header.",
1432 | "details": "A table header cell (<th>) is present that has a scope attribute value of \"col\".",
1433 | "guidelines": [{
1434 | "name": "Section 508 (g)",
1435 | "link": "http://webaim.org/standards/508/checklist#standardg"
1436 | }, {
1437 | "name": "Section 508 (h)",
1438 | "link": "http://webaim.org/standards/508/checklist#standardh"
1439 | }, {
1440 | "name": "1.3.1 Info and Relationships (Level A)",
1441 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1442 | }]
1443 | }
1444 | },
1445 | "th_row": {
1446 | "data": {
1447 | "name": "th_row",
1448 | "title": "Row header cell",
1449 | "type": "structure",
1450 | "summary": "A table row header (<th scope=\"row\">) is present.",
1451 | "purpose": "Adding a row scope to a table header ensures the cells within that row will be programmatically associated to that header, particularly with complex tables. This facilitates screen reader navigation and orientation within the data table.",
1452 | "actions": "Ensure that the cell is actually a header cell for tabular data and that it is a row header.",
1453 | "details": "A table header cell (<th>) is present that has a scope attribute value of \"row\".",
1454 | "guidelines": [{
1455 | "name": "Section 508 (g)",
1456 | "link": "http://webaim.org/standards/508/checklist#standardg"
1457 | }, {
1458 | "name": "Section 508 (h)",
1459 | "link": "http://webaim.org/standards/508/checklist#standardh"
1460 | }, {
1461 | "name": "1.3.1 Info and Relationships (Level A)",
1462 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1463 | }]
1464 | }
1465 | },
1466 | "h1": {
1467 | "data": {
1468 | "name": "h1",
1469 | "title": "Heading level 1",
1470 | "type": "structure",
1471 | "summary": "A first level heading (<h1> element) is present.",
1472 | "purpose": "Headings facilitate page navigation for users of assistive technologies. They also provide semantic and visual meaning and structure to the document. First level headings should contain the most important heading(s) on the page (generally the document title).",
1473 | "actions": "Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.",
1474 | "details": "An <h1> element is present.",
1475 | "guidelines": [{
1476 | "name": "Section 508 (o)",
1477 | "link": "http://webaim.org/standards/508/checklist#standardo"
1478 | }, {
1479 | "name": "1.3.1 Info and Relationships (Level A)",
1480 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1481 | }, {
1482 | "name": "2.4.1 Bypass Blocks (Level A)",
1483 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1484 | }, {
1485 | "name": "2.4.6 Headings and Labels (Level AA)",
1486 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
1487 | }]
1488 | }
1489 | },
1490 | "h2": {
1491 | "data": {
1492 | "name": "h2",
1493 | "title": "Heading level 2",
1494 | "type": "structure",
1495 | "summary": "A second level heading (<h2> element) is present.",
1496 | "purpose": "Headings facilitate page navigation for users of assistive technologies. They also provide semantic and visual meaning and structure to the document.",
1497 | "actions": "Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.",
1498 | "details": "An <h2> element is present.",
1499 | "guidelines": [{
1500 | "name": "Section 508 (o)",
1501 | "link": "http://webaim.org/standards/508/checklist#standardo"
1502 | }, {
1503 | "name": "1.3.1 Info and Relationships (Level A)",
1504 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1505 | }, {
1506 | "name": "2.4.1 Bypass Blocks (Level A)",
1507 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1508 | }, {
1509 | "name": "2.4.6 Headings and Labels (Level AA)",
1510 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
1511 | }]
1512 | }
1513 | },
1514 | "h3": {
1515 | "data": {
1516 | "name": "h3",
1517 | "title": "Heading level 3",
1518 | "type": "structure",
1519 | "summary": "A third level heading (<h3> element) is present.",
1520 | "purpose": "Headings facilitate page navigation for users of assistive technologies. They also provide semantic and visual meaning and structure to the document.",
1521 | "actions": "Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.",
1522 | "details": "An <h3> element is present.",
1523 | "guidelines": [{
1524 | "name": "Section 508 (o)",
1525 | "link": "http://webaim.org/standards/508/checklist#standardo"
1526 | }, {
1527 | "name": "1.3.1 Info and Relationships (Level A)",
1528 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1529 | }, {
1530 | "name": "2.4.1 Bypass Blocks (Level A)",
1531 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1532 | }, {
1533 | "name": "2.4.6 Headings and Labels (Level AA)",
1534 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
1535 | }]
1536 | }
1537 | },
1538 | "h4": {
1539 | "data": {
1540 | "name": "h4",
1541 | "title": "Heading level 4",
1542 | "type": "structure",
1543 | "summary": "A fourth level heading (<h4> element) is present.",
1544 | "purpose": "Headings facilitate page navigation for users of assistive technologies. They also provide semantic and visual meaning and structure to the document.",
1545 | "actions": "Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.",
1546 | "details": "An <h4> element is present.",
1547 | "guidelines": [{
1548 | "name": "Section 508 (o)",
1549 | "link": "http://webaim.org/standards/508/checklist#standardo"
1550 | }, {
1551 | "name": "1.3.1 Info and Relationships (Level A)",
1552 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1553 | }, {
1554 | "name": "2.4.1 Bypass Blocks (Level A)",
1555 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1556 | }, {
1557 | "name": "2.4.6 Headings and Labels (Level AA)",
1558 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
1559 | }]
1560 | }
1561 | },
1562 | "h5": {
1563 | "data": {
1564 | "name": "h5",
1565 | "title": "Heading level 5",
1566 | "type": "structure",
1567 | "summary": "A fifth level heading (<h5> element) is present.",
1568 | "purpose": "Headings facilitate page navigation for users of assistive technologies. They also provide semantic and visual meaning and structure to the document.",
1569 | "actions": "Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.",
1570 | "details": "An <h5> element is present.",
1571 | "guidelines": [{
1572 | "name": "Section 508 (o)",
1573 | "link": "http://webaim.org/standards/508/checklist#standardo"
1574 | }, {
1575 | "name": "1.3.1 Info and Relationships (Level A)",
1576 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1577 | }, {
1578 | "name": "2.4.1 Bypass Blocks (Level A)",
1579 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1580 | }, {
1581 | "name": "2.4.6 Headings and Labels (Level AA)",
1582 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
1583 | }]
1584 | }
1585 | },
1586 | "h6": {
1587 | "data": {
1588 | "name": "h6",
1589 | "title": "Heading level 6",
1590 | "type": "structure",
1591 | "summary": "A sixth level heading (<h6> element) is present.",
1592 | "purpose": "Headings facilitate page navigation for users of assistive technologies. They also provide semantic and visual meaning and structure to the document.",
1593 | "actions": "Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.",
1594 | "details": "An <h6> element is present.",
1595 | "guidelines": [{
1596 | "name": "Section 508 (o)",
1597 | "link": "http://webaim.org/standards/508/checklist#standardo"
1598 | }, {
1599 | "name": "1.3.1 Info and Relationships (Level A)",
1600 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1601 | }, {
1602 | "name": "2.4.1 Bypass Blocks (Level A)",
1603 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1604 | }, {
1605 | "name": "2.4.6 Headings and Labels (Level AA)",
1606 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
1607 | }]
1608 | }
1609 | },
1610 | "ol": {
1611 | "data": {
1612 | "name": "ol",
1613 | "title": "Ordered list",
1614 | "type": "structure",
1615 | "summary": "An ordered (numbered) list (<ol> element) is present.",
1616 | "purpose": "Ordered lists present a group of related sequential items. Users of assistive technologies can navigate by and within lists.",
1617 | "actions": "Ensure that an ordered (numbered) list is appropriate for the context. If list items are parallel or the order of the items is not important, an unordered list (<ul>) is likely more appropriate.",
1618 | "details": "An <ol> element is present.",
1619 | "guidelines": [{
1620 | "name": "1.3.1 Info and Relationships (Level A)",
1621 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1622 | }]
1623 | }
1624 | },
1625 | "ul": {
1626 | "data": {
1627 | "name": "ul",
1628 | "title": "Unordered list",
1629 | "type": "structure",
1630 | "summary": "An unordered (bulleted) list (<ul> element) is present.",
1631 | "purpose": "Ordered lists present a group of related, parallel items. Users of many assistive technologies can navigate by and within lists.",
1632 | "actions": "Ensure that an unordered (bulleted) list is appropriate for the context. If list items are sequential or numbered, an ordered list (<ol>) is likely more appropriate.",
1633 | "details": "A <ul> element is present.",
1634 | "guidelines": [{
1635 | "name": "1.3.1 Info and Relationships (Level A)",
1636 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1637 | }]
1638 | }
1639 | },
1640 | "dl": {
1641 | "data": {
1642 | "name": "dl",
1643 | "title": "Definition/description list",
1644 | "type": "structure",
1645 | "summary": "A definition/description list (<dl> element) is present.",
1646 | "purpose": "Definition lists (called description lists in HTML5) present the descriptions for terms or name/value pairs. Users of many assistive technologies can navigate by and within lists.",
1647 | "actions": "Ensure that the list is appropriate for the context (it is used for definitions or name/value pairs) and that definition terms (<dt>) and descriptions (<dd>) are provided.",
1648 | "details": "A <dl> element is present. ",
1649 | "guidelines": [{
1650 | "name": "1.3.1 Info and Relationships (Level A)",
1651 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1652 | }]
1653 | }
1654 | },
1655 | "iframe": {
1656 | "data": {
1657 | "name": "iframe",
1658 | "title": "Inline Frame",
1659 | "type": "structure",
1660 | "summary": "An inline frame (<iframe>) is present. \t",
1661 | "purpose": "The content of an inline frame is read as if it were part of the page that contains it. The content of the iframe must be accessible. A title attribute value for the iframe will generally be read by a screen reader when the iframe is encountered.",
1662 | "actions": "Ensure that the content within the iframe is accessible. Optionally, a title attribute value can be added to provide a brief, advisory description of the iframe.",
1663 | "details": "An <iframe> element is present.",
1664 | "guidelines": []
1665 | }
1666 | },
1667 | "html5_header": {
1668 | "data": {
1669 | "name": "html5_header",
1670 | "title": "HTML5 header",
1671 | "type": "html5",
1672 | "summary": "A <header> element is present.",
1673 | "purpose": "The <header> element identifies page introduction or navigation. It typically surrounds the site or page name, logo, top navigation, or other header content. HTML5 headers facilitate page semantics and navigation.",
1674 | "actions": "Ensure the element surrounds and defines page header content. The header element may be used with ARIA role=\"banner\" to ensure better accessibility support.",
1675 | "details": "A <header> element is present.",
1676 | "guidelines": [{
1677 | "name": "1.3.1 Info and Relationships (Level A)",
1678 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1679 | }, {
1680 | "name": "2.4.1 Bypass Blocks (Level A)",
1681 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1682 | }]
1683 | }
1684 | },
1685 | "html5_nav": {
1686 | "data": {
1687 | "name": "html5_nav",
1688 | "title": "HTML5 navigation",
1689 | "type": "html5",
1690 | "summary": "A <nav> element is present.",
1691 | "purpose": "The <nav> element identifies a section of navigation links and can facilitate page semantics and navigation.",
1692 | "actions": "Ensure the element defines page navigation. The <nav> element may be used with ARIA role=\"navigation\" to ensure better accessibility support.",
1693 | "details": "A <nav> element is present.",
1694 | "guidelines": [{
1695 | "name": "1.3.1 Info and Relationships (Level A)",
1696 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1697 | }, {
1698 | "name": "2.4.1 Bypass Blocks (Level A)",
1699 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1700 | }]
1701 | }
1702 | },
1703 | "html5_main": {
1704 | "data": {
1705 | "name": "html5_main",
1706 | "title": "HTML5 main element",
1707 | "type": "html5",
1708 | "summary": "A <main> element is present.",
1709 | "purpose": "The <main> element identifies the main content for the page. The main element facilitate page semantics and navigation.",
1710 | "actions": "Ensure the element surrounds and defines page main content. The <main> element may be used with ARIA role=\"main\" to ensure better accessibility support.",
1711 | "details": "A <main> element is present.",
1712 | "guidelines": [{
1713 | "name": "1.3.1 Info and Relationships (Level A)",
1714 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1715 | }, {
1716 | "name": "2.4.1 Bypass Blocks (Level A)",
1717 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1718 | }]
1719 | }
1720 | },
1721 | "html5_footer": {
1722 | "data": {
1723 | "name": "html5_footer",
1724 | "title": "HTML5 footer",
1725 | "type": "html5",
1726 | "summary": "A <footer> element is present.",
1727 | "purpose": "The <footer> element identifies a footer for the page or a page section. It typically identifies authorship, related links, copyright date, or other footer content. HTML5 footers facilitate page semantics and navigation.",
1728 | "actions": "Ensure the element surrounds and defines page or page section footer content. The <footer> element may be used with ARIA role=\"contentinfo\" (only one allowed per page) to ensure better accessibility support.",
1729 | "details": "A <footer> element is present.",
1730 | "guidelines": [{
1731 | "name": "1.3.1 Info and Relationships (Level A)",
1732 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1733 | }, {
1734 | "name": "2.4.1 Bypass Blocks (Level A)",
1735 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.1"
1736 | }]
1737 | }
1738 | },
1739 | "html5_aside": {
1740 | "data": {
1741 | "guidelines": []
1742 | }
1743 | },
1744 | "html5_video_audio": {
1745 | "data": {
1746 | "name": "html5_video_audio",
1747 | "title": "HTML5 video or audio",
1748 | "type": "html5",
1749 | "summary": "A <video> or <audio> element is present.",
1750 | "purpose": "lt;video> defines video, such as a movie clip or other video streams. lt;audio> defines sound, such as music or other audio streams. Audio content must be presented in a text format to be fully accessible to users who are deaf and hard of hearing. Video content with audio must have synchronized captions and a transcript. Audio-only content must have a transcript.",
1751 | "actions": "For video content with audio, ensure that synchronized captioning and a transcript is provided. For audio-only content, ensure that a transcript is provided.",
1752 | "details": "A <video> or <audio> element is present. Note that WAVE does not analyze fall-back content within the <video> or <audio> element. This content should be accessible because it will be presented to the user if the video or audio content is not supported.",
1753 | "guidelines": [{
1754 | "name": "Section 508 (b)",
1755 | "link": "http://webaim.org/standards/508/checklist#standardb"
1756 | }, {
1757 | "name": "Section 508 (m)",
1758 | "link": "http://webaim.org/standards/508/checklist#standardm"
1759 | }, {
1760 | "name": "1.2.1 Prerecorded Audio-only and Video-only (Level A)",
1761 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.1"
1762 | }, {
1763 | "name": "1.2.2 Captions (Prerecorded) (Level A)",
1764 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.2"
1765 | }, {
1766 | "name": "1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)",
1767 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.3"
1768 | }, {
1769 | "name": "1.2.5 Audio Description (Prerecorded) (Level AA)",
1770 | "link": "http://webaim.org/standards/wcag/checklist#sc1.2.5"
1771 | }, {
1772 | "name": "1.4.2 Audio Control (Level A)",
1773 | "link": "http://webaim.org/standards/wcag/checklist#sc1.4.2"
1774 | }]
1775 | }
1776 | },
1777 | "aria": {
1778 | "data": {
1779 | "name": "aria",
1780 | "title": "ARIA",
1781 | "type": "html5",
1782 | "summary": "An ARIA role, state, or property is present.",
1783 | "purpose": "ARIA provides enhanced semantics and accessibility for web content.",
1784 | "actions": "Ensure the ARIA role, state, or property is used correctly. Use standard HTML accessibility features when possible. Be aware that support for ARIA is limited in older browsers and assistive technologies.",
1785 | "details": "An ARIA role, state, or property is present, excluding landmark roles, aria-labelledby, or aria-describedby which have distinct icons.",
1786 | "guidelines": []
1787 | }
1788 | },
1789 | "aria_search": {
1790 | "data": {
1791 | "guidelines": []
1792 | }
1793 | },
1794 | "aria_label": {
1795 | "data": {
1796 | "name": "aria_label",
1797 | "title": "ARIA label or description",
1798 | "type": "html5",
1799 | "summary": "An aria-label, aria-labelledby, or aria-describedby attribute is present.",
1800 | "purpose": "ARIA labels and descriptions allow elements to be associated with other content. These labels and descriptions will generally be read by screen readers. They may be used when HTML associations (label, alternative text, etc.) are not sufficient.",
1801 | "actions": "Ensure the aria-labelledby or aria-describedby attribute references an element that provides a correct label or description. When possible, use standard HTML <label> or other markup to make the association.",
1802 | "details": "An aria-label, aria-labelledby, or aria-describedby attribute is present.",
1803 | "guidelines": [{
1804 | "name": "Section 508 (n)",
1805 | "link": "http://webaim.org/standards/508/checklist#standardn"
1806 | }, {
1807 | "name": "1.1.1 Non-text Content (Level A)",
1808 | "link": "http://webaim.org/standards/wcag/checklist#sc1.1.1"
1809 | }, {
1810 | "name": "1.3.1 Info and Relationships (Level A)",
1811 | "link": "http://webaim.org/standards/wcag/checklist#sc1.3.1"
1812 | }, {
1813 | "name": "2.4.6 Headings and Labels (Level AA)",
1814 | "link": "http://webaim.org/standards/wcag/checklist#sc2.4.6"
1815 | }]
1816 | }
1817 | },
1818 | "aria_tabindex": {
1819 | "data": {
1820 | "name": "aria_tabindex",
1821 | "title": "ARIA tabindex",
1822 | "type": "html5",
1823 | "summary": "A tabindex value of 0 or less is present.",
1824 | "purpose": "Tabindex can facilitate keyboard navigation for interactive elements. A tabindex attribute value of 0 places an item into the keyboard navigation order (i.e., you can navigate to it using the Tab key). A value of less than 0 (typically -1) removes an element from the keyboard flow (you cannot Tab to it), but allows it to receive programmatic focus (e.g., via scripting). ",
1825 | "actions": "Ensure that tabindex is being used correctly by navigating and interacting with the elements using only the keyboard. Positive tabindex values specify a distinct tab order and should typically be avoided.",
1826 | "details": "A tabindex attribute is present and has a value of 0 or less.",
1827 | "guidelines": [{
1828 | "name": "2.1.1 Keyboard (Level A)",
1829 | "link": "http://webaim.org/standards/wcag/checklist#sc2.1.1"
1830 | }]
1831 | }
1832 | },
1833 | "contrast": {
1834 | "data": {
1835 | "name": "contrast",
1836 | "title": "Very Low Contrast",
1837 | "type": "contrast",
1838 | "summary": "Very low contrast between foreground and background colors.",
1839 | "purpose": "Adequate contrast is necessary for all users, especially users with low vision.",
1840 | "actions": "Increase the contrast between the foreground (text) color and the background color. Large text (larger than 18 point or 14 point bold) does not require as much contrast as smaller text.",
1841 | "details": "Text is present that has a contrast ratio less than 4.5:1, or large text (larger than 18 point or 14 point bold) has a contrast ratio less than 3:1. Elements with background images must have a background color defined that provides adequate contrast when images are disabled or unavailable.",
1842 | "guidelines": [{
1843 | "name": "1.4.3 Contrast (Minimum) (Level AA)",
1844 | "link": "http://webaim.org/standards/wcag/checklist#sc1.4.3"
1845 | }]
1846 | }
1847 | }
1848 |
1849 | }
1850 |
--------------------------------------------------------------------------------