CINXE.COM

WAVE Documentation

<!DOCTYPE html> <html lang="en"> <head> <title>WAVE Documentation</title> <style> body { max-width:1000px; margin:auto !important; } h2 { vertical-align: middle; } h2 img { vertical-align: middle; } h3 { margin-bottom: 0px; } p { margin:0 } @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; src: local('Open Sans Regular'), local('OpenSans-Regular'), url('/styles/open-sans-v17-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ url('/styles/open-sans-v17-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ } </style> <link href="/styles/index.css" rel="stylesheet"> </head> <body> <p><a href="https://wave.webaim.org/"><img src="/img/wavelogo.svg" alt="WAVE Web Accessibility Evaluation Tool" style="width:50%"></a></p> <h1>WAVE Documentation</h1> <h2 id="alt_missing"><img src="/img/icons/alt_missing.svg" alt=""> Missing alternative text - alt_missing</h2> <h3>What it means:</h3> <p>Image alternative text is not present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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="").<h3>The Algorithm... in English:</h3> <p>An image does not have an alt attribute.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="alt_link_missing"><img src="/img/icons/alt_link_missing.svg" alt=""> Linked image missing alternative text - alt_link_missing</h2> <h3>What it means:</h3> <p>An image without alternative text results in an empty link.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Add appropriate alternative text that presents the content of the image and/or the function of the link.<h3>The Algorithm... in English:</h3> <p>An image without alternative text (missing alt attribute or an alt value that is null/empty or only space characters) or that is hidden is within a link that does not contain text or an image with alternative text.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>2.4.4 Link Purpose (In Context) (Level A)</li></ul><h2 id="alt_spacer_missing"><img src="/img/icons/alt_spacer_missing.svg" alt=""> Spacer image missing alternative text - alt_spacer_missing</h2> <h3>What it means:</h3> <p>A layout spacer image (which should have null/empty alternative text) does not have an alt attribute.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>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.*". <h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="alt_input_missing"><img src="/img/icons/alt_input_missing.svg" alt=""> Image button missing alternative text - alt_input_missing</h2> <h3>What it means:</h3> <p>Alternative text is not present for a form image button.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Add appropriate alternative text that presents the function of the image button (e.g., &lt;input src="button.gif" type="image" alt="Submit search"&gt;).<h3>The Algorithm... in English:</h3> <p>An image button (&lt;input type="image"&gt;) does not have an alt attribute or has an alt value that is null/empty (alt="") or only space characters.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>2.4.4 Link Purpose (In Context) (Level A)</li></ul><h2 id="alt_area_missing"><img src="/img/icons/alt_area_missing.svg" alt=""> Image map area missing alternative text - alt_area_missing</h2> <h3>What it means:</h3> <p>Alternative text is not present for an image map area (hot spot).<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.).<h3>The Algorithm... in English:</h3> <p>An area element does not have the alt attribute or has an alt value that is null/empty (alt="") or only space characters.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>2.4.4 Link Purpose (In Context) (Level A)</li></ul><h2 id="alt_map_missing"><img src="/img/icons/alt_map_missing.svg" alt=""> Image map missing alternative text - alt_map_missing</h2> <h3>What it means:</h3> <p>An image that has hot spots does not have an alt attribute.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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").<h3>The Algorithm... in English:</h3> <p>An image element has the usemap attribute and no alt attribute.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="longdesc_invalid"><img src="/img/icons/longdesc_invalid.svg" alt=""> Invalid longdesc - longdesc_invalid</h2> <h3>What it means:</h3> <p>The longdesc attribute is not a URL.<h3>Why It Matters:</h3> <p>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. Due to poor support, a link to the long description content should be used instead of longdesc.<h3>What To Do:</h3> <p>Remove the longdesc attribute and provide a link to the long description content. If the longdesc attribute is maintained, ensure the attribute value is a valid URL/filename.<h3>The Algorithm... in English:</h3> <p>The longdesc attribute value: <ul> <li>is empty</li> <li>is not a URL or filename</li> <li>is a URL or filename with an extension of .jpg, .gif, or .png</li> </ul><h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="label_missing"><img src="/img/icons/label_missing.svg" alt=""> Missing form label - label_missing</h2> <h3>What it means:</h3> <p>A form control does not have a corresponding label.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>If a text label for a form control is visible, use the &lt;label&gt; 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.<h3>The Algorithm... in English:</h3> <p>An &lt;input&gt; (except types of image, submit, reset, button, or hidden), &lt;select&gt;, or &lt;textarea&gt; does not have a properly associated label. A properly associated label is: <ul> <li>a non-hidden &lt;label&gt; element with a for attribute value that is equal to the id of a unique form control</li> <li>a &lt;label&gt; element that surrounds the form control, does not surround any other form controls, and does not reference another element with its for attribute</li> <li>a non-empty title attribute, or</li> <li>a non-empty aria-labelledby attribute</li> </ul><h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li><li>3.3.2 Labels or Instructions (Level A)</li></ul><h2 id="label_empty"><img src="/img/icons/label_empty.svg" alt=""> Empty form label - label_empty</h2> <h3>What it means:</h3> <p>A form label is present, but does not contain any content.<h3>Why It Matters:</h3> <p>A &lt;label&gt; 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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>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.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li><li>3.3.2 Labels or Instructions (Level A)</li></ul><h2 id="label_multiple"><img src="/img/icons/label_multiple.svg" alt=""> Multiple form labels - label_multiple</h2> <h3>What it means:</h3> <p>A form control has more than one label associated with it.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Ensure that at most one label element is associated to the form control. If multiple form labels are necessary, use aria-labelledby.<h3>The Algorithm... in English:</h3> <p>Two or more &lt;label&gt;s are associated to a single &lt;input&gt; (except types of image, submit, reset, button, or hidden), &lt;select&gt;, or &lt;textarea&gt;.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li><li>3.3.2 Labels or Instructions (Level A)</li></ul><h2 id="aria_reference_broken"><img src="/img/icons/aria_reference_broken.svg" alt=""> Broken ARIA reference - aria_reference_broken</h2> <h3>What it means:</h3> <p>An aria-labelledby or aria-describedby reference exists, but the target for the reference does not exist.<h3>Why It Matters:</h3> <p>ARIA labels and descriptions will not be presented if the element referenced does not exist in the page.<h3>What To Do:</h3> <p>Ensure the element referenced in the aria-labelledby or aria-describedby attribute value is present within the page and presents a proper label or description.<h3>The Algorithm... in English:</h3> <p>An element has an aria-labelledby or aria-describedby value that does not match the id attribute value of another element in the page.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>4.1.2 Name, Role, Value (Level A)</li></ul><h2 id="aria_menu_broken"><img src="/img/icons/aria_menu_broken.svg" alt=""> Broken ARIA menu - aria_menu_broken</h2> <h3>What it means:</h3> <p>An ARIA menu does not contain required menu items.<h3>Why It Matters:</h3> <p>ARIA menus are application menus (like those used in software menu) with a specific keyboard interactions. They are NOT for navigation links on a web site and must contain at least one menuitem, menuitemcheckbox, or menuitemradio element.<h3>What To Do:</h3> <p>Ensure that the menu is an application menu and has the appropriate keyboard interactions (menu items are navigated via the arrow keys, not via the Tab key) and internal menu items, otherwise remove the menu role.<h3>The Algorithm... in English:</h3> <p>An element with role="menu" does not contain at least one element with role="menuitem", role="menuitemcheckbox", or role="menuitemradio".<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.1.1 Keyboard (Level A)</li><li>4.1.2 Name, Role, Value (Level A)</li></ul><h2 id="title_invalid"><img src="/img/icons/title_invalid.svg" alt=""> Missing or uninformative page title - title_invalid</h2> <h3>What it means:</h3> <p>The page title is missing or not descriptive.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Add a brief, descriptive page title.<h3>The Algorithm... in English:</h3> <p>The page title is missing, empty, contains only whitespace characters, or begins with "untitled".<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.4.2 Page Titled (Level A)</li></ul><h2 id="language_missing"><img src="/img/icons/language_missing.svg" alt=""> Language missing or invalid - language_missing</h2> <h3>What it means:</h3> <p>The language of the document is not identified or a lang attribute value is invalid.<h3>Why It Matters:</h3> <p>Identifying the language of the page or page elements allows screen readers to read the content in the appropriate language. It also facilitates automatic translation of content.<h3>What To Do:</h3> <p>Identify the document language using the &lt;html lang&gt; attribute with a valid value (e.g., &lt;html lang="en"&gt;). Ensure that all lang attribute values are valid.<h3>The Algorithm... in English:</h3> <p>The &lt;html lang&gt; attribute is missing or is empty, or a lang attribute value is not a valid language identifier.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>3.1.1 Language of Page (Level A)</li></ul><h2 id="meta_refresh"><img src="/img/icons/meta_refresh.svg" alt=""> Page refreshes or redirects - meta_refresh</h2> <h3>What it means:</h3> <p>The page is set to automatically change location or refresh using a &lt;meta&gt; tag.<h3>Why It Matters:</h3> <p>Pages that automatically change location or refresh pose significant usability issues, particularly for screen reader and keyboard users.<h3>What To Do:</h3> <p>Remove the &lt;meta&gt; refresh and give the user control over time-sensitive content changes.<h3>The Algorithm... in English:</h3> <p>A &lt;meta http-equiv="refresh"&gt; tag is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.2.1 Timing Adjustable (Level A)</li><li>2.2.2 Pause, Stop, Hide (Level A)</li></ul><h2 id="heading_empty"><img src="/img/icons/heading_empty.svg" alt=""> Empty heading - heading_empty</h2> <h3>What it means:</h3> <p>A heading contains no content.<h3>Why It Matters:</h3> <p>Some users, especially keyboard and screen reader users, often navigate by heading elements. An empty heading will present no information and may introduce confusion.<h3>What To Do:</h3> <p>Ensure that all headings contain informative content.<h3>The Algorithm... in English:</h3> <p>A heading element is present that contains no text (or only spaces) and no images with alternative text.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="button_empty"><img src="/img/icons/button_empty.svg" alt=""> Empty button - button_empty</h2> <h3>What it means:</h3> <p>A button is empty or has no value text.<h3>Why It Matters:</h3> <p>When navigating to a button, descriptive text must be presented to screen reader users to indicate the function of the button.<h3>What To Do:</h3> <p>Place text content within the &lt;button&gt; element or give the &lt;input&gt; element a value attribute.<h3>The Algorithm... in English:</h3> <p>A &lt;button&gt; element is present that contains no text content (or alternative text), or an &lt;input type="submit"&gt;, &lt;input type="button"&gt;, or &lt;input type="reset"&gt; has an empty or missing value attribute.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>2.4.4 Link Purpose (In Context) (Level A)</li></ul><h2 id="link_empty"><img src="/img/icons/link_empty.svg" alt=""> Empty link - link_empty</h2> <h3>What it means:</h3> <p>A link contains no text.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Remove the empty link or provide text within the link that describes the functionality and/or target of that link.<h3>The Algorithm... in English:</h3> <p>An anchor element has an href attribute, but contains no text (or only spaces) and no images with alternative text.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.4.4 Link Purpose (In Context) (Level A)</li></ul><h2 id="link_skip_broken"><img src="/img/icons/link_skip_broken.svg" alt=""> Broken skip link - link_skip_broken</h2> <h3>What it means:</h3> <p>A skip navigation link exists, but the target for the link does not exist or the link is not keyboard accessible.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Ensure that the target for the link exists and that the link is not hidden with CSS display:none or visibility:hidden.<h3>The Algorithm... in English:</h3> <p>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.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.1.1 Keyboard (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="th_empty"><img src="/img/icons/th_empty.svg" alt=""> Empty table header - th_empty</h2> <h3>What it means:</h3> <p>A &lt;th&gt; (table header) contains no text.<h3>Why It Matters:</h3> <p>The &lt;th&gt; element helps associate table cells with the correct row/column headers. A &lt;th&gt; that contains no text may result in cells with missing or incorrect header information.<h3>What To Do:</h3> <p>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 &lt;td&gt; rather than a &lt;th&gt;.<h3>The Algorithm... in English:</h3> <p>A &lt;th&gt; element does not contain any text (or contains only spaces) and no images with alternative text.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li></ul><h2 id="blink"><img src="/img/icons/blink.svg" alt=""> Blinking content - blink</h2> <h3>What it means:</h3> <p>Blinking content is present.<h3>Why It Matters:</h3> <p>Blinking content can be distracting and confusing to users, particularly those with certain cognitive disabilities.<h3>What To Do:</h3> <p>Remove the blinking effect (&lt;blink&gt; element or text-decoration:blink style). Important text can be styled in other ways.<h3>The Algorithm... in English:</h3> <p>A non-empty &lt;blink&gt; element or other text has CSS text-decoration:blink styling.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.2.2 Pause, Stop, Hide (Level A)</li></ul><h2 id="marquee"><img src="/img/icons/marquee.svg" alt=""> Marquee - marquee</h2> <h3>What it means:</h3> <p>A &lt;marquee&gt; element is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Remove the marquee element. If content must scroll, use an alternative scrolling mechanism that allows the user to pause or stop the animation.<h3>The Algorithm... in English:</h3> <p>A &lt;marquee&gt; element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.2.2 Pause, Stop, Hide (Level A)</li></ul><h2 id="contrast"><img src="/img/icons/contrast.svg" alt=""> Very low contrast - contrast</h2> <h3>What it means:</h3> <p>Very low contrast between text and background colors.<h3>Why It Matters:</h3> <p>Adequate contrast of text is necessary for all users, especially users with low vision.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>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. WCAG requires that page elements have both foreground AND background colors defined (or inherited) that provide sufficient contrast. When text is presented over a background image, the text must have a background color defined (typically in CSS) that provides adequate text contrast when the background image is disabled or unavailable. WAVE does not identify contrast issues in text with CSS transparency, gradients, or filters. WCAG Level AAA requires a contrast ratio of at least 7:1 for normal text and 4.5:1 for large text.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.4.3 Contrast (Minimum) (Level AA)</li></ul><h2 id="alt_suspicious"><img src="/img/icons/alt_suspicious.svg" alt=""> Suspicious alternative text - alt_suspicious</h2> <h3>What it means:</h3> <p>Alternative text is likely insufficient or contains extraneous information.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>The alt text value of an image or image button: <ul> <li>begins with "graphic of", "bullet", or "image of"</li> <li>ends with "image" or "graphic"</li> <li>contains only space characters (alt=" ")</li> <li>is an image file name (e.g. alt="photo.gif")</li> <li>is one of the following: "image", "graphic", "photo", "photograph", "drawing", "painting", "artwork", "logo", "bullet", "button", "arrow", "more", "spacer", "blank", "chart", "table", "diagram", "graph", or "*"</li> </ul><h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="alt_redundant"><img src="/img/icons/alt_redundant.svg" alt=""> Redundant alternative text - alt_redundant</h2> <h3>What it means:</h3> <p>The alternative text for an image is the same as nearby or adjacent text.<h3>Why It Matters:</h3> <p>Alternative text that is the same as nearby or adjacent text will be presented multiple times to screen readers or when images are unavailable.<h3>What To Do:</h3> <p>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="").<h3>The Algorithm... in English:</h3> <p>The alternative text is the same as text that is within 15 characters of the image.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="alt_duplicate"><img src="/img/icons/alt_duplicate.svg" alt=""> A nearby image has the same alternative text - alt_duplicate</h2> <h3>What it means:</h3> <p>Two images near each other have the same alternative text.<h3>Why It Matters:</h3> <p>When two images have the same alternative text, this often causes redundancy or indicates incorrect alternative text.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>The same alternative text (case insensitive, but not null/empty) is present for two images or image buttons (&lt;input type='image'&gt;) near each other (no more than 2 other images separate them).<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="alt_long"><img src="/img/icons/alt_long.svg" alt=""> Long alternative text - alt_long</h2> <h3>What it means:</h3> <p>An image has very long alternative text.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.).<h3>The Algorithm... in English:</h3> <p>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.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="longdesc"><img src="/img/icons/longdesc.svg" alt=""> Long description - longdesc</h2> <h3>What it means:</h3> <p>The longdesc attribute is present.<h3>Why It Matters:</h3> <p>Because of poor support, the longdesc attribute should not be used.<h3>What To Do:</h3> <p>Because of poor browser support for longdesc, it should not be used to provide the description of complex images. The description may be provided: <ul> <li>in the alt attribute, if possible. Alt text should be succinct (generally no more than ~100 characters)</li> <li>in nearby text (e.g., a caption, data table, etc.)</li> <li>via a link to a separate description page that contains an accurate and equivalent description</li> </ul><h3>The Algorithm... in English:</h3> <p>An image has a longdesc attribute containing a valid URL.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="image_title"><img src="/img/icons/image_title.svg" alt=""> Image with title - image_title</h2> <h3>What it means:</h3> <p>An image has a title attribute value but no alt value.<h3>Why It Matters:</h3> <p>The title attribute value for images that lack an alt attribute value will be presented to screen reader users. However, providing image content in the alt attribute typically provides better accessibility, and should be used in most cases. The title attribute will generate a mouse hover tooltip which may or may not be desired - this tooltip will not be presented to touch screen or keyboard users.<h3>What To Do:</h3> <p>Ensure the title attribute value presents the content and function of the image. For better accessibility, the alt attribute should be used when possible.<h3>The Algorithm... in English:</h3> <p>An image is present that does not have an alt attribute or alt attribute value, but does have a title attribute value.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="label_orphaned"><img src="/img/icons/label_orphaned.svg" alt=""> Orphaned form label - label_orphaned</h2> <h3>What it means:</h3> <p>A form label is present, but it is not correctly associated with a form control.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>A &lt;label&gt; element: <ul> <li>does not surround a form control and the for attribute is missing/empty</li> <li>references an element that is not present in the page</li> <li>references an element that is not an &lt;input&gt;, &lt;select&gt; or &lt;textarea&gt; element </li><li>references an &lt;input&gt; element with image, submit, reset, button, or hidden type</li> </ul><h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li><li>3.3.2 Labels or Instructions (Level A)</li></ul><h2 id="label_title"><img src="/img/icons/label_title.svg" alt=""> Unlabeled form control with title - label_title</h2> <h3>What it means:</h3> <p>A form control does not have a label, but has a title.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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 &lt;label&gt;, 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.<h3>The Algorithm... in English:</h3> <p>An &lt;input&gt; (except types of image, submit, reset, button, or hidden), &lt;textarea&gt;, or &lt;select&gt; element has a non-empty title attribute value and is missing a label or valid aria-labelledby reference.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li><li>3.3.2 Labels or Instructions (Level A)</li></ul><h2 id="select_missing_label"><img src="/img/icons/select_missing_label.svg" alt=""> Select missing label - select_missing_label</h2> <h3>What it means:</h3> <p>A select element does not have an associated label<h3>Why It Matters:</h3> <p>&lt;select&gt; elements must provide descriptive text about their function. This is typically provided via associated label text. If visual label text is not present and if the default select option adequately presents the purpose of the select menu, then an associated label is not necessary.<h3>What To Do:</h3> <p>Ensure that the default option of the select menu presents the purpose of the select menu. If visible label text is present, it is best to associate this text to the select menu.<h3>The Algorithm... in English:</h3> <p>A &lt;select&gt; element is present that does not have an associated label or ARIA label.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li><li>3.3.2 Labels or Instructions (Level A)</li></ul><h2 id="fieldset_missing"><img src="/img/icons/fieldset_missing.svg" alt=""> Missing fieldset - fieldset_missing</h2> <h3>What it means:</h3> <p>A group of check boxes or radio buttons is not enclosed in a fieldset.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>Two or more checkbox or radio input elements within a form have the same name value, but are not enclosed in a fieldset.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li><li>3.3.2 Labels or Instructions (Level A)</li></ul><h2 id="legend_missing"><img src="/img/icons/legend_missing.svg" alt=""> Fieldset missing legend - legend_missing</h2> <h3>What it means:</h3> <p>A fieldset does not have a legend.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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 &lt;legend&gt;. 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.<h3>The Algorithm... in English:</h3> <p>A fieldset does not have a legend or the legend is empty.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li><li>3.3.2 Labels or Instructions (Level A)</li></ul><h2 id="heading_missing"><img src="/img/icons/heading_missing.svg" alt=""> No heading structure - heading_missing</h2> <h3>What it means:</h3> <p>The page has no headings.<h3>Why It Matters:</h3> <p>Headings (&lt;h1&gt;-&lt;h6&gt;) provide important document structure, outlines, and navigation functionality to assistive technology users.<h3>What To Do:</h3> <p>Provide a clear, consistent heading structure, generally one &lt;h1&gt; and sub-headings as appropriate. Except for very simple pages, most web pages should have a heading structure.<h3>The Algorithm... in English:</h3> <p>No &lt;h1&gt;-&lt;h6&gt; elements are present in the page.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="h1_missing"><img src="/img/icons/h1_missing.svg" alt=""> Missing first level heading - h1_missing</h2> <h3>What it means:</h3> <p>A page does not have a first level heading.<h3>Why It Matters:</h3> <p>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 (&lt;h1&gt;) should be present on nearly all pages. It should contain the most important heading on the page (generally the document title).<h3>What To Do:</h3> <p>If the page presents a main heading, place it within an &lt;h1&gt; element. Add other sub-headings as necessary.<h3>The Algorithm... in English:</h3> <p>A page does not have an &lt;h1&gt; element.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="region_missing"><img src="/img/icons/region_missing.svg" alt=""> No page regions - region_missing</h2> <h3>What it means:</h3> <p>No page regions or ARIA landmarks were found.<h3>Why It Matters:</h3> <p>Regions and ARIA landmarks identify significant page areas. Most web pages should have regions defined, particularly for the main content area.<h3>What To Do:</h3> <p>If the page has visual regions or significant page areas, ensure the regions are defined with header, nav, main, footer, etc. elements.<h3>The Algorithm... in English:</h3> <p>No header, nav, main, footer, or aside HTML regions, or banner, navigation, main, or contentinfo landmark roles were present in the page.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="heading_skipped"><img src="/img/icons/heading_skipped.svg" alt=""> Skipped heading level - heading_skipped</h2> <h3>What it means:</h3> <p>A heading level is skipped.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Restructure the document headings to ensure that heading levels are not skipped.<h3>The Algorithm... in English:</h3> <p>A heading level is skipped (e.g., an &lt;h1&gt; is followed by an &lt;h3&gt;, with no intermediate &lt;h2&gt;). Note that an &lt;h1&gt; is not required to be the first heading within the document.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="heading_possible"><img src="/img/icons/heading_possible.svg" alt=""> Possible heading - heading_possible</h2> <h3>What it means:</h3> <p>Text appears to be a heading but is not a heading element.<h3>Why It Matters:</h3> <p>Heading elements (&lt;h1&gt;-&lt;h6&gt;) 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.<h3>What To Do:</h3> <p>If the paragraph is a section heading, use a heading element instead (&lt;h1&gt;-&lt;h6&gt;).<h3>The Algorithm... in English:</h3> <p>A &lt;p&gt; element contains less than 50 characters and is either: <ul> <li>20 pixels or bigger</li> <li>16 pixels or bigger and bold and/or italicized</li> </ul><h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="table_layout"><img src="/img/icons/table_layout.svg" alt=""> Layout table - table_layout</h2> <h3>What it means:</h3> <p>A layout table is present.<h3>Why It Matters:</h3> <p>Layout tables exist merely to position content visually - to create columns, insert spacing, or align content neatly for sighted users. Their content is not at all tabular in nature. Layout tables should not be used in HTML5. They can introduce reading and navigation order issues. Screen readers may interpret them as data tables (i.e., announcing column and row numbers), especially if they contain table header (&lt;th&gt;) cells. This introduces significant overhead on screen reader users.<h3>What To Do:</h3> <p>In almost every case, layout tables can be replaced with other HTML elements and styled with CSS to achieve the desired visual presentation. If the table contains tabular data, provide appropriate header (&lt;th&gt;) cells. If the layout table remains, verify that the reading and navigation order of table content (based on underlying source code order) is logical and give it role="presentation" to ensure it is not identified as a table to screen reader users.<h3>The Algorithm... in English:</h3> <p>A &lt;table&gt; element is present that does not contain any header (&lt;th&gt;) cells.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>1.3.2 Meaningful Sequence (Level A)</li></ul><h2 id="table_caption_possible"><img src="/img/icons/table_caption_possible.svg" alt=""> Possible table caption - table_caption_possible</h2> <h3>What it means:</h3> <p>Text appears to be a table caption, but is not a caption element.<h3>Why It Matters:</h3> <p>A table caption should be associated with a table using the &lt;caption&gt; element so it will be read by a screen reader with the table content.<h3>What To Do:</h3> <p>If the text is a description of the table, associate the text with the table using the &lt;caption&gt; element (&lt;caption&gt; should be the first element within the &lt;table&gt;).<h3>The Algorithm... in English:</h3> <p>A data table (has at least one table header) that does not already have a caption has: - A colspan attribute value of 3 or greater on the first cell of the table. - A &lt;p&gt; element immediately before the table that contains less than 50 characters or contains less than 100 characters and is bold and/or centered. <h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li></ul><h2 id="list_possible"><img src="/img/icons/list_possible.svg" alt=""> Possible list - list_possible</h2> <h3>What it means:</h3> <p>Text is structured like a list but lacks proper list semantics.<h3>Why It Matters:</h3> <p>Ordered and unordered lists, when properly defined, provide useful information to users, such as an indication of the list type and number of list items. When text alone is used to present list structures and content, these benefits are lost.<h3>What To Do:</h3> <p>If list content is presented, use &lt;ul&gt; or &lt;ol&gt; markup to semantically define the list.<h3>The Algorithm... in English:</h3> <p>Text is used to present list-type content, such as:<br /> * text<br /> 1. text<br /> a. text<br /> 1) text<br /> a) text<br /> - text<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li></ul><h2 id="link_internal_broken"><img src="/img/icons/link_internal_broken.svg" alt=""> Broken same-page link - link_internal_broken</h2> <h3>What it means:</h3> <p>A link to another location within the page is present but does not have a corresponding target.<h3>Why It Matters:</h3> <p>A link to jump to another position within the page assists users in navigating the web page, but only if the link target exists.<h3>What To Do:</h3> <p>Ensure that the target for the link exists or remove the same-page link.<h3>The Algorithm... in English:</h3> <p>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.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.1.1 Keyboard (Level A)</li></ul><h2 id="link_suspicious"><img src="/img/icons/link_suspicious.svg" alt=""> Suspicious link text - link_suspicious</h2> <h3>What it means:</h3> <p>Link text contains extraneous text or may not make sense out of context.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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").<h3>The Algorithm... in English:</h3> <p>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".<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.4.4 Link Purpose (In Context) (Level A)</li></ul><h2 id="link_redundant"><img src="/img/icons/link_redundant.svg" alt=""> Redundant link - link_redundant</h2> <h3>What it means:</h3> <p>Adjacent links go to the same URL.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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="").<h3>The Algorithm... in English:</h3> <p>Two adjacent links go to the same URL.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.4.4 Link Purpose (In Context) (Level A)</li></ul><h2 id="link_word"><img src="/img/icons/link_word.svg" alt=""> Link to Word document - link_word</h2> <h3>What it means:</h3> <p>A link to a Microsoft Word document is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>A link to a .doc or .docx file is present.<h2 id="link_excel"><img src="/img/icons/link_excel.svg" alt=""> Link to Excel spreadsheet - link_excel</h2> <h3>What it means:</h3> <p>A link to a Microsoft Excel spreadsheet is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>A link to a .xls or .xlsx file is present.<h2 id="link_powerpoint"><img src="/img/icons/link_powerpoint.svg" alt=""> Link to PowerPoint document - link_powerpoint</h2> <h3>What it means:</h3> <p>A link to a Microsoft PowerPoint presentation is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>A link to a .ppt, .pptx, .pps, or .ppsx file is present.<h2 id="link_pdf"><img src="/img/icons/link_pdf.svg" alt=""> Link to PDF document - link_pdf</h2> <h3>What it means:</h3> <p>A link to a PDF document is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>A link to a .pdf file is present.<h2 id="link_document"><img src="/img/icons/link_document.svg" alt=""> Link to document - link_document</h2> <h3>What it means:</h3> <p>A link to a non-HTML document is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>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.<h2 id="audio_video"><img src="/img/icons/audio_video.svg" alt=""> Audio/Video - audio_video</h2> <h3>What it means:</h3> <p>An audio or video file or link is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>For video content, ensure that synchronized captioning and a transcript is provided. For audio-only content, ensure that a transcript is provided.<h3>The Algorithm... in English:</h3> <p>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, wmv, or wmx.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.2.1 Prerecorded Audio-only and Video-only (Level A)</li><li>1.2.2 Captions (Prerecorded) (Level A)</li><li>1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)</li><li>1.2.5 Audio Description (Prerecorded) (Level AA)</li><li>1.4.2 Audio Control (Level A)</li></ul><h2 id="html5_video_audio"><img src="/img/icons/html5_video_audio.svg" alt=""> HTML5 video or audio - html5_video_audio</h2> <h3>What it means:</h3> <p>A &lt;video&gt; or &lt;audio&gt; element is present.<h3>Why It Matters:</h3> <p>&lt;video&gt; defines video, such as a movie clip or other video streams. &lt;audio&gt; 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.<h3>What To Do:</h3> <p>For video content with audio, ensure that synchronized captioning and a transcript is provided. For audio-only content, ensure that a transcript is provided.<h3>The Algorithm... in English:</h3> <p>A &lt;video&gt; or &lt;audio&gt; element is present. Note that WAVE does not analyze fall-back content within the &lt;video&gt; or &lt;audio&gt; element. This content should be accessible because it will be presented to the user if the video or audio content is not supported.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.2.1 Prerecorded Audio-only and Video-only (Level A)</li><li>1.2.2 Captions (Prerecorded) (Level A)</li><li>1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)</li><li>1.2.5 Audio Description (Prerecorded) (Level AA)</li><li>1.4.2 Audio Control (Level A)</li></ul><h2 id="youtube_video"><img src="/img/icons/youtube_video.svg" alt=""> YouTube video - youtube_video</h2> <h3>What it means:</h3> <p>An embedded or linked YouTube video is present.<h3>Why It Matters:</h3> <p>For video content with audio, ensure that synchronized captioning is available. While YouTube can auto-generate captions using voice recognition, these are typically not of sufficient quality to be considered equivalent.<h3>What To Do:</h3> <p>Ensure that YouTube video presents equivalent, synchronized captions.<h3>The Algorithm... in English:</h3> <p>An embedded (within an iframe) YouTube video is present, or a link to a YouTube video is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.2.1 Prerecorded Audio-only and Video-only (Level A)</li><li>1.2.2 Captions (Prerecorded) (Level A)</li><li>1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)</li></ul><h2 id="flash"><img src="/img/icons/flash.svg" alt=""> Flash - flash</h2> <h3>What it means:</h3> <p>Flash content is present.<h3>Why It Matters:</h3> <p>Flash content, if not authored to be accessible, will typically introduce significant accessibility issues.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>An &lt;object&gt; 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 &lt;embed&gt; element is present that has a src attribute value of a .swf file or a type attribute value of "application/x-shockwave-flash".<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.2.1 Prerecorded Audio-only and Video-only (Level A)</li><li>1.2.2 Captions (Prerecorded) (Level A)</li><li>1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)</li><li>1.2.5 Audio Description (Prerecorded) (Level AA)</li><li>2.1.2 No Keyboard Trap (Level A)</li></ul><h2 id="applet"><img src="/img/icons/applet.svg" alt=""> Java applet - applet</h2> <h3>What it means:</h3> <p>A Java applet is present.<h3>Why It Matters:</h3> <p>Java applets will typically introduce significant accessibility issues.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>An &lt;applet&gt; element is present.<h2 id="plugin"><img src="/img/icons/plugin.svg" alt=""> Plugin - plugin</h2> <h3>What it means:</h3> <p>An unidentified plugin is present.<h3>Why It Matters:</h3> <p>Plugins allow the introduction of non-HTML content, media players, etc. Because of limitations in non-HTML content, these often introduce accessibility issues.<h3>What To Do:</h3> <p>Provide an HTML alternative or ensure the plugin content is accessible. Provide a link to download any required software.<h3>The Algorithm... in English:</h3> <p>An &lt;object&gt; or &lt;embed&gt; element is present that is not identified as Flash, Quicktime, RealPlayer, or Windows Media Player.<h2 id="noscript"><img src="/img/icons/noscript.svg" alt=""> Noscript element - noscript</h2> <h3>What it means:</h3> <p>A &lt;noscript&gt; element is present.<h3>Why It Matters:</h3> <p>Content within &lt;noscript&gt; is presented if JavaScript is disabled. Because nearly all users (including users of screen readers and other assistive technologies) have JavaScript enabled, &lt;noscript&gt; cannot be used to provide an accessible version of inaccessible scripted content.<h3>What To Do:</h3> <p>Ensure that scripted content is accessible. The &lt;noscript&gt; content will be presented to very few users, but must be accessible if used.<h3>The Algorithm... in English:</h3> <p>A &lt;noscript&gt; element is present.<h2 id="event_handler"><img src="/img/icons/event_handler.svg" alt=""> Device dependent event handler - event_handler</h2> <h3>What it means:</h3> <p>An event handler is present that may not be accessible.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>One of the following is present: <ul> <li>an onmouseover event but not an onfocus event</li> <li>an onclick event on something other than a link, form control, or element with a tabindex value of 0</li> <li>ondblclick</li> </ul><h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.1.1 Keyboard (Level A)</li></ul><h2 id="javascript_jumpmenu"><img src="/img/icons/javascript_jumpmenu.svg" alt=""> JavaScript jump menu - javascript_jumpmenu</h2> <h3>What it means:</h3> <p>A JavaScript jump menu may be present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>The onchange attribute is present on a &lt;select&gt; element.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.1.1 Keyboard (Level A)</li><li>3.2.2 On Input (Level A)</li></ul><h2 id="accesskey"><img src="/img/icons/accesskey.svg" alt=""> Accesskey - accesskey</h2> <h3>What it means:</h3> <p>An accesskey attribute is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Remove the accesskey or be aware that the accesskey may conflict with user shortcut keys.<h3>The Algorithm... in English:</h3> <p>An element has an accesskey attribute.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="tabindex"><img src="/img/icons/tabindex.svg" alt=""> Tabindex - tabindex</h2> <h3>What it means:</h3> <p>A positive tabindex value is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>A tabindex attribute is present and has a positive value.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.4.3 Focus Order (Level A)</li></ul><h2 id="text_small"><img src="/img/icons/text_small.svg" alt=""> Very small text - text_small</h2> <h3>What it means:</h3> <p>Text is very small.<h3>Why It Matters:</h3> <p>Text which is very small is difficult to read, particularly for those with low vision.<h3>What To Do:</h3> <p>Increase the text to a more readable size.<h3>The Algorithm... in English:</h3> <p>Text is present that is sized 10 pixels or smaller.<h2 id="text_justified"><img src="/img/icons/text_justified.svg" alt=""> Justified text - text_justified</h2> <h3>What it means:</h3> <p>Fully justified text is present.<h3>Why It Matters:</h3> <p>Large blocks of justified text can negatively impact readability due to varying word/letter spacing and 'rivers of white' that flow through the text.<h3>What To Do:</h3> <p>Remove the full justification from the text.<h3>The Algorithm... in English:</h3> <p>A &lt;p&gt;, &lt;div&gt;, or &lt;td&gt; element has more than 500 characters and is styled with text-align:justify.<h2 id="underline"><img src="/img/icons/underline.svg" alt=""> Underlined text - underline</h2> <h3>What it means:</h3> <p>Underlined text is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Unless there is a distinct need for the underlined text, remove the underline from it. <h3>The Algorithm... in English:</h3> <p>A &lt;u&gt; element or element with text-decoration:underline styles is present.<h2 id="title_redundant"><img src="/img/icons/title_redundant.svg" alt=""> Redundant title text - title_redundant</h2> <h3>What it means:</h3> <p>Title attribute text is the same as text or alternative text.<h3>Why It Matters:</h3> <p>The title attribute value is used to provide <i>advisory</i> 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.<h3>What To Do:</h3> <p>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. <h3>The Algorithm... in English:</h3> <p>A title attribute value is identical to element text or image alternative text.<h2 id="alt"><img src="/img/icons/alt.svg" alt=""> Alternative text - alt</h2> <h3>What it means:</h3> <p>Image alternative text is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>A non-empty alt attribute is present on an image.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="alt_null"><img src="/img/icons/alt_null.svg" alt=""> Null or empty alternative text - alt_null</h2> <h3>What it means:</h3> <p>Alternative text is null or empty (alt="").<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Ensure that the image does not convey content or that the content of the image is conveyed in nearby text (e.g., a caption).<h3>The Algorithm... in English:</h3> <p>An image has alt="".<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="alt_spacer"><img src="/img/icons/alt_spacer.svg" alt=""> Null or empty alternative text on spacer - alt_spacer</h2> <h3>What it means:</h3> <p>Alternative text is null or empty (alt="") on a spacer image.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>An images 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="").<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="alt_link"><img src="/img/icons/alt_link.svg" alt=""> Linked image with alternative text - alt_link</h2> <h3>What it means:</h3> <p>Alternative text is present for an image that is within a link.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>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.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>2.4.4 Link Purpose (In Context) (Level A)</li></ul><h2 id="alt_input"><img src="/img/icons/alt_input.svg" alt=""> Image button with alternative text - alt_input</h2> <h3>What it means:</h3> <p>Alternative text is present for an image input element.<h3>Why It Matters:</h3> <p>Providing the functionality of image buttons in alternative text ensures that the button function is available to all users.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>An &lt;input type="image"&gt; element has a non-empty alt attribute value.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>2.4.4 Link Purpose (In Context) (Level A)</li></ul><h2 id="alt_map"><img src="/img/icons/alt_map.svg" alt=""> Image map with alternative text - alt_map</h2> <h3>What it means:</h3> <p>An alt attribute is present for an image that has hot spots.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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").<h3>The Algorithm... in English:</h3> <p>An &lt;img&gt; element has both usemap and alt attributes.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="alt_area"><img src="/img/icons/alt_area.svg" alt=""> Image map area with alternative text - alt_area</h2> <h3>What it means:</h3> <p>Alternative text is present for an image map area (hot spot).<h3>Why It Matters:</h3> <p>Presenting the functionality of image map areas (hot spots) in the &lt;area&gt; element's alt attribute value ensures that this information is presented to screen reader users or when images are disabled or unavailable.<h3>What To Do:</h3> <p>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.).<h3>The Algorithm... in English:</h3> <p>An image uses an image map containing an area element with a non-empty alt attribute value.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>2.4.4 Link Purpose (In Context) (Level A)</li></ul><h2 id="figure"><img src="/img/icons/figure.svg" alt=""> Figure - figure</h2> <h3>What it means:</h3> <p>A figure is present.<h3>Why It Matters:</h3> <p>A &lt;figure&gt; represents self-contained content, potentially with an optional &lt;figcaption&gt;. Non-text content, if present, must have alternative text.<h3>What To Do:</h3> <p>Ensure the figure presents accessible content and, if appropriate, has a figcaption.<h3>The Algorithm... in English:</h3> <p>A figure element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li></ul><h2 id="label"><img src="/img/icons/label.svg" alt=""> Form label - label</h2> <h3>What it means:</h3> <p>A form label is present and associated with a form control.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Ensure that the label is accurate, descriptive, succinct, and that it is associated with the correct form control element.<h3>The Algorithm... in English:</h3> <p>A &lt;label&gt; element is present and properly associated to &lt;input&gt; (except types of image, submit, reset, button, or hidden), &lt;textarea&gt;, or &lt;select&gt; element.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="fieldset"><img src="/img/icons/fieldset.svg" alt=""> Fieldset - fieldset</h2> <h3>What it means:</h3> <p>A fieldset is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>A fieldset element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="link_skip"><img src="/img/icons/link_skip.svg" alt=""> Skip link - link_skip</h2> <h3>What it means:</h3> <p>A link is present which allows users to skip over navigation or other content.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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).<h3>The Algorithm... in English:</h3> <p>An in-page link: <ul> <li>starts with the words "skip" or "jump"</li> <li>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.</li> <li>is NOT hidden with CSS display:none or visibility:hidden (this would result in a inaccessible "skip" link)</li> </ul><h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="link_skip_target"><img src="/img/icons/link_skip_target.svg" alt=""> Skip link target - link_skip_target</h2> <h3>What it means:</h3> <p>A target for a "skip" link is present.<h3>Why It Matters:</h3> <p>A "skip" target identifies the location within the page where reading and navigation will resume after a "skip" link is activated.<h3>What To Do:</h3> <p>Ensure that the element is at the appropriate place within the page.<h3>The Algorithm... in English:</h3> <p>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.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="lang"><img src="/img/icons/lang.svg" alt=""> Language - lang</h2> <h3>What it means:</h3> <p>The language of the document or a page element is identified.<h3>Why It Matters:</h3> <p>Identifying the language of the page or portion of page (if different from the page itself) allows screen readers to read the content appropriately.<h3>What To Do:</h3> <p>Ensure the language is properly identified for the page (e.g., &lt;html lang="en"&gt;). If content within the page is in a language different than the page's language, identify it using a valid lang attribute value (e.g., &lt;p lang="fr"&gt;).<h3>The Algorithm... in English:</h3> <p>A document or an element has a valid lang attribute value.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>3.1.2 Language of Parts (Level AA)</li></ul><h2 id="h1"><img src="/img/icons/h1.svg" alt=""> Heading level 1 - h1</h2> <h3>What it means:</h3> <p>A first level heading (&lt;h1&gt; element) is present.<h3>Why It Matters:</h3> <p>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).<h3>What To Do:</h3> <p>Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.<h3>The Algorithm... in English:</h3> <p>An &lt;h1&gt; element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="h2"><img src="/img/icons/h2.svg" alt=""> Heading level 2 - h2</h2> <h3>What it means:</h3> <p>A second level heading (&lt;h2&gt; element) is present.<h3>Why It Matters:</h3> <p>Headings facilitate page navigation for users of assistive technologies. They also provide semantic and visual meaning and structure to the document.<h3>What To Do:</h3> <p>Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.<h3>The Algorithm... in English:</h3> <p>An &lt;h2&gt; element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="h3"><img src="/img/icons/h3.svg" alt=""> Heading level 3 - h3</h2> <h3>What it means:</h3> <p>A third level heading (&lt;h3&gt; element) is present.<h3>Why It Matters:</h3> <p>Headings facilitate page navigation for users of assistive technologies. They also provide semantic and visual meaning and structure to the document.<h3>What To Do:</h3> <p>Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.<h3>The Algorithm... in English:</h3> <p>An &lt;h3&gt; element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="h4"><img src="/img/icons/h4.svg" alt=""> Heading level 4 - h4</h2> <h3>What it means:</h3> <p>A fourth level heading (&lt;h4&gt; element) is present.<h3>Why It Matters:</h3> <p>Headings facilitate page navigation for users of assistive technologies. They also provide semantic and visual meaning and structure to the document.<h3>What To Do:</h3> <p>Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.<h3>The Algorithm... in English:</h3> <p>An &lt;h4&gt; element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="h5"><img src="/img/icons/h5.svg" alt=""> Heading level 5 - h5</h2> <h3>What it means:</h3> <p>A fifth level heading (&lt;h5&gt; element) is present.<h3>Why It Matters:</h3> <p>Headings facilitate page navigation for users of assistive technologies. They also provide semantic and visual meaning and structure to the document.<h3>What To Do:</h3> <p>Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.<h3>The Algorithm... in English:</h3> <p>An &lt;h5&gt; element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="h6"><img src="/img/icons/h6.svg" alt=""> Heading level 6 - h6</h2> <h3>What it means:</h3> <p>A sixth level heading (&lt;h6&gt; element) is present.<h3>Why It Matters:</h3> <p>Headings facilitate page navigation for users of assistive technologies. They also provide semantic and visual meaning and structure to the document.<h3>What To Do:</h3> <p>Ensure that the text in question is truly a heading and that it is structured correctly in the page outline.<h3>The Algorithm... in English:</h3> <p>An &lt;h6&gt; element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li></ul><h2 id="ol"><img src="/img/icons/ol.svg" alt=""> Ordered list - ol</h2> <h3>What it means:</h3> <p>An ordered (numbered) list (&lt;ol&gt; element) is present.<h3>Why It Matters:</h3> <p>Ordered lists present a group of related sequential items. Users of assistive technologies can navigate by and within lists.<h3>What To Do:</h3> <p>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 (&lt;ul&gt;) is likely more appropriate.<h3>The Algorithm... in English:</h3> <p>An &lt;ol&gt; element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li></ul><h2 id="ul"><img src="/img/icons/ul.svg" alt=""> Unordered list - ul</h2> <h3>What it means:</h3> <p>An unordered (bulleted) list (&lt;ul&gt; element) is present.<h3>Why It Matters:</h3> <p>Unordered lists present a group of related, parallel items. Users of many assistive technologies can navigate by and within lists.<h3>What To Do:</h3> <p>Ensure that an unordered (bulleted) list is appropriate for the context. If list items are sequential or numbered, an ordered list (&lt;ol&gt;) is likely more appropriate.<h3>The Algorithm... in English:</h3> <p>A &lt;ul&gt; element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li></ul><h2 id="dl"><img src="/img/icons/dl.svg" alt=""> Definition/description list - dl</h2> <h3>What it means:</h3> <p>A definition/description list (&lt;dl&gt; element) is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Ensure that the list is appropriate for the context (it is used for definitions or name/value pairs) and that definition terms (&lt;dt&gt;) and descriptions (&lt;dd&gt;) are provided.<h3>The Algorithm... in English:</h3> <p>A &lt;dl&gt; element is present. <h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li></ul><h2 id="header"><img src="/img/icons/header.svg" alt=""> Header - header</h2> <h3>What it means:</h3> <p>A &lt;header&gt; element or banner landmark is present.<h3>Why It Matters:</h3> <p>Headers identify page introduction or navigation. They typically surrounds the site or page name, logo, top navigation, or other header content. Headers facilitate page semantics and navigation.<h3>What To Do:</h3> <p>Ensure the header surrounds and defines page header content.<h3>The Algorithm... in English:</h3> <p>A &lt;header&gt; element or role="banner" is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="nav"><img src="/img/icons/nav.svg" alt=""> Navigation - nav</h2> <h3>What it means:</h3> <p>A &lt;nav&gt; element or navigation landmark is present.<h3>Why It Matters:</h3> <p>The navigation identifies a section of navigation links and can facilitate page semantics and navigation.<h3>What To Do:</h3> <p>Ensure the element defines page navigation. Multiple navigation elements on one page can be differentiated with ARIA labels.<h3>The Algorithm... in English:</h3> <p>A &lt;nav&gt; element or role="navigation" is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="search"><img src="/img/icons/search.svg" alt=""> Search - search</h2> <h3>What it means:</h3> <p>An ARIA search landmark is present.<h3>Why It Matters:</h3> <p>The search landmark identifies the search area within the page and facilitates keyboard navigation to the search area.<h3>What To Do:</h3> <p>Ensure the search landmark is implemented properly and surrounds the search area of the page.<h3>The Algorithm... in English:</h3> <p>An element has role="search".<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="main"><img src="/img/icons/main.svg" alt=""> Main content - main</h2> <h3>What it means:</h3> <p>A &lt;main&gt; element or main landmark is present.<h3>Why It Matters:</h3> <p>The &lt;main&gt; element or role="main" attribute identifies the main content for the page. This facilitate page semantics and navigation.<h3>What To Do:</h3> <p>Ensure the element surrounds and defines page main content.<h3>The Algorithm... in English:</h3> <p>A &lt;main&gt; element or role="main"is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="aside"><img src="/img/icons/aside.svg" alt=""> Aside - aside</h2> <h3>What it means:</h3> <p>An &lt;aside&gt; element or complementary landmark is present.<h3>Why It Matters:</h3> <p>An aside identifies secondary, related, or complementary content. It is typically presented in a sidebar.<h3>What To Do:</h3> <p>Ensure the aside surrounds and defines secondary, related, or complementary content.<h3>The Algorithm... in English:</h3> <p>An &lt;aside&gt; element or role="complementary" is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="footer"><img src="/img/icons/footer.svg" alt=""> Footer - footer</h2> <h3>What it means:</h3> <p>A &lt;footer&gt; element or contentinfo landmark is present.<h3>Why It Matters:</h3> <p>Footers identify a footer for the page or a page section. It typically identifies authorship, related links, copyright date, or other footer content. Footers facilitate page semantics and navigation.<h3>What To Do:</h3> <p>Ensure the element surrounds and defines page or page section footer content.<h3>The Algorithm... in English:</h3> <p>A &lt;footer&gt; element or role="contentinfo" is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="region"><img src="/img/icons/region.svg" alt=""> Generic region - region</h2> <h3>What it means:</h3> <p>An ARIA region is present<h3>Why It Matters:</h3> <p>Generic ARIA regions identify significant page areas that do not align to other region or ARIA landmark semantics - such as main, header, footer, etc. Regions support keyboard navigation and screen reader identification of page areas.<h3>What To Do:</h3> <p>Ensure the region identifies a significant page area. If the semantics for another region or landmark type aligns with the content (e.g., &lt;nav&gt; or &lt;aside&gt;), use it instead. Ensure the region has a descriptive label using aria-labelledby (typically referencing a heading at the beginning of the region) or aria-label.<h3>The Algorithm... in English:</h3> <p>An element has role="region" and an aria-label or aria-labelledby attribute.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.1 Bypass Blocks (Level A)</li></ul><h2 id="table_data"><img src="/img/icons/table_data.svg" alt=""> Data table - table_data</h2> <h3>What it means:</h3> <p>A data table is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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 &lt;th&gt; 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 (&lt;caption&gt; element) to the table.<h3>The Algorithm... in English:</h3> <p>A &lt;table&gt; element is present that contains at least one table header cell (&lt;th&gt;).<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li></ul><h2 id="table_caption"><img src="/img/icons/table_caption.svg" alt=""> Table caption - table_caption</h2> <h3>What it means:</h3> <p>A table caption is present.<h3>Why It Matters:</h3> <p>An associated table caption will be read by a screen reader with the table content.<h3>What To Do:</h3> <p>Ensure the table caption is properly associated with the correct table (&lt;caption&gt; should be the first element within the &lt;table&gt;) and that it provides a succinct description of the table.<h3>The Algorithm... in English:</h3> <p>A &lt;caption&gt; element is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li></ul><h2 id="th"><img src="/img/icons/th.svg" alt=""> Table header cell - th</h2> <h3>What it means:</h3> <p>A table header cell (&lt;th&gt;) is present.<h3>Why It Matters:</h3> <p>Table headers describe the content of their respective row or column. They can be identified by screen readers when data cells are encountered.<h3>What To Do:</h3> <p>Ensure the cell is a table header, otherwise change it to a data cell (&lt;td&gt;). 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., &lt;th scope="col"&gt; or &lt;th scope="row"&gt;) or headers and id attributes.<h3>The Algorithm... in English:</h3> <p>A &lt;th&gt; element is present that does not have a scope attribute value of "row" or "col".<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li></ul><h2 id="th_col"><img src="/img/icons/th_col.svg" alt=""> Column header cell - th_col</h2> <h3>What it means:</h3> <p>A table column header (&lt;th scope="col"&gt;) is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Ensure that the cell is actually a header cell for tabular data and that it is a column header.<h3>The Algorithm... in English:</h3> <p>A table header cell (&lt;th&gt;) is present that has a scope attribute value of "col".<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li></ul><h2 id="th_row"><img src="/img/icons/th_row.svg" alt=""> Row header cell - th_row</h2> <h3>What it means:</h3> <p>A table row header (&lt;th scope="row"&gt;) is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>Ensure that the cell is actually a header cell for tabular data and that it is a row header.<h3>The Algorithm... in English:</h3> <p>A table header cell (&lt;th&gt;) is present that has a scope attribute value of "row".<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li></ul><h2 id="iframe"><img src="/img/icons/iframe.svg" alt=""> Inline frame - iframe</h2> <h3>What it means:</h3> <p>An inline frame (&lt;iframe&gt;) is present.<h3>Why It Matters:</h3> <p>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.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>An &lt;iframe&gt; element is present.<h2 id="aria"><img src="/img/icons/aria.svg" alt=""> ARIA - aria</h2> <h3>What it means:</h3> <p>An ARIA role, state, or property is present.<h3>Why It Matters:</h3> <p>ARIA provides enhanced semantics and accessibility for web content.<h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>An ARIA role, state, or property is present, excluding landmark roles, aria-labelledby, or aria-describedby which are distinct WAVE items.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>4.1.2 Name, Role, Value (Level A)</li></ul><h2 id="aria_label"><img src="/img/icons/aria_label.svg" alt=""> ARIA label - aria_label</h2> <h3>What it means:</h3> <p>An aria-label or aria-labelledby attribute is present.<h3>Why It Matters:</h3> <p>ARIA labels define accessible names to be read by screen readers for interface elements. They may be used when HTML associations (label, alternative text, etc.) are not sufficient.<h3>What To Do:</h3> <p>Ensure the aria-label value or element referenced by aria-labelledby provides a descriptive, accurate label. When possible, use standard HTML &lt;label&gt; or other markup to make the association.<h3>The Algorithm... in English:</h3> <p>An aria-label or aria-labelledby attribute is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.1.1 Non-text Content (Level A)</li><li>1.3.1 Info and Relationships (Level A)</li><li>2.4.6 Headings and Labels (Level AA)</li><li>4.1.2 Name, Role, Value (Level A)</li><li>2.5.3 Label in Name (Level A)</li></ul><h2 id="aria_describedby"><img src="/img/icons/aria_describedby.svg" alt=""> ARIA description - aria_describedby</h2> <h3>What it means:</h3> <p>An aria-describedby attribute is present.<h3>Why It Matters:</h3> <p>ARIA descriptions provide additional information about interface elements, primarily form controls.<h3>What To Do:</h3> <p>Ensure the aria-describedby attribute references an element that provides a correct description.<h3>The Algorithm... in English:</h3> <p>An aria-describedby attribute is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>1.3.1 Info and Relationships (Level A)</li><li>4.1.2 Name, Role, Value (Level A)</li></ul><h2 id="aria_live_region"><img src="/img/icons/aria_live_region.svg" alt=""> ARIA alert or live region - aria_live_region</h2> <h3>What it means:</h3> <p>An ARIA alert role or live region is present.<h3>Why It Matters:</h3> <p>ARIA live regions and alerts can be used to dynamically inform screen reader users of content updates.<h3>What To Do:</h3> <p>Ensure the live region is properly tested and presents important, succinct content updates. A live region should not be used if focus is set to the updated page element.<h3>The Algorithm... in English:</h3> <p>A role="alert", role="alertdialog", or aria-live attribute is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>3.3.1 Error Identification (Level A)</li><li>4.1.3 Status Messages (Level AA)</li></ul><h2 id="aria_menu"><img src="/img/icons/aria_menu.svg" alt=""> ARIA menu - aria_menu</h2> <h3>What it means:</h3> <p>An ARIA menu is present.<h3>Why It Matters:</h3> <p>ARIA menus are application menus (like those used in software menu) with a specific keyboard interactions. They are NOT for navigation links on a web site.<h3>What To Do:</h3> <p>Ensure that the menu is an application menu and has the appropriate keyboard interactions (menu items are navigated via the arrow keys, not via the Tab key), otherwise remove the menu role.<h3>The Algorithm... in English:</h3> <p>An element with role="menu" or role="menubar" is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.1.1 Keyboard (Level A)</li><li>4.1.2 Name, Role, Value (Level A)</li></ul><h2 id="aria_button"><img src="/img/icons/aria_button.svg" alt=""> ARIA button - aria_button</h2> <h3>What it means:</h3> <p>An element with role="button" is present.<h3>Why It Matters:</h3> <p>Elements with role="button" must function like native buttons. These should typically be replaced with true button elements.<h3>What To Do:</h3> <p>Replace the element with a true button element, or ensure the element is keyboard navigable, can be activated with Enter or Space key presses (key detection is typically necessary), and provides a visible focus indicator.<h3>The Algorithm... in English:</h3> <p>An element (other than a button) has role="button".<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.1.1 Keyboard (Level A)</li><li>4.1.2 Name, Role, Value (Level A)</li></ul><h2 id="aria_expanded"><img src="/img/icons/aria_expanded.svg" alt=""> ARIA expanded - aria_expanded</h2> <h3>What it means:</h3> <p>An aria-expanded attribute is present.<h3>Why It Matters:</h3> <p>The aria-expanded attribute indicates the status of content that can be expanded and collapsed.<h3>What To Do:</h3> <p>Ensure that aria-expanded is used correctly (typically on a button that controls expandable content) and that the value (true or false) reflects the expansion state.<h3>The Algorithm... in English:</h3> <p>An element with an aria-expanded attribute is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>4.1.2 Name, Role, Value (Level A)</li></ul><h2 id="aria_haspopup"><img src="/img/icons/aria_haspopup.svg" alt=""> ARIA popup - aria_haspopup</h2> <h3>What it means:</h3> <p>An element triggers a popup menu, dialog, or other element.<h3>Why It Matters:</h3> <p>The aria-haspopup element, when applied to a button, indicates that triggering the element will open an ARIA menu, dialog, listbox, tree, or grid.<h3>What To Do:</h3> <p>Ensure that the element triggers an ARIA menu, dialog, listbox, tree, or grid and that the aria-haspop attribute value aligns with the type of element that is opened.<h3>The Algorithm... in English:</h3> <p>An aria-haspopup attribute is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>4.1.2 Name, Role, Value (Level A)</li></ul><h2 id="aria_tabindex"><img src="/img/icons/aria_tabindex.svg" alt=""> ARIA tabindex - aria_tabindex</h2> <h3>What it means:</h3> <p>A tabindex value of 0 or less is present.<h3>Why It Matters:</h3> <p>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). <h3>What To Do:</h3> <p>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.<h3>The Algorithm... in English:</h3> <p>A tabindex attribute is present and has a value of 0 or less.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>2.1.1 Keyboard (Level A)</li></ul><h2 id="aria_hidden"><img src="/img/icons/aria_hidden.svg" alt=""> ARIA hidden - aria_hidden</h2> <h3>What it means:</h3> <p>Content is hidden with ARIA.<h3>Why It Matters:</h3> <p>Content hidden with aria-hidden="true" is not presented to screen reader users.<h3>What To Do:</h3> <p>Ensure the content is intended to be hidden from screen reader users. The hidden content must not contain any navigable elements (such as links or form controls).<h3>The Algorithm... in English:</h3> <p>An element with aria-hidden="true" is present.<h3>Relevant WCAG 2.1 Success Criteria:</h3> <ul><li>4.1.2 Name, Role, Value (Level A)</li></ul> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10