Yes |
A |
1.1.1 Non-text Content |
All img tags must have alt attributes. |
Yes |
A |
1.1.1 Non-text Content |
If short alt text is sufficient to describe an image, provide the short text via the image's alt attribute. |
Yes |
A |
1.1.1 Non-text Content |
If a short text alternative is not sufficient to describe an image (such as in a chart, graph, or diagram), provide short text via the image's alt attribute, and include a long description in nearby text. |
Yes |
A |
1.1.1 Non-text Content |
If an image or icon is used as a button or link, the image has a text alternative sufficient to describe the purpose of the button or link. |
Yes |
A |
1.1.1 Non-text Content |
Images that are decorative, used for formatting, or contain content already conveyed in text have a null alt attribute or are implemented as CSS background images. |
Yes |
A |
1.1.1 Non-text Content |
Frames and iFrames have descriptive titles. |
Yes |
A |
1.1.1 Non-text Content |
Minimize the number of adjacent links to the same destination by combining adjacent images and text into a single link, rather than creating a separate link for each element. |
Yes |
A |
1.2.1 Audio-only and Video-only (Prerecorded) |
For pre-recorded audio (without video), provide a descriptive transcript that includes dialogue and all other meaningful sound. |
Yes |
A |
1.2.1 Audio-only and Video-only (Prerecorded) |
For pre-recorded video (without audio), provided a text alternative or audio descriptions that provide the same information presented |
Yes |
A |
1.2.2 Captions (Prerecorded) |
Provide captions for prerecorded audio content in non-live synchronized media. |
Yes |
A |
1.2.3 Audio Description or Media Alternative (Prerecorded) |
For non-live video, provide a descriptive transcript or an audio description. |
Yes |
A |
1.3.1 Info and Relationships |
Use semantic markup to designate headings, lists, figures, emphasized text, etc. |
Yes |
A |
1.3.1 Info and Relationships |
Organize pages using properly nested HTML headings. |
Yes |
A |
1.3.1 Info and Relationships |
Use ARIA landmarks and labels to identify regions of a page. |
Yes |
A |
1.3.1 Info and Relationships |
Reserve tables for tabular data, use table headers appropriately, and use table captions. |
Yes |
A |
1.3.1 Info and Relationships |
When the appearance of text conveys meaning, also use appropriate semantic markup. |
Yes |
A |
1.3.1 Info and Relationships |
Avoid emulating links and buttons. Use the a and button tags appropriately. Avoid using a tags for buttons. Avoid using div, span, etc. tags for links or buttons. |
Yes |
A |
1.3.1 Info and Relationships |
Avoid using whitespace characters for layout purposes. |
Yes |
A |
1.3.2 Meaningful Sequence |
Ensure that the source order presents content meaningfully. When the page is viewed without styles, all content on the page should still appear in a meaningful and logical order. |
Yes |
A |
1.3.3 Sensory Characteristics |
Do not identify content based on its color, size, shape, position, sound, or other sensory characteristics. |
Yes |
A |
1.3.3 Sensory Characteristics |
Do not convey information solely through icons or symbols. |
Yes |
A |
1.4.1 Use of Color |
Links should always be easily identifiable through non-color means, including both default and hover states. The easiest and most conventional way to signify links is underlining. |
Yes |
A |
1.4.1 Use of Color |
Required fields and fields with errors must include some non-color way to identify them. |
Yes |
A |
1.4.1 Use of Color |
When the color of words, backgrounds, or other content is used to convey information, also include the information in text. |
N/A |
A |
1.4.2 Audio Control |
Do not have audio that plays automatically on the page. When providing audio, also provide an easy way to disable the audio and adjust the volume. |
Yes |
A |
2.1.1 Keyboard |
Avoid implementing access keys. When access keys and other keyboard shortcuts are implemented, they must not interfere with existing browser and screen reader provided shortcuts. |
Yes |
A |
2.1.1 Keyboard |
All functionality should be available to a keyboard without requiring specific timing of keystrokes, unless the functionality cannot be provided by a keyboard alone. |
Yes |
A |
2.1.1 Keyboard |
Avoid relying exclusively on pointer-driven events, such as onmouseover, to provide functionality when scripting. Generally, such functionality will also require scripting for keyboard operability. |
Yes |
A |
2.1.1 Keyboard |
In general, avoid using scripts to remove focus from an element until the user moves focus manually. |
Yes |
A |
2.1.2 No Keyboard Trap |
Ensure keyboard focus is never trapped on an element without an obvious way to move focus out of the element. Make sure the user can move focus to and from all focusable elements using a keyboard only. |
N/A |
A |
2.1.4 Character Key Shortcuts |
If a keyboard shortcut uses only letter (including upper- and lower-case letters), punctuation, number, or symbol characters, then the user must be able to disable the shortcut, remap the shortcut, or limit the shortcut to only when a particular interactive element has focus. |
Yes |
A |
2.2.1 Timing Adjustable |
Do not require time limits to complete tasks unless absolutely necessary. If a time limit is necessary, the time limit should be at least 20 hours, or it can be extended, adjusted, or disabled. |
Yes |
A |
2.2.2 Pause, Stop, Hide |
Items on the page should not automatically move, blink, scroll, or update, including carousels. If content does automatically move, blink, scroll, or update, provide a way to pause, stop, or hide the moving, blinking, scrolling, or updating. |
Yes |
A |
2.3.1 Three Flashes or Below Threshold |
Do not provide any content that flashes more than three times in any 1-second period. |
Yes |
A |
2.4.2 Page Titled |
Make sure each web page has a title tag that is descriptive, informative, and unique. |
Yes |
A |
2.4.3 Focus Order |
Create a logical tab order through links, form controls, and interactive objects. |
Yes |
A |
2.4.3 Focus Order |
When inserting content into the DOM, insert the content immediately after the triggering element, or use scripting to manage focus in an intuitive way. When triggering dialogs and menus, make sure those elements follow their trigger in the focus order in an intuitive way. When content is dismissed or removed, place focus back on the trigger. |
Yes |
A |
2.4.3 Focus Order |
Avoid using tab index values greater than 0. |
Yes |
A |
2.4.4 Link Purpose (In Context) |
The purpose of each link can be determined from the link text alone, or from the link text and the containing paragraph, list item, or table cell, or the link text and the title attribute. |
Yes |
A |
2.4.4 Link Purpose (In Context) |
If the visible text alone is not sufficient to convey meaning, use advanced techniques to provide additional meaning, such as ARIA attributes, screen reader only text, or the title attribute. |
Yes |
A |
2.5.1 Pointer Gestures |
Do not require multipoint or path-based gestures (e.g. pinching, swiping, dragging) for functionality unless the gesture is essential to the functionality. |
Yes |
A |
2.5.2 Pointer Cancellation |
Avoid triggering functionality on down-events, such as onmousedown. Use events such as onclick instead. |
Yes |
A |
2.5.2 Pointer Cancellation |
If a function is triggered on an up-event (e.g. onmouseup), provide a way to abort or undo the function. |
Yes |
A |
2.5.3 Label in Name |
The accessible name for a UI element must contain any visual label for the element. Accessible names for UI elements should match visual labels as closely as possible. |
Yes |
A |
2.5.4 Motion Actuation |
Avoid activating functionality through motion (e.g. shaking a phone). If motion triggers functionality, provide a way to disable the motion trigger, and provide an alternative way to activate the functionality. |
Yes |
A |
3.1.1 Language of Page |
Provide a lang attribute on the page's html element. |
Yes |
A |
3.1.1 Language of Page |
When a visual label is present for an interactive element (e.g. link or form control), the accessible name of the element should contain the visual label. |
Yes |
A |
3.2.1 On Focus |
When the focus change, the page should not cause a change in page content, spawn a new browser window, submit a form, case further change in focus, or cause any other change that disorients the user. |
Yes |
A |
3.2.2 On Input |
When a user inputs information or interacts with a control, the page should not cause a change in page content, spawn a new browser window, submit a form, case further change in focus, or cause any other change that disorients the user. If an input causes such a change, the user must be informed ahead of time. |
Yes |
A |
3.3.1 Error Identification |
Programmatically indicate required fields using the required or aria-required attributes. Also, visually indicate required fields in the form's instructions or form labels. Do not indicate required fields for CSS alone. |
Yes |
A |
3.3.1 Error Identification |
Make errors easy to discover, identify, and correct. |
Yes |
A |
3.3.1 Error Identification |
Identify errors using aria-invalid. |
Yes |
A |
3.3.2 Labels or Instructions |
Use semantic, descriptive labels for inputs. Visually position labels in a consistent way that makes associating labels with form controls easy. Do not rely on placeholder text in lieu of an HTML label. |
Yes |
A |
3.3.2 Labels or Instructions |
Provide text instructions at the beginning of a form or set of fields that describes the necessary input. |
Yes |
A |
3.3.2 Labels or Instructions |
When providing inline help text, use aria-describedby to associate the help text with the input. |
Yes |
A |
4.1.1 Parsing |
Validate all page HTML, and avoid significant validation / parsing errors. |
Yes |
A |
4.1.2 Name, Role, Value |
Avoid creating custom widgets when HTML elements already exist. For example, use a and button tags appropriately. |
Yes |
A |
4.1.2 Name, Role, Value |
When creating a custom interactive widget, consult the ARIA Authoring Practices Document. Use ARIA labels, descriptions, roles, states, and properties to expose information about the component. |
Yes |
A |
4.1.2 Name, Role, Value |
Use ARIA to enhance accessibility only when HTML is not sufficient. Use caution when providing ARIA roles, states, and properties. |