Accessibility checklist for designers
Use this checklist to avoid common accessibility issues in your UI designs.
#What is this?
This is a checklist that Siteimprove designers can use to check whether their UI designs comply with a subset of WCAG 2.1 (level AA) guidelines related to UI design. Please reach out to us on Slack in the #ux_fancy channel if you have any questions or feedback.
#Does the checklist guarantee an accessible design?
No, but it's a solid start and you’ll have avoided a lot of common issues. To avoid other potential accessibility issues, we recommend you also consult the accessibility guidelines of the Fancy components you use in your designs. Lastly, when in doubt about anything accessibility related, don't hesitate to reach out to Fancy's accessibility experts through the #a11y_fancy channel.
#Checklist
#Hierarchy
Use Headings to create a clear content hierarchy and help screen reader users navigate a page's content.
Skip Heading levels.
#H1 level
#Component or text styles
Use the text components or styles in the Fancy UI kit for Figma. This enables developers to inspect your designs and figure out the correct Heading level to use in code.
Style Heading level text manually (by selecting the font, font-size, line-height, etc.).
#Styling non-heading text
Use InlineText or Paragraph components (text styles in Figma) and their size
and emphasis
properties to style text that doesn’t function as a Heading.
Use Headings to style text that doesn’t function as a heading.
#Lookalike
#Color reliance
Add a descriptive label and/or graphic element, when color is used to convey something.
Rely on color alone to convey something.
#Text
Make sure text has a contrast ratio of at least 4.5:1.
Use a contrast ratio below 4.5:1 for text.
#Graphic elements
Make sure the parts of a graphic element that are necessary to understand it, have a contrast ratio of 3:1 — both against their background and adjacent parts.
Use a contrast ratio below 3:1 for graphic elements.
#Interactive elements
Make sure interactive elements have a contrast ratio of at least 3:1.
Use a contrast ratio below 3:1 for interactive elements.
#Plugin
Use the pre-installed “Contrast” Figma plugin to check contrast ratios in your designs. Especially when deviating from the default border, background, and text colors.
Worry about color contrast between the internal parts that make up Fancy components. They’ve been checked and pass the WCAG AA level.
#Order
Keep in mind that screen reader uses will generally experience your design in a linear top-to-bottom, left-to-right order.
Assume all users will immediately notice visually prominent UI elements, regardless of their position on a page.
#Important information and actions
Place important information and actions before elements they concern.
Place important information and actions after elements they concern.
#Connection
Try to place new content immediately after the element that triggered its creation.
Hesitate to reach out to an accessibility specialist when this is not possible.
#Column headers
Try to put a visible label in each column header.
Omit visible column header labels for aesthetic reasons. Only omit them when every table cell in a column contains an interactive element.
#Interactive content
Put only a single interactive element, such as a Button, in a table cell.
Put multiple interactive elements components in a table cell. Instead, put them in separate table cells in separate table columns.
#Static content
Try to put only a single static element, such as a piece of text, in a table cell.
Put multiple static elements in a table cell, unless absolutely necessary. Always try splitting up such content into multiple columns.
#No data
Always put something in a table cell. When there’s no data for a table cell, put in an explanation for why this is the case.
Leave table cells empty or filled with only a symbol for missing data, such as a dash or icon.
#Visible input labels
Add visible labels to input elements.
Omit visible labels from input elements.
#Placeholders
Use a visible label or help text for information essential to filling out an input field.
Use placeholder text for essential information.
#Required format
Provide instructions when an input requires a specific format (date, zip code, phone number, etc.)
Assume users will know the correct input format.
#Multiple pages
Inform users about their progress when a form is divided into multiple pages.
Only show users whether there’s a previous and/or next step.
#General usage
Use icons purposefully to clarify the meaning of UI elements or improve scannability.
Use icons mainly for aesthetic reasons.
#Visible icon labels
Always try to add visible labels to icons.
Omit visible labels due to aesthetic reasons.
#Tooltip
Add a tooltip to an icon if there’s insufficient space for a visible label.
Add a tooltip if an icon has a visible label.
#Flashing animations
Avoid flashing animations as much as possible.
Let animations flash more than 3 times, and never more than 3 times per second.
#Static alternatives
Provide developers with a static alternative (image) for your animation, since users can disable animations.
Always use a single frame from your animation as static alternative. Users may struggle to understand the meaning of such an image.
#Controls
Provide controls to pause, stop, or hide videos or auto-updating content (auto-scrolling feeds, image carousels, GIFs, etc.).
Omit such controls.