This is a much more detailed guide compared to WCAG guide for no-code creators on all other criteria except colors.
It contains more criteria and technical information for more complex customizations, such as writing custom code or custom UI components for Freedom UI pages.
It's a part of the WCAG user guides. This is a preliminary version to get more feedback about it and later publish it on the Creatio Academy.
Contents:
- How to use
- Automatic checks
- Rules
- Component level
1.1. General recommendations
1.2. All components criteria
1.3. Specific components criteria - Page level
- Component level
- Courses and articles
How to use
Understand the set of criteria you need to consider.
Different levels of rules (component, page, application) depend on the part of the application that is affected by the task.
Some rules for components apply only to tasks with specific functionality (like images or multi-language content).
Ensure that the developed functionality meets each criterion:
Read the information in this article and the linked WCAG article to get a basic understanding of the criterion.
Get more details by looking at additional material at the end of this article
To verify whether the criteria are met, consider using ESLint and Axe (in Chrome DevTools or Storybook, for example) where applicable. See the “Automatic checks” section below.
⚠️Provided examples and recommendations are intended to give an initial understanding of each rule and don’t cover all scenarios. It is essential to dive deeper into every rule to be able to apply it properly.
Automatic checks
Some rules are partially covered by different types of automatic checks.
Lint. Special ESLint rules that show warnings/errors in HTML templates of Angular components.
Axe. Checks against the “alive” component, can be made in:
⚠️Automatic checks may be useful for finding accessibility issues, but passing all these checks doesn’t ensure that there are no violations. Check functionality manually to ensure compliance.
Rules
1. Component level
Must be applied when:
a new component is created from scratch
an existing component is changed
1.1. General recommendations
These recommendations should be considered in the early stages of component development.
Recommendations | Related criteria | Violation examples |
---|---|---|
Read the documentation of the component you are using and Patterns page on the official W3C site | All | Chips component documentation has the Angular Material Chips | Accessibility section. It states: “Always apply MatChipRemove to a Yet, the initial chips implementation does not have a |
To provide more data about the page structure:
|
| |
Ensure that the order of the content in the source code sections matches the visual presentation of the content. |
| |
|
| |
Ensure that every interactive UI element (e.g. links, buttons, controls for custom widgets, form inputs/elements) has an accessible name. ℹ️The name can come from the native text of the element (e.g. link text, |
|
1.2. All components criteria
All these criteria should be checked while developing a custom component.
WCAG Criteria | Short guideline | Good/bad examples | Automatic checks |
---|---|---|---|
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
| Lint (bad) | |
|
|
| |
|
| Axe (bad) | |
|
|
| |
|
| Axe (bad) | |
The name, role and value of page components MUST be programmatically determinable by assistive technologies.
|
|
| |
|
|
|
1.3. Specific components criteria
These criteria may be applied to a specific custom component depending on their functionality or other conditions.
For example, components containing images must also meet criteria 1.1.1 Non-text Content and 1.4.5 Images of Text.
Elements & WCAG criteria | Short guideline | Good/bad examples | Automatic checks |
---|---|---|---|
WCAG criteria: |
|
|
|
Inputs WCAG criteria: |
|
| Axe (bad) |
Images WCAG criteria: |
|
|
|
Overlays displayed on hover/focus WCAG criteria: | Where receiving and then removing pointer hover or keyboard focus triggers additional content to become visible and then hidden, the following are true:
|
|
|
All elements with keyboard shortcuts WCAG criteria: |
|
|
|
Auto-refreshable content WCAG criteria: |
|
|
|
All elements with pointer gestures (like sliders) WCAG criteria: |
|
|
|
All elements with pointer handling (like drag&drop) WCAG criteria: |
|
|
|
All elements (mobile app) WCAG criteria: |
|
|
|
Elements with text of language that differs from the page WCAG criteria: |
|
| Axe (bad) |
Elements with manual focus handling WCAG criteria: |
|
|
|
2. Page level
Must be applied when:
a new Freedom UI page is created from scratch
existing Freedom UI page is changed
new components are added
configuration of existing components is changed
The following component-level criteria should be checked in the context of the page even if all components inside already meet them.
WCAG criteria | Why check on the page? |
---|---|
The component may work with arbitrary images and may not know about the content of the image. | |
There may be some event handlers or other settings specified on the page, preventing normal keyboard access. | |
Visual components may not know that the displayed content is auto-refreshable, it may be the page’s responsibility. | |
Focus order may be acceptable inside every component, but these components may be combined (or configured) in the wrong way. | |
Focus may be obscured by different components on the page if they are combined in the wrong way. | |
There may be some event handlers specified on the page, triggering the context change. | |
The page may require re-entering the information even though each component on it doesn’t. | |
In some cases, the necessary attribute may be set to the respective component from the page. | |
Page may be responsible for visual/function changes and must use components to communicate those changes. |
The criteria below should usually be met in the context of a specific page or user flow.
Functionality & WCAG criteria | Short guideline | Good/bad examples | Automatic checks |
---|---|---|---|
Use cases with long duration WCAG criteria: |
|
|
|
All pages WCAG criteria: |
|
| Axe (bad) |
All pages WCAG criteria: |
|
|
|
ℹ️Creatio OOTB covers a number of page-level criteria, for example:
2.4.1 Bypass Blocks by including the skip links in the page
3.1.1 Language of Page by specifying the current user language selected in the user profile.
3.2.3 Consistent Navigation by providing a general navigation pattern across the system
Also, if you set a custom login page (usually done by setting up the SSO 3rd party provider, and want it to be accessible, please check if it supports 3.3.8 Accessible Authentication (Minimum) criterion.
Additional courses and articles
We encourage you to use additional tools, articles, and, especially nowadays, new AI tools to get help with WCAG checks. All major AI chat providers could provide you with a lot of useful answers to WCAG questions.
Articles
Web Content Accessibility Guidelines (WCAG) 2.2 (consider checking the “Techniques” section)
Web Accessibility Checklist by Deque
A short guide for developers covering the most important rules: Accessibility Developers' Guide by Deque
Access Guide - a friendly introduction to accessibility
List of all W3C guidelines: Web Content Accessibility Guidelines (WCAG) 2.2
List of all rules covered by Axe: List of axe 4.10 rules | Deque University | Deque Systems
Courses
Great to start with:
Web accessibility: The ultimate guide - Silktide is easy to follow and easy to understand, there is a 🙀 for atmosphere)
Great to go in-depth:
ESDC Self-Paced Web Accessibility Course
The concepts, success criteria and techniques are thoroughly explained using clear and simple language with relevant examples and sample code.
There are 11 modules in the course, and it takes about 1 hour of reading per module.
This course is designed for designers, developers, testers, trainers, content authors, project managers and anyone who's interested in learning more about web accessibility.