Reviewing Website Accessibility
This resource gives a brief overview of the existing options for reviewing the accessibility of a website, including using checklists, running automated checking tools, and hiring people to audit a site.
The standards for web accessibility are complex, it’s true. This resource discusses the rules in Canada, and breaks down exactly what is needed to meet the all-important Web Content Accessibility Guidelines (WCAG). Even when simplified, though, WCAG can be complex — so this may be one document you keep coming back to!
Subject(s):
Website Accessibility
Resource Type(s):
Standards and Best Practices
Audience:
Technical
Before reading this, you might want to read:
When built (or remediated) with accessibility in mind, websites can present digital content that can be easily accessed and used by almost any potential site visitor. To help people make the most accessible websites possible, the Web Accessibility Initiative (WAI) has created The Web Content Accessibility Guidelines (WCAG)—guidelines which provide detailed recommendations on how to make all kinds of digital content accessible, and set the standard for web accessibility. And, to encourage (or mandate…) compliance, the Government of Canada and some provinces have released legislation around web accessibility.
In Canada, there is some legislation which mandates requirements for accessibility – but in general, these requirements boil down to meeting WCAG. For example, the Accessible Canada Act (ACA, 2019) is expected to adopt the latest standard of WCAG at Level AA conformance for all websites and web applications (don’t worry – if you are not sure what this means, it is explained below!).
The Accessibility for Ontarians with Disabilities Act (AODA, 2005) is more explicit – as outlined in the Information and Communications Standards (see sections 9 – 19) part of Ontario Regulation 191/11 under the AODA, public websites and web content posted after January 1, 2012, must meet the WCAG 2.0 Level AA success criteria, except for the guidelines around live captions and pre-recorded audio descriptions.
Whether or not accessibility is mandated for your organization, it is of course fantastic to ensure that your website and digital content can be easily accessed by any potential visitor. On this page, we’ll break down some of the Web Content Accessibility Guidelines so you can dive in to improving your site!
The Web Content Accessibility Guidelines we will discuss here are from version 2.1 (released in 2018). Note that an updated version—2.2—is expected in the Fall 2022, so stay tuned! Don’t worry though, implementing what we share below will only serve to set you up for success, even when the new version of the guidelines comes into force.
The Web Content Accessibility Guidelines are organized under four principles. Content must be:
And, there are three success criteria levels:
Each principle has a set of criteria under each success criteria level. Here, we will give a broad overview of each criterion, but for in-depth explanations and examples for the criterion, check out some of the “Links to More Information”.
Note that this overview will only include the A and AA criteria. For AAA, see the WCAG documentation; meeting AAA would be awesome, but it is not technically required by any standards, so we have left it off of this resource. In this table, we have the Principle (Perceivable, Operable, Understandable, and Robust), the category, the specific criterion/guideline, the level (A or AA), and how to meet it. We have provided simplified language (which should help people who are less experienced with web development) and also the language provided by WCAG’s creators.
Important Note! Some of the “Simplified Language” don’t address some of the more complex implementations that are possible in web development. Be sure to dig into the links for more in-depth information.
Category: 1.1 Text Alternatives Criterion: 1.1.1 Non-text Content Level: A Simplified Language: Include alternative text for all non-decorative images. From WCAG: All non-text content that is presented to the user has a text alternative that serves the equivalent purpose, except for the situations listed below.
|
Category: 1.2 Time-based Media Criterion: 1.2.1 Audio-only and Video-only (Prerecorded) Level: A Simplified Language: Include alternate ways of presenting the information, like transcripts for podcasts, or text descriptions for a silent video. From WCAG: For prerecorded audio-only and prerecorded video-only media, the following are true, except when the audio or video is a media alternative for text and is clearly labeled as such:
|
Category: 1.2 Time-based Media Criterion: 1.2.2 Captions (Prerecorded) Level: A Simplified Language: Include captions in pre-recorded videos. From WCAG: Captions are provided for all pre-recorded audio content in synchronized media, except when the media is a media alternative for text and is clearly labeled as such. |
Category: 1.2 Time-based Media Criterion: 1.2.3 Audio Description or Media Alternative (Prerecorded) Level: A Simplified Language: Include audio descriptions or media alternatives for pre-recorded video content. From WCAG: An alternative for time-based media or audio description of the prerecorded video content is provided for synchronized media, except when the media is a media alternative for text and is clearly labeled as such. |
Category: 1.2 Time-based Media Criterion: 1.2.4 Captions (Live) Level: AA Simplified Language: Include captions for live video. From WCAG: Captions are provided for all live audio content in synchronized media. |
Category: 1.2 Time-based Media Criterion: 1.2.5 Audio Description (Prerecorded) Level: AA Simplified Language: Include audio descriptions for pre-recorded video content (unlike 1.2.3, audio description is required to meet this; alternate approaches like a text description only meets 1.2.3, Level A). From WCAG: Audio description is provided for all prerecorded video content in synchronized media. |
Category: 1.3 Adaptable Criterion: 1.3.1 Info and Relationships Level: A Simplified Language: Ensure that the information on a page is structured and well organized, and uses HTML correctly. HTML should be used wherever possible, for headings, lists, tables, asides, blockquotes, emphasized text, etc. From WCAG: Information, structure, and relationships conveyed through presentation can be programmatically determined or are available in text. |
Category: 1.3 Adaptable Criterion: 1.3.2 Meaningful Sequence Level: A Simplified Language: Present the information in a logical reading order, ensuring that the order in the code matches the visual reading order From WCAG: When the sequence in which content is presented affects its meaning, a correct reading sequence can be programmatically determined. |
Category: 1.3 Adaptable Criterion: 1.3.3 Sensory Characteristics Level: A Simplified Language: Ensure that instructions provided for understanding and interacting with or operating content don’t only rely on “sensory characteristics” such as shape, colour, size, visual location, orientation, or sound. From WCAG: Instructions provided for understanding and operating content do not rely solely on sensory characteristics of components such as shape, colour, size, visual location, orientation, or sound. |
Category: 1.3 Adaptable Criterion: 1.3.4 Orientation Level: AA Simplified Language: Ensure that the site’s content does not restrict its view and operation to a one screen orientation ( portrait or landscape), unless a specific display orientation is absolutely required. From WCAG: Content does not restrict its view and operation to a single display orientation, such as portrait or landscape, unless a specific display orientation is essential. |
Category: 1.3 Adaptable Criterion: 1.3.5 Identify Input Purpose Level: AA Simplified Language: Ensure that the purpose of form fields (like name, email address, password) can be understood by the user’s software/computer. Basically, use correct mark-up for forms, and consider using the HTML autocomplete attribute. From WCAG: The purpose of each input field collecting information about the user can be programmatically determined when:
|
Category: 1.4 Distinguishable Criterion: 1.4.1 Use of Color Level: A Simplified Language: Ensure that colour is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element. From WCAG: Colour is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element. |
Category: 1.4 Distinguishable Criterion: 1.4.2 Audio Control Level: A Simplified Language: Ensure that users are able to pause, stop, mute or control the volume of any audio that plays for more than 3 seconds. From WCAG: If any audio on a Web page plays automatically for more than 3 seconds, either a mechanism is available to pause or stop the audio, or a mechanism is available to control audio volume independently from the overall system volume level. |
Category: 1.4 Distinguishable Criterion: 1.4.3 Contrast (Minimum) Level: AA Simplified Language: Ensure that the contrast between text and its background is sufficient (4.5:1 for 18pt size and lower, 3:1 for larger size text). From WCAG: The visual presentation of text and images of text has a contrast ratio of at least 4.5:1, except for the following:
|
Category: 1.4 Distinguishable Criterion: 1.4.4 Resize text Level: AA Simplified Language: Ensure that text can be resized up to 200% larger than the original, without causing any issues with content or function. From WCAG: Except for captions and images of text, text can be resized without assistive technology up to 200 percent without loss of content or functionality. |
Category: 1.4 Distinguishable Criterion: 1.4.5 Images of Text Level: AA Simplified Language: Avoid using images of text unless they are absolutely necessary – use HTML instead. From WCAG: If the technologies being used can achieve the visual presentation, text is used to convey information rather than images of text except for the following:
|
Category: 1.4 Distinguishable Criterion: 1.4.10 Reflow Level: AA Simplified Language: Users should be able to magnify web pages by up to 400% without losing functionality – this means ensuring that content is reflowable and responsive as users zoom in. From WCAG: Content can be presented without loss of information or functionality, and without requiring scrolling in two dimensions for:
|
Category: 1.4 Distinguishable Criterion: 1.4.11 Non-text Contrast Level: AA Simplified Language: Ensure that the contrast between non-text content (like buttons, radio button indicators, graphics, etc.) and background is sufficient – at least 3:1. From WCAG: The visual presentation of the following have a contrast ratio of at least 3:1 against adjacent colour(s):
|
Category: 1.4 Distinguishable Criterion: 1.4.12 Text Spacing Level: AA Simplified Language: When users are able to manipulate text-spacing, ensure that no loss of meaning, content, or function occurs based on line/letter/word spacing. From WCAG: In content implemented using markup languages that support the following text style properties, no loss of content or functionality occurs by setting all of the following and by changing no other style property:
Exception: Human languages and scripts that do not make use of one or more of these text style properties in written text can conform using only the properties that exist for that combination of language and script. |
Category: 1.4 Distinguishable Criterion: 1.4.13 Content on Hover or Focus Level: AA Simplified Language: When “hover text” appears (either by hovering over the trigger text with a mouse pointer, or by navigating to the word using keyboard navigation – called “focus”), this text must be:
From WCAG: Where receiving and then removing pointer hover or keyboard focus triggers additional content to become visible and then hidden, the following are true:
Exception: The visual presentation of the additional content is controlled by the user agent and is not modified by the author. |
Category: 2.1 Keyboard Accessible Criterion: 2.1.1 Keyboard Level: A Simplified Language: Ensure that users are able to operate all of the functions on a site using a keyboard interface. From WCAG: All functionality of the content is operable through a keyboard interface without requiring specific timings for individual keystrokes, except where the underlying function requires input that depends on the path of the user’s movement and not just the endpoints. |
Category: 2.1 Keyboard Accessible Criterion: 2.1.2 No Keyboard Trap Level: A Simplified Language: Users should be able to move keyboard focus away from a component of a site or page (like a calendar widget or modal dialog box) using the standard keyboard interface – if this is not possible, users should be advised on how to move focus away. From WCAG: If keyboard focus can be moved to a component of the page using a keyboard interface, then focus can be moved away from that component using only a keyboard interface, and, if it requires more than unmodified arrow or tab keys or other standard exit methods, the user is advised of the method for moving focus away. |
Category: 2.1 Keyboard Accessible Criterion: 2.1.4 Character Key Shortcuts Level: A Simplified Language: When a site has keyboard shortcuts that use only a textual character, ensure that the user has the option of one or more of the following: disabling them, remapping/reassigning them, or ensuring that the unique shortcuts are only active when the component that uses them is being interacted with. From WCAG: If a keyboard shortcut is implemented in content using only letter (including upper- and lower-case letters), punctuation, number, or symbol characters, then at least one of the following is true:
|
Category: 2.2 Enough Time Criterion: 2.2.1 Timing Adjustable Level: AA Simplified Language: If content on a site (like log-in periods, amount of time given to complete a purchase, etc.) has a time limit, then at least one of the following options is available:
There are exceptions for real-time restrictions (like an auction), if the time limit is essential, or if the time limit is more than 20 hours. From WCAG: For each time limit that is set by the content, at least one of the following is true:
|
Category: 2.2 Enough Time Criterion: 2.2.2 Pause, Stop, Hide Level: AA Simplified Language: For content that moves, blinks, scrolls, or auto-updates, the following is true:
From WCAG: For moving, blinking, scrolling, or auto-updating information, all of the following are true:
|
Category: 2.3 Seizures and Physical Reactions Criterion: 2.3.1 Three Flashes or Below Threshold Level: A Simplified Language: Ensure that the site does not contain anything that flashes more than three times in any one second period (unless that flashing content is sufficiently small and the flashes are of low contrast and do not contain too much red). From WCAG: Web pages do not contain anything that flashes more than three times in any one second period, or the flash is below the general flash and red flash thresholds. |
Category: 2.4 Navigable Criterion: 2.4.1 Bypass Blocks Level: A Simplified Language: Ensure that users are able to bypass blocks of content that are repeated on multiple Web pages, like adding a link at the top of each page that goes directly to the main content area. From WCAG: A mechanism is available to bypass blocks of content that are repeated on multiple Web pages. |
Category: 2.4 Navigable Criterion: 2.4.2 Page Titled Level: A Simplified Language: Include descriptive <title> information for each web page. From WCAG: Web pages have titles that describe the topic or purpose. |
Category: 2.4 Navigable Criterion: 2.4.3 Focus Order Level: A Simplified Language: If the order of information/actions on a page should be navigated in a certain order that affects meaning, ensure that keyboard navigation follows the correct sequence. From WCAG: If a Web page can be navigated sequentially and the navigation sequences affect meaning or operation, focusable components receive focus in an order that preserves meaning and operability. |
Category: 2.4 Navigable Criterion: 2.4.4 Link Purpose (In Context) Level: A Simplified Language: Ensure that every active link has useful link text, like “View our Spring Catalogue” instead of “Click Here”. From WCAG: The purpose of each link can be determined from the link text alone or from the link text together with its programmatically determined link context, except where the purpose of the link would be ambiguous to users in general. |
Category: 2.4 Navigable Criterion: 2.4.5 Multiple Ways Level: AA Simplified Language: Ensure that there is more than one way to locate a particular page on a site, like having menu navigation, links between pages, a search function, etc. From WCAG: More than one way is available to locate a Web page within a set of Web pages except where the Web Page is the result of, or a step in, a process. |
Category: 2.4 Navigable Criterion: 2.4.6 Headings and Labels Level: AA Simplified Language: Ensure that headings and labels are descriptive and useful, and accurately describe the section they head, the paragraph they introduce, or the function of the form field they are labeling. From WCAG: Headings and labels describe topic or purpose. |
Category: 2.4 Navigable Criterion: 2.4.7 Focus Visible Level: AA Simplified Language: Ensure that any component of a page that can be used by a keyboard, like a search field, gives a visual indication when it is active (like a blinking cursor, or highlighted text). From WCAG: Any keyboard operable user interface has a mode of operation where the keyboard focus indicator is visible. |
Category: 2.5 Input Modalities Criterion: 2.5.1 Pointer Gestures Level: A Simplified Language: Ensure that any site function that is designed to be accomplished by using either “multi-point” or “path-based” gestures (like zooming into a map by pinching and zooming with two fingers on a touch-screen, or drawing a pattern to unlock a phone) can be achieved by using a single pointer or having non-path based approach ((like clicking plus or minus to zoom, or giving users the option of using a passcode instead of a pattern). From WCAG: All functionality that uses multipoint or path-based gestures for operation can be operated with a single pointer without a path-based gesture, unless a multipoint or path-based gesture is essential. |
Category: 2.5 Input Modalities Criterion: 2.5.2 Pointer Cancellation Level: A Simplified Language: Ensure that one of the following is true for any site function that is activated with a “single-pointer” input (i.e., a single tap or a click, double-taps and clicks, long presses, and path-based gestures):
From WCAG: For functionality that can be operated using a single pointer, at least one of the following is true:
|
Category: 2.5 Input Modalities Criterion: 2.5.3 Label in Name Level: A Simplified Language: For user interface components with labels (like buttons) that include text or images of text, the “programmatic” name (the one that can be read by the computer) should contain the text that is presented visually. This ensures that there is no confusion when a screen reader user focuses on that component. From WCAG: For user interface components with labels that include text or images of text, the name contains the text that is presented visually. |
Category: 2.5 Input Modalities Criterion: 2.5.4 Motion Actuation Level: A Simplified Language: Ensure that any function that is activated by motion (like shaking a device to undo an action or an input) can also be accomplished by an interface component (like a button to “Cancel” or “Undo”). From WCAG: Functionality that can be operated by device motion or user motion can also be operated by user interface components and responding to the motion can be disabled to prevent accidental actuation, except when:
|
Category: 3.1 Readable Criterion: 3.1.1 Language of Page Level: A Simplified Language: Define the language of the page in the HTML element, for each page. From WCAG: The default human language of each Web page can be programmatically determined. |
Category: 3.1 Readable Criterion: 3.1.2 Language of Parts Level: AA Simplified Language: Define the language of phrases/text in other languages (when it is different from the main language of the page). There are exceptions, like names (e.g., Marcel Proust), technical terms (e.g., zeitgeist), or words/phrases that are common in English (or the main language of the site) (e.g., schadenfreude, rendezvous, etc.). From WCAG: The human language of each passage or phrase in the content can be programmatically determined except for proper names, technical terms, words of indeterminate language, and words or phrases that have become part of the vernacular of the immediately surrounding text. |
Category: 3.2 Predictable Criterion: 3.2.1 On Focus Level: A Simplified Language: Ensure that users can explore the content of a page without triggering an unexpected change of context. For example, clicking into a form field should not open a pop-up; pressing the down arrow in a drop-down menu should not open a new window or page. From WCAG: When any user interface component receives focus, it does not initiate a change of context. |
Category: 3.2 Predictable Criterion: 3.2.2 On Input Level: A Simplified Language: Ensure that users can change the “setting” of an interface component (e.g., check a checkbox, enter text into a field, etc.) without triggering a change of context (e.g., opening a new window or page, rearranging the content of the page, etc.). From WCAG: Changing the setting of any user interface component does not automatically cause a change of context unless the user has been advised of the behavior before using the component. |
Category: 3.2 Predictable Criterion: 3.2.3 Consistent Navigation Level: AA Simplified Language: Navigational mechanisms (e.g., navigation menus, search fields, “skip to navigation” links, etc.) need to occur in the same relative order on multiple Web pages within a set of Web pages. This ensures that the user can easily navigate web pages, since there is predictability. From WCAG: Navigational mechanisms that are repeated on multiple Web pages within a set of Web pages occur in the same relative order each time they are repeated, unless a change is initiated by the user. |
Category: 3.2 Predictable Criterion: 3.2.4 Consistent Identification Level: AA Simplified Language: Ensure that components with the same functionality (e.g., a button that “skips to the next page”, or an icon of an envelope that users can click to send a message to a person, etc.) are identified consistently (e.g., the text always says “skip to next page” instead of sometimes saying “skip to next page” and other times saying the name of the next page instead; or the envelope icon sometimes opens up a message form, and sometimes opens up the users’ mail platform). From WCAG: Components that have the same functionality within a set of Web pages are identified consistently. |
Category: 3.3 Input Assistance Criterion: 3.3.1 Error Identification Level: A Simplified Language: Ensure that when input errors ( which are most commonly errors or missing information in forms) are automatically detected, the item that is in error is identified and the error is described to the user in text (e.g., if they skip a field, or add incorrect information to a required field, text like “Email address required” or “Postal code does not exist” should appear by the field when the form reloads). Additional visual cues can appear as well, like red text or highlighting, but ensure that there is a textual indicator. From WCAG: If an input error is automatically detected, the item that is in error is identified and the error is described to the user in text. |
Category: 3.3 Input Assistance Criterion: 3.3.2 Labels or Instructions Level: A Simplified Language: Provide clear labels and/or instructions to users to help ensure that they are able to easily and correctly fill out forms (e.g., the needed date format is included for a field asking for a date, or required vs. optional fields are clearly labeled, etc.). From WCAG: Labels or instructions are provided when content requires user input. |
Category: 3.3 Input Assistance Criterion: 3.3.3 Error Suggestion Level: AA Simplified Language: Ensure that users receive appropriate suggestions for correction of an input error if it is possible. If an input error is automatically detected and suggestions for correction are known (e.g., If the error is in the format of the input, the suggestion shows the correct format, like ‘The date must be in the form DD/MM/YYYY’). From WCAG: If an input error is automatically detected and suggestions for correction are known, then the suggestions are provided to the user, unless it would jeopardize the security or purpose of the content. |
Category: 3.3 Input Assistance Criterion: 3.3.4 Error Prevention (Legal, Financial, Data) Level: AA Simplified Language: For web pages that cause legal commitments or financial transactions for the user, that modify or delete user-controllable data in data storage systems, or that submit user test responses, at least one of the following must be true:
From WCAG: For Web pages that cause legal commitments or financial transactions for the user to occur, that modify or delete user-controllable data in data storage systems, or that submit user test responses, at least one of the following is true:
|
Category: 4.1 Compatible Criterion: 4.1.1 Parsing Level: A Simplified Language: Ensure that all elements have complete start and end tags (like <p>…</p>, for a very basic example). Any missing parts will mean that technology, like screen readers, will run into issues when reading the site’s content. From WCAG: In content implemented using markup languages, elements have complete start and end tags, elements are nested according to their specifications, elements do not contain duplicate attributes, and any IDs are unique, except where the specifications allow these features. |
Category: 4.1 Compatible Criterion: 4.1.2 Name, Role, Value Level: A Simplified Language: The name and role of all user interface components (like link, form elements, etc.) need to be able to be “programmatically determined” (i.e., understood by software). Important note: This success criterion is primarily for Web authors who develop or script their own user interface components. Standard HTML controls already meet this success criterion when used according to specification. From WCAG: For all user interface components (including but not limited to: form elements, links and components generated by scripts), the name and role can be programmatically determined; states, properties, and values that can be set by the user can be programmatically set; and notification of changes to these items is available to user agents, including assistive technologies. |
Category: 4.1 Compatible Criterion: 4.1.3 Status Messages Level: Simplified Language: Sometimes, when a user completes an action (like running a search, submitting a form, or skipping a form field), a status message (like “5 results returned”, “registration form submitted”, or “email address required”) will appear on the page. Ensure that this content is designed to be announced by a screen reader, as it often does not happen automatically. To ensure that status messages are read, use an ARIA role like one of the following (but note that there are more available):
Note: Be sure to use the correct role. The “alert” role causes a screen reader to interrupt what it’s currently speaking and announce the alert; it would be appropriate for the example situation of “email address required”. Something like “5 results returned” is less urgent and could use a role such as “status”. This will still be announced but will not cause an interruption. From WCAG: In content implemented using markup languages, status messages can be programmatically determined through role or properties such that they can be presented to the user by assistive technologies without receiving focus. |
You may have heard of “Accessibility Overlays”—products depicted as an “automated solution” that modify the code of a web page, often using JavaScript. These products are usually in the form of a plugin, app, toolbar, or widget, and the companies that create and promote the use of accessibility overlays claim their products automatically detect and fix web accessibility issues. Accessibility overlays always leave out both technical points of web site accessibility, as well as the users themselves, thus resulting in exclusionary processes and products. Moreover, accessibility overlays and automation of remediation are far from perfect: these tools often fail to correctly identify problems in several areas including keyboard traps that prevent users from using form fields, missing links, focus order, quality and relevance of image description and alt-text, use of layout tables, closed captions, inaccessible captchas, and misidentified language.
All this to say: Accessibility Overlays are not at all a recommended approach to accessibility.
The Web Content Accessibility Guidelines (WCAG) from the World Wide Web Consortium (W3C) are a set of guidelines designed to make web content accessible to people with disabilities. They are organized under four principles: perceivable, operable, understandable, and robust. There are three conformance levels: A, AA, and AAA. AA is recommended. The guidelines cover the content itself, such as text and images, and also the markup used to structure it.
An accessibility checking tool that checks for possible accessibility issues on a web page. Issues that are automatically found are indicated, and it also provides information to help with manual checking. It is a great place to start testing a website, but does require some technical knowledge of WCAG.
This blog post recommends five automated tools that can be used to check web accessibility. It mentions that manual testing is also needed in addition to automated checks. Tools discussed are WAVE: Website Accessibility Evaluation tool, SortSite, aXe: the Accessibility Engine, Pa11y, and Tota11y.
The Overlay Fact Sheet is an open statement providing a high level overview of what overlays are and what they can and cannot do. It provides clear facts in an easy to digest format, and provides actual opinions of people with disabilities regarding their experiences with overlays.
Content Source Acknowledgement
Accessibility.com:Introduction to Canadian Digital Accessibility Laws
World Wide Web Consortium – Web Accessibility Initiative: WCAG 2.1 at a Glance
Karlgroves.com: Overlay Fact Sheet: What it is and how to make it work for you