Checklist
Content
Content plays one of the most important part of your website.
Write content at an 8th grade level.
Try to avoid terms like “click here” and “read more” as they do not provide any context. There are people who navigate using a list of buttons or links on a page or view. Using this mode should indicate what will happen if navigated to or activated.
It is difficult read center-aligned and justified text.
Left-to-right languages abbreviation: LTR
Right-to-left abbreviation: RTL
Tables
Tables help people understand relationships between different types of information in a structured data set.
Use the table
element to display data in rows and columns.
Lists
With the help of lists elements people know how a collection of items are related, if they are sequential, and the amount of items that are present in a list group.
This refers to sections of related content, sibling a elements and items visually displayed in a grid-like layout.
Forms
Forms help people enter information into a site for manipulation and processing such as sending messages or placing orders.
Use fieldset
to group multiple sections of related inputs in a form and legend
for label to describe what this section is for.
Autocomplete helps people more quickly and accurately to fill in form fields (for example, name, phone number, address).
That way assistive technology users have a quick high-level understanding of what issues occur in a form. Make sure that a reported error has a link to the corresponding field that has an invalid input.
Using aria-describedby
allows assistive technology to easily understand the difference between the input and the error message.
There are people who are color blind or have other low vision conditions, this might can even concern different cultural understandings for color.
Heading
Heading elements such as h1, h2, h3, etc. help differ the content of the page. They are very important for people who use assistive technology to understand the meaning of a page or view.
With heading elements you construct a document outline. Avoid using headings for the purpose of purely visual design.
Using h1
element communicates the high-level purpose of a page or view.
The order of heading elements should descend, based on the “depth” of the content. For example, a h4
element should not appear on a page before the first h3
element declaration. A tool such as headingsMap can help you evaluate this.
Heading levels should be consistent in example h2
to h3
to h4
element. A bad example would be h2
to h4
.
Color
Color and contrast is how legible colors are when placed next to, and on top of each other.
Level AA compliance requires a contrast ratio of 3.0:1.
The contrast ratio should be at least 3.0:1 for Level AA. Input elements can be radio buttons, text input, checkboxes etc.
Make sure the color contrast you set in your ::selection
CSS declaration is sufficient. There is a risk that it might not be readable when highlighted.
Keyboard
It is important to be able to navigate content with a keyboard as there are situations when people cannot use a mouse, or might be using other assistive technologies where hovering or precise clicking is not possible.
It is important to see where active elements are when navigating with a keyboard, voice control, switch* or screen reader.
*An assistive technology used mainly by people with motor impairments
Make sure that navigating is consistent and moving around the page is predictable.
Focusing on elements that are invisible can cause confusion because invisible elements are not meant to interact with.
Global code
Global code affects your entire website or web application.
Lang attribute helps assistive technology like screen readers to pronounce content correctly.
The title
element which is contained in a document’s head
element would be the first information announced by assistive technology. This helps tell people know where they are going to start navigating.
Text might need to be resized to a point where people can read.
With landmark regions you help communicate important areas of a page or view. For example, use the nav
element to wrap the site’s navigation, and the main
element to contain the primary content.
Remove tabindex
attribute values that are not either 0
or -1
. Inherently focusable elements, such as links or button
have no require for tabindex
. And those elements that are not inherently focusable do not need a tabindex
applied to them.
People who have low vision or are blind may be confused when the focus is moves without their permission. autofocus
can be a problem for people with motor control disabilities as it might create extra work.
Allow people to be able to extend their session if you cannot remove timeouts altogether.
Acceptable use of title
attribute would be for labeling an iframe
element in order to indicate what content it contains.
Media
Media includes content such as pre-recorded and live audio and video.
Autoplay can be distracting or disruptive, especially for cognitive disability like ADHD. And certain kinds of autoplaying of animations or videos can trigger vestibular and seizure disorders.
Examples like volume sliders using <input type="range">
, mute button on audio that shows a pressed toggle state when active.
Video
Video-specific check.
THREE FLASHES OR BELOW THRESHOLD 2.3.1
Seizures can be triggered by certain kinds of flashing or strobing animations.
Audio
Audio-specific checks.
People who cannot hear can still understand the audio content with transcript.
Images
Images are common and it can be good to broaden the audience by making images accessible.
The title
attribute has numerous issues. There is an acception for using the title
attribute e.g. labeling an iframe
element to show what content it contains.
Animation
Animations are content that move when triggered or by themselves.
THREE FLASHES OR BELOW THRESHOLD 2.3.1
Some people are sensitive to certain kinds of strobing or flashing animations and they can trigger seizures. People with cognitive disabilities like ADHD might be very distracted.
Background video for some can be distracting in situations like when the content is placed over the video content.
ANIMATION FROM INTERACTIONS 2.3.3
When the “reduce motion” setting is activated remove animations. When an animation is communicates a meaning for a concept try to slow down its duration.
Controls
Interactive elements such as links and buttons are considered controls, they let a person navigate to interested destination or perform specific actions.
Links should always have a href
attribute whether it is a multiple application page or a Single Page Application (SPA). href
attribute in a link is needed so it can be properly exposed to assistive technology.
Justs colouring links is not enough to indicate a link. For example a link with an underline is more recognisable.
Making focus styles visible help people recognise which interactive element has a keyboard focus. That way you know what can be interacted with when using a keyboard.
Buttons are used to example submit data or perform an action. Add type="button"
to a button
element in order to prevent a browser from attempting to submit a form information when activated.
The skip link provides quick access to the main content of a page and allows a person to easily bypass globally repeated content.
G201: GIVING USERS ADVANCED WARNING WHEN OPENING A NEW WINDOW
In general avoid links that open in a window or tab, but if that is neccesary warn users about these actions. By doing this people will not be surprised when interacting and irritating factors reduce.
Appearance
How your website or app contents looks like in different situations.
Activate modes such as Windows High Contrast or Inverted Colors.
Doing this will help users read content when using zoom.
You can use the straw test to ensure that people who depend on screen zoom can easily discover content.
Apart from color consider form to highlight information.
Use a combination of both visual and audio.
Mobile & Touch
Don’t forget about mobile experiences
For example if an application or website only supports landscape there might be difficulties when using a mobile phone.
It is good to make sure things like hamburger menus, social icons, gallery viewers, and other touch controls are usable by a wide range of people.
Some people who experience motor control issues like hand tremors may have difficulties scrolling past interactive items when there is zero spacing between.
Checklist inspired by a11y Project.