Craft CMS Accessibility Conformance Report
WCAG Edition
Based on VPAT® Version 2.4
Name of Product/Version
Craft CMS v5.0.0
Report Date
Mar 26, 2024
Product Description
Craft is a flexible, user-friendly CMS for creating custom digital experiences on the web.
Contact Information
Notes
This document is based on an audit performed on content authoring screens only.
When issues related to a Success Criterion affect the usability of the product, explanations and remarks have been provided to describe the extent of the issue and any known workarounds.
The following screens were tested in the scope of this evaluation:
- Login
- Dashboard
- My Account area
- Index screens (entries, categories, assets)
- Edit screens (entry, category, asset)
No plugins were installed or tested as part of the audit. All widgets included with the basic install of Craft CMS were added to the Dashboard screen.
Two sites were created with different languages, and some fields were set as translatable. All field types included with a basic Craft CMS install were tested. Field layouts were modified to use both a single screen and multiple tabs. Descriptive labels and instructions were added to custom fields. Some fields were marked as required, and field minimums and maximums were toggled on and off to test error instructions.
The following user actions were tested, where content may refer to entries, categories, and assets:
- Creating and editing content
- Searching and filtering content
- Performing actions on content from element index screens
- Reordering content
- Viewing and editing content metadata (i.e., slug, expiry date, post date, and change notes)
- Enabling and disabling content
- Updating the user preferences
Evaluation Methods Used
A representative page was chosen for testing when page structures were similar to ensure efficient testing. For example, the Categories screen was chosen as a representative sample for element index screens. A single entry edit page was chosen as a representative sample for edit screens. Further, each page was broken down into constituent components.
Component and page state information was thoroughly tracked to ensure tests were performed in all states of operation. Automated testing and guided manual testing of static screens and components were performed using the axe DevTools Pro browser extension. After automated and guided manual testing, we followed axe’s Advanced Testing Coverage guide to ensure consistent and comprehensive manual testing of all screens and components. Additional tests were performed for new WCAG 2.2 AA Success Criteria not yet included in axe’s published Advanced Testing Coverage guide.
Screen reader testing was performed using a combination of NVDA/Firefox, JAWS/Chrome, and VoiceOver/Safari. When loading speed or focus changes made verifying whether status messages were announced challenging, the NerdeRegion live region debugger was used to persist status messages.
To test SC 3.1.2 (Language of Parts), fields were created with English names, instructions, and content. User preferences were then updated to display the CMS in a non-English language.
Applicable Standards/Guidelines
This report covers the degree of conformance for the following accessibility standard/guidelines:
Standard/Guideline | Included In Report |
---|---|
Web Content Accessibility Guidelines 2.0 |
Level A (Yes) Level AA (Yes) Level AAA (No) |
Web Content Accessibility Guidelines 2.1 |
Level A (Yes) Level AA (Yes) Level AAA (No) |
Web Content Accessibility Guidelines 2.2 |
Level A (Yes) Level AA (Yes) Level AAA (No) |
Terms
The terms used in the Conformance Level information are defined as follows:
- Supports
- The functionality of the product has at least one method that meets the criterion without known defects or meets with equivalent facilitation.
- Partially Supports
- Some functionality of the product does not meet the criterion.
- Does Not Support
- The majority of product functionality does not meet the criterion.
- Not Applicable
- The criterion is not relevant to the product.
- Not Evaluated
- The product has not been evaluated against the criterion. This can be used only in WCAG 2.0 Level AAA.
WCAG 2.x Report
Success Criterion Number | Criteria | Conformance Level | Remarks & Explanations |
---|---|---|---|
1.1.1 |
Non-text Content
Level A |
Partially Supports |
Show remarks for Authoring Tool 1.1.1 Non-text ContentThe control panel generally meets this criterion. The control panel allows developers to add a native Alternative Text field to image field layouts. This enables images to use the author-provided alt text within the control panel. Some exceptions are:
|
1.2.1 |
Audio-only and Video-only (Prerecorded)
Level A |
Partially Supports |
Show remarks for Authoring Tool 1.2.1 Audio-only and Video-only (Prerecorded)Only video assets — not audio assets — are previewable in the control panel. The control panel does not provide native functionality to relate supplementary audio tracks to video assets. However, authors can add text alternatives to videos via the Alternative Text native field. This alternative text is visible when previewing videos throughout the control panel. |
1.2.2 |
Captions (Prerecorded)
Level A |
Does Not Support |
Show remarks for Authoring Tool 1.2.2 Captions (Prerecorded)Craft CMS does not provide the ability to attach caption tracks to uploaded videos. Videos previewed in the control panel will only have captions if they have been hard-coded into the video files. |
1.2.3 |
Audio Description or Media Alternative (Prerecorded)
Level A |
Partially Supports |
Show remarks for Authoring Tool 1.2.3 Audio Description or Media Alternative (Prerecorded)The CMS does not have native fields for linking audio descriptions to uploaded video assets. As a result, video previews in the control panel will only have audio descriptions if they are integrated into the video assets themselves. However, plain text transcripts can be associated with videos via the native Alternative Text field. |
1.2.4 |
Captions (Live)
Level AA |
Not Applicable |
Show remarks for Authoring Tool 1.2.4 Captions (Live)There is no live audio or video content in the control panel. |
1.2.5 |
Audio Description (Prerecorded)
Level AA |
Does Not Support |
Show remarks for Authoring Tool 1.2.5 Audio Description (Prerecorded)Craft CMS does not provide the option to attach audio descriptions to uploaded videos. The only way to meet this requirement inside the control panel is for authors to ensure that uploaded videos use a method of audio description such as integrated description. |
1.3.1 |
Info and Relationships
Level A |
Partially Supports |
Show remarks for Authoring Tool 1.3.1 Info and RelationshipsA great deal of the control panel implements techniques for conveying information and relationships in accessible ways, with the following exceptions: Globally:
On the Dashboard:
My Account region:
Image Editor:
On edit screens:
|
1.3.2 |
Meaningful Sequence
Level A |
Partially Supports |
Show remarks for Authoring Tool 1.3.2 Meaningful SequenceThe control panel presents content in a meaningful sequence. The exception is when an author has modified a field; the “This field has been modified” message is located before the field label, so it may be confused as referring to the previous field. |
1.3.3 |
Sensory Characteristics
Level A |
Supports |
Show remarks for Authoring Tool 1.3.3 Sensory CharacteristicsReferences and instructions provided inside the control panel do not rely on sensory information alone. |
1.3.4 |
Orientation
Level AA 2.1 and 2.2 only |
Supports |
Show remarks for Authoring Tool 1.3.4 OrientationView and operation are not restricted to a single display orientation. |
1.3.5 |
Identify Input Purpose
Level AA 2.1 and 2.2 only |
Partially Supports |
Show remarks for Authoring Tool 1.3.5 Identify Input PurposeThe Profile page uses valid input purposes for username, full name, and email address to make it easier to fill out forms. There are a couple of exceptions in the Addresses slideout:
If additional custom fields are added to the user profile page, there’s no way for developers to identify input purposes. Input purposes have been identified for many Address field inputs. However, Selectize fields (used for fields like country, administrative area, and preferred language) do not work well with browser autocomplete. |
1.4.1 |
Use of Color
Level A |
Partially Supports |
Show remarks for Authoring Tool 1.4.1 Use of ColorWith default settings enabled, color is used to differentiate:
Users can update their preferences so that:
With these settings enabled, there are still two exceptions to meeting this criterion:
|
1.4.2 |
Audio Control
Level A |
Supports |
Show remarks for Authoring Tool 1.4.2 Audio ControlThe control panel does not feature auto-playing audio. |
1.4.3 |
Contrast (Minimum)
Level AA |
Partially Supports |
Show remarks for Authoring Tool 1.4.3 Contrast (Minimum)Most text in the control panel meets minimum contrast requirements. Exceptions include:
There is a known bug with inputs that use Selectize, where the contrast of the selected option drops under the minimum when it’s hovered. |
1.4.4 |
Resize text
Level AA |
Supports |
Show remarks for Authoring Tool 1.4.4 Resize textThe control panel supports browser zoom to 200% without loss of content or functionality. |
1.4.5 |
Images of Text
Level AA |
Supports |
Show remarks for Authoring Tool 1.4.5 Images of TextThere are no images of text in the control panel except for logotypes. |
1.4.10 |
Reflow
Level AA 2.1 and 2.2 only |
Partially Supports |
Show remarks for Authoring Tool 1.4.10 ReflowThe control panel generally supports viewport widths of 320px (the equivalent of 400% zoom at 1280px wide), with some exceptions. Dashboard:
My Account area:
In element indexes:
On edit screens:
|
1.4.11 |
Non-text Contrast
Level AA 2.1 and 2.2 only |
Partially Supports |
Show remarks for Authoring Tool 1.4.11 Non-text ContrastGenerally meets, with the following exceptions:
For the most part, focus outlines meet non-text contrast, with the following exceptions:
|
1.4.12 |
Text Spacing
Level AA 2.1 and 2.2 only |
Supports |
Show remarks for Authoring Tool 1.4.12 Text SpacingThere is no loss of content or functionality when line height, paragraph spacing, letter spacing, and word spacing are adjusted. |
1.4.13 |
Content on Hover or Focus
Level AA 2.1 and 2.2 only |
Partially Supports |
Show remarks for Authoring Tool 1.4.13 Content on Hover or FocusThe control panel includes custom tooltips that appear on hover and focus. These are hoverable, persistent, and dismissible via the ESC key. However, there is a known bug where dismissing a tooltip that’s inside a disclosure menu causes the menu to close. |
2.1.1 |
Keyboard
Level A |
Partially Supports |
Show remarks for Authoring Tool 2.1.1 KeyboardMany control panel functions are keyboard-operable, with the following exceptions: Globally:
On the Dashboard:
In element indexes:
On detail pages:
In the Image Editor:
|
2.1.2 |
No Keyboard Trap
Level A |
Partially Supports |
Show remarks for Authoring Tool 2.1.2 No Keyboard TrapThere is a single bug that introduces a focus trap in the control panel:
|
2.1.4 |
Character Key Shortcuts
Level A 2.1 and 2.2 only |
Supports |
Show remarks for Authoring Tool 2.1.4 Character Key ShortcutsKeyboard shortcuts include modifier keys to prevent accidental activation. |
2.2.1 |
Timing Adjustable
Level A |
Partially Supports |
Show remarks for Authoring Tool 2.2.1 Timing AdjustableAdjustable timing is successfully implemented for user session durations. When a user’s session is close to expiring, a modal appears that allows them to extend their session. Users have the ability to adjust the display time of notification toasts in their preferences or make them persistent. However, users may encounter short toast display times before updating this setting unless developers have set a longer or indefinite duration time. |
2.2.2 |
Pause, Stop, Hide
Level A |
Partially Supports |
Show remarks for Authoring Tool 2.2.2 Pause, Stop, HideGenerally meets. Videos are not auto-played in the control panel except in response to user interaction. However, previews of GIFs and other image formats that support animation do auto-play. |
2.3.1 |
Three Flashes or Below Threshold
Level A |
Supports |
Show remarks for Authoring Tool 2.3.1 Three Flashes or Below ThresholdNo flashing elements exist in the Craft CMS control panel; however, authored content could pose a risk since GIFs and animated images auto-play. |
2.4.1 |
Bypass Blocks
Level A |
Partially Supports |
Show remarks for Authoring Tool 2.4.1 Bypass BlocksA skip link is provided to bypass the global navigation menu. In addition, skip links are used in other parts of the UI to help users bypass lengthy content blocks. However, there are some exceptions:
|
2.4.2 |
Page Titled
Level A |
Partially Supports |
Show remarks for Authoring Tool 2.4.2 Page TitledPages generally have titles that describe their purpose. Exceptions are:
|
2.4.3 |
Focus Order
Level A |
Partially Supports |
Show remarks for Authoring Tool 2.4.3 Focus OrderGenerally meets, with some exceptions. There are some instances where the focus order is unexpected:
There are some instances where focus is dropped. These include: Globally:
On the Dashboard:
On element indexes:
|
2.4.4 |
Link Purpose (In Context)
Level A |
Supports |
Show remarks for Authoring Tool 2.4.4 Link Purpose (In Context)The purpose of each link in the site can be determined from the link text alone or from the programmatic context of the link. |
2.4.5 |
Multiple Ways
Level AA |
Does Not Support |
Show remarks for Authoring Tool 2.4.5 Multiple WaysNo global search function or sitemap is provided in the control panel, so users must use the global navigation menu and element index pages to reach most content. Authors can use Dashboard widgets to give themselves additional ways of reaching content. |
2.4.6 |
Headings and Labels
Level AA |
Supports |
Show remarks for Authoring Tool 2.4.6 Headings and LabelsHeadings and labels provided by the CMS generally meet this criterion. Also, developers are able to provide useful and informative headings and labels inside field layouts and custom fields. |
2.4.7 |
Focus Visible
Level AA |
Partially Supports |
Show remarks for Authoring Tool 2.4.7 Focus VisibleThe control panel implements focus indicators for all focusable elements. The only known exceptions are:
|
2.4.11 |
Focus Not Obscured (Minimum)
Level AA 2.2 only |
Partially Supports |
Show remarks for Authoring Tool 2.4.11 Focus Not Obscured (Minimum)The control panel generally meets this criterion. However, if notifications toasts are made persistent, open notifications could obscure keyboard focus on other parts of the page. |
2.5.1 |
Pointer Gestures
Level A 2.1 and 2.2 only |
Supports |
Show remarks for Authoring Tool 2.5.1 Pointer GesturesThe control panel does not rely on multipoint or path-based gestures. |
2.5.2 |
Pointer Cancellation
Level A 2.1 and 2.2 only |
Supports |
Show remarks for Authoring Tool 2.5.2 Pointer CancellationActions that might be invoked on the down event can either be canceled or reversed in a separate action. For example, assets can be picked up and moved between folders. When the asset is released outside the target area, it reverts to its current folder. Actions like table row reordering can be undone in a separate action. |
2.5.3 |
Label in Name
Level A 2.1 and 2.2 only |
Partially Supports |
Show remarks for Authoring Tool 2.5.3 Label in NameThe control panel generally supports this requirement. However, there are some known exceptions. On the Dashboard page:
On element indexes:
On edit screens:
|
2.5.4 |
Motion Actuation
Level A 2.1 and 2.2 only |
Supports |
Show remarks for Authoring Tool 2.5.4 Motion ActuationNo control panel functionality depends on user or device motion. |
2.5.7 |
Dragging Movements
Level AA 2.2 only |
Does Not Support |
Show remarks for Authoring Tool 2.5.7 Dragging MovementsSingle-pointer activation has been implemented in relational fields to allow entry reordering as an alternative to dragging via the move handles. On the Dashboard:
On edit screens:
In the Image Editor:
|
2.5.8 |
Target Size (Minimum)
Level AA 2.2 only |
Partially Supports |
Show remarks for Authoring Tool 2.5.8 Target Size (Minimum)Interactive elements generally meet size or spacing requirements, with a few exceptions:
|
3.1.1 |
Language of Page
Level A |
Supports |
Show remarks for Authoring Tool 3.1.1 Language of PageThe human language of each page can always be programmatically determined. |
3.1.2 |
Language of Parts
Level AA |
Partially Supports |
Show remarks for Authoring Tool 3.1.2 Language of PartsAdministrators and developers are responsible for translating field names, options, instructions, and other control panel messages to support authors’ preferred languages. This can be accomplished by following implementation instructions for Static Message Translations. When translations haven’t been provided, these elements will fail this criterion as they inherit the page language. Also, text that has not yet been translated by authors (i.e., entry titles, alternative text) does not correctly identify the original language. Globally, font icon CSS content has not been hidden from screen reader users. This can cause some English strings to remain in the document when setting the preferred language to a non-English language. If a user is signed out of their session, and the default control panel language differs from their preferred language, the authentication modal will not correctly identify the human-readable language. Untranslated strings have not been given wrappers identifying their language. The following items will affect screen reader users whose preferred language is not set to English: Globally:
On indexes:
On the Dashboard:
In the Image Editor:
On edit screens:
|
3.2.1 |
On Focus
Level A |
Supports |
Show remarks for Authoring Tool 3.2.1 On FocusNo focus events trigger a change of context. |
3.2.2 |
On Input
Level A |
Partially Supports |
Show remarks for Authoring Tool 3.2.2 On InputA change of context occurs on selection on the Login screen when 2FA is active, and the user changes the value of the “Try another way” control; focus is moved to the new input without warning. On element index pages, when changing the value of the Actions menu in the footer (which presents as a combobox), a change of context occurs due to focus being dropped. |
3.2.3 |
Consistent Navigation
Level AA |
Supports |
Show remarks for Authoring Tool 3.2.3 Consistent NavigationCraft CMS’s layout provides a consistent method of navigation throughout the control panel. A skip link is consistently located at the beginning of each page for keyboard users. |
3.2.4 |
Consistent Identification
Level AA |
Partially Supports |
Show remarks for Authoring Tool 3.2.4 Consistent IdentificationA bug with “truncation tooltips” causes the accessible name of entry links to be doubled when a tooltip is present. As a result, some links may be identified inconsistently based on whether the title is truncated. For example, a link to the entry “My Blog Post” may be referred to as “My Blog Post My Blog Post” only when the title is truncated. In addition, the link to the Profile page in the My Account menu is named “{{ username }} {{ email }}”; in the My Account area, it’s called “Profile.” |
3.2.6 |
Consistent Help
Level A 2.2 only |
Not Applicable |
Show remarks for Authoring Tool 3.2.6 Consistent HelpThere is no help mechanism in the control panel’s layout template. |
3.3.1 |
Error Identification
Level A |
Partially Supports |
Show remarks for Authoring Tool 3.3.1 Error IdentificationCraft CMS provides error identification and descriptive error messages when user input does not meet field requirements. However, there are two exceptions:
|
3.3.2 |
Labels or Instructions
Level A |
Partially Supports |
Show remarks for Authoring Tool 3.3.2 Labels or InstructionsGenerally meets, with the following exceptions: Globally:
Dashboard:
In element indexes:
Image Editor:
On edit screens:
|
3.3.3 |
Error Suggestion
Level AA |
Supports |
Show remarks for Authoring Tool 3.3.3 Error SuggestionWhen input errors are automatically detected, error messages are shown near the input with suggestions for correcting them. |
3.3.4 |
Error Prevention (Legal, Financial, Data)
Level AA |
Supports |
Show remarks for Authoring Tool 3.3.4 Error Prevention (Legal, Financial, Data)The control panel provides confirmation dialogs to prevent users from unintentionally performing sensitive actions like deleting elements. In addition, authors can restore previous versions of content. |
3.3.7 |
Redundant Entry
Level A 2.2 only |
Not Applicable |
Show remarks for Authoring Tool 3.3.7 Redundant EntryThe control panel does not require that users enter information again in the same process. |
3.3.8 |
Accessible Authentication (Minimum)
Level AA 2.2 only |
Supports |
Show remarks for Authoring Tool 3.3.8 Accessible Authentication (Minimum)Password entry by password managers is supported. All inputs related to authentication — including 2FA verification and recovery code inputs — allow copy and paste. |
4.1.1 |
Parsing
Level A |
Not Applicable |
|
4.1.2 |
Name, Role, Value
Level A |
Partially Supports |
Show remarks for Authoring Tool 4.1.2 Name, Role, ValueGenerally meets, with some exceptions. Globally:
My Account pages:
In element indexes:
On edit screens:
|
4.1.3 |
Status Messages
Level AA 2.1 and 2.2 only |
Partially Supports |
Show remarks for Authoring Tool 4.1.3 Status MessagesThe CMS uses live regions in various places to announce status messages to screen reader users. These include:
There are some exceptions, including:
|