Craft CMS Authoring Tool Accessibility Guidelines (ATAG) Report

Tool Name

Craft CMS

Conformance Target

Level AA

Report Identifier

Aug 12, 2024 / Version 5.3.0

Evaluator

Lupe Camacho

Organization

Pixel & Tonic

Contact Information

Applicable Guidelines

This report covers the degree of conformance for the following accessibility guidelines:

Results

Summary

  • 11 Passed
  • 19 Failed
  • 0 Cannot tell
  • 29 Not applicable
  • 0 Not checked

All Results

Success Critera IDs Success Critera Result Observations
A.1.1.1 Web-Based Accessible (WCAG) Failed

We audited the Craft 5.0.0 authoring experience against WCAG 2.2 AA success criteria and published a conformance report. At a high level, the results are:

  • 18 Supports
  • 30 Partially Supports
  • 4 Does Not Support
  • 4 Not Applicable
A.1.2.1 Accessibility Guidelines Not applicable

Craft CMS is a web-based CMS.

A.1.2.2 Platform Accessibility Services Not applicable

Craft CMS is a web-based CMS.

A.2.1.1 Text Alternatives for Rendered Non-Text Content Passed

When the native Alternative Text field is enabled for image assets, the image’s alternative text is used in editing views throughout the control panel.

A.2.1.2 Alternatives for Rendered Time-Based Media Failed

The only time-based media rendered in the control panel are video assets and animated images. Animated images, like GIFs, function identically to other images (see A.2.1.1).

Video previews are not rendered in editing views but only in standalone Preview modals accessible from editing views. When a video asset’s Alternative Text field is filled, the contents are available as “Transcript” text below the video in the Preview modal.

Craft CMS does not allow you 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.

A.2.2.1 Editing-View Status Indicators Failed

Craft CMS includes the following status indicators for its fields:

  • A vertical blue bar is shown adjacent to fields that have been modified
  • Character counts for Plain Text fields
  • Error indicator (list + aria-describedby)
  • Revision (readonly/disabled)

The following status indicators pass:

  • For simple fields, like Plain Text fields, the modified status indicator is programmatically exposed with aria-describedby (“This field has been modified”)

The following status indicators fail:

  • Text fields with character limits expose this information to assistive technology with a live region, but the limit isn’t programmatically linked with the input (PT-1889)
  • More complex fields, like fieldsets or fields where there are no explicit inputs (for example, Entries), do not expose the modified status indicator programmatically (PT-1890)
A.2.2.2 Access to Rendered Text Properties Not applicable

In a default install, Craft CMS doesn’t include fields that allow you to edit text formatting properties.

A.3.1.1 Keyboard Access (Minimum) Failed

Most of Craft CMS is keyboard accessible, but there are some exceptions. The Craft CMS v.5.0.0 Accessibility Conformance Report, section 2.1.1 Keyboard, provides a detailed account of issues.

As of version 5.3.0, both issues related to details pages have been resolved:

  • Table field rows can be reordered by keyboard
  • Matrix field checkboxes are keyboard-accessible, so keyboard users can now perform bulk options on Matrix items
A.3.1.2 No Keyboard Traps Failed

There is a single bug that introduces a focus trap in the control panel:

  • When opening a slideout on large viewports where the sidebar is toggled open initially, users can’t tab out of the details sidebar. A workaround is to resize the viewport window so the sidebar is closed on open or to edit entries on their dedicated edit pages.
A.3.1.3 Efficient Keyboard Access Passed

The Craft CMS interface uses several mechanisms to make keyboard access more efficient:

  • A bypass link is present on all pages to skip the primary navigation, and a handful of repeated blocks include skip links as well
  • Landmarks — such as main and navigation — are used to allow authors to navigate more quickly between page areas
  • On edit screens, keyboard shortcuts have been added for the following actions:
    • “Ctrl/⌘ + S” for “Save” functionality
    • “Ctrl/⌘ + Shift + S” for “Save and add another” functionality
A.3.1.4 Keyboard Access (Enhanced) Not applicable

Not in scope.

A.3.1.5 Customize Keyboard Access Not applicable

Not in scope.

A.3.1.6 Present Keyboard Commands Not applicable

Not in scope.

A.3.2.1 Auto-Save (minimum) Passed

Craft CMS’s default behavior is to autosave drafts (see the autosaveDrafts config setting). When a user updates content, unsaved changes are automatically stored.

If the session time limit is reached, users can extend their session (“Keep me signed in”) to continue working on the content. However, if a user is signed out before they can save, autosave allows them to resume edits where they left off.

A.3.2.2 Timing Adjustable Passed

Adjustable timing is successfully implemented for user session durations. When a user’s session is close to expiring, a modal allows them to extend it.

Users can 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.

A.3.2.3 Static Input Components Passed

Craft CMS does not include any moving user interface controls.

A.3.2.4 Content Edits Saved (Extended) Not applicable

Not in scope.

A.3.3.1 Static View Option Failed

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 and could pose a risk to authors with photosensitive seizure disorder.

A.3.4.1 Navigate by structure Not applicable

Custom fields and their resulting markup are highly customizable by developers, so there is not a clear 1:1 relationship between the editing view and document structure that would allow for intuitive keyboard navigation.

A.3.4.2 Navigate by Programmatic Relationships Not applicable

Not in scope.

A.3.5.1 Text Search Failed

The authoring tool does not have a feature for searching text on authoring screens. While an author can activate the in-browser search to search editable text, the search is not limited to the focused field. While the in-browser search is usually sufficient for finding text in editable fields, there are some outstanding issues. The in-browser search also finds invisible and off-screen content, so the visible search focus may be lost. In addition, content may be separated into various tabs in the field layout; browser search cannot find editable content in inactive tabs.

A.3.6.1 Independence of Display Passed

Craft CMS’s display settings can be adjusted without modifying the content that’s being edited.

A.3.6.2 Save Settings Passed

Preference settings are associated with author accounts, and settings are applied as soon as authors log in.

A.3.6.3 Apply Platform Settings Failed

Display settings

  • Reduced motion:
    • Pass: Animated UI components respect users’ “Reduce motion” settings. For example, animations are toggled for accordions and slideouts based on the author’s platform or system settings.
    • Fail: Time-based images like GIFs do not respect a user’s “Reduce motion” settings
  • Font sizing:
    • Fail: Usages of `px` and `rem` are mixed, so some parts of the UI respect the user’s preferred font sizes, while others are hard-coded. As a workaround, users who require larger font sizes can use browser zoom to increase legibility.
  • Language and locale:
    • Pass: Unless overridden with control panel preferences — or a default control panel language has been set in the config — the UI defaults to the language set in the user’s browser.
  • High contrast mode:
    • Not checked: The control panel respects the high contrast mode when it’s set on the user’s device, although thorough testing has not been performed to verify the usability of the control panel with this platform setting.

Control settings: The CMS respects the user’s method of control. There are no explicit control modes, and users can switch between various control methods (voice, keyboard, mouse, etc.) without updating their preferences.

A.3.7.1 Preview (Minimum) Passed

Craft CMS supports content previewing via the Live Preview functionality and provides links to view front-end templates.

The Live Preview functionality loads content into an iframe adjacent to the authoring view. Links to view content are opened in a new tab in the current user agent. Both rely on the user agent to give authors a realistic impression of how end users will experience the content.

A.3.7.2 Preview (Enhanced) Not applicable

Not in scope.

A.4.1.1 Content Changes Reversible (Minimum) Failed

Built-in features of the CMS help authors easily reverse changes to some content and settings.

Content

Entries support versioning, which allows content authors to view and restore entries from previous versions (i.e., “Revisions”). 

In addition, when authors edit an entry, the CMS creates a provisional draft and autosaves changes. If the author wants to revert these changes to the most recently saved version, a UI control allows the author to discard unsaved changes easily.

While they do not support versioning, categories also support provisional drafts, so content authors can easily discard unsaved changes.

Assets, tags, and globals do not support either versioning or provisional drafts, so changes must be reversed manually.

Settings

Authors can update and reverse changes to user interface settings from the Account page.

A.4.1.2 Settings Change Confirmation Passed

All user preference changes can be undone by revisiting the Preferences page and adjusting the settings.

A.4.1.3 Content Changes Reversible (Enhanced) Not applicable

Not in scope.

A.4.2.1 Describe Accessibility Features Failed

Not all functionality used to meet Part A has been documented.

Documented:

Undocumented:

  • Keyboard-accessible methods for reordering content (A.3.1.1)
  • Skip link (A.3.1.3)
  • Page landmarks for navigation by SR users (A.3.1.3)
  • How platform settings affect the control panel (A.3.6.3)
  • Text search (A.3.5.1)
  • Live Preview (A.3.7.1)
  • Accessibility preferences
    • Extending session limits (A.3.2.2)
    • Adjusting notification duration (A.3.2.2)
    • Preferences are saved between sessions (A.3.6.2)
A.4.2.2 Document All Features Failed

Most control panel functionality has been documented. Features and changes in functionality may cause gaps in coverage. Craft CMS documentation does not currently conform to WCAG 2.2 Level AA.

B.1.1.1 Content Auto-Generation After Authoring Sessions Passed

Craft CMS only edits content during an active authoring session.

B.1.1.2 Content Auto-Generation During Authoring Sessions (WCAG) Failed

HTML output is highly customizable by developers via Twig templating; web content and markup are never fully and automatically generated without room for intervention or remediation. However, some Twig code outputs complete HTML markup when used in templates.

Automatically-generated markup is accessible in the following scenarios:

  • Pass: Outputting an image with `asset.getImg()` generates accessible markup on the front end when the image has a meaningful Alternative Text value.
  • Pass: Link markup for all link types when outputting a complete anchor tag (i.e., using {{ entry.myLinkFieldHandle.link}}), so long as the element is titled appropriately.

Markup is not accessible in the following scenario:

  • Fail: An asset’s Alternative Text cannot be customized for different contexts. Likewise, assets cannot be marked as decorative based on context; however, developers can adjust asset markup for particular templates to account for instances where they are decorative.

Craft CMS does not perform automated checking. However, developers can prompt authors for more information by requiring fields that result in accessible content.

For example, the native Alternative Text field is not required by default, but developers can make it required when building the asset field layout.

To ensure users enter alternative text when uploading assets via a custom field, the “Validate related assets” setting should be enabled. This prevents the source element from being saved when validation errors exist on the related assets.

B.1.2.1 Restructuring and Recoding Transformations Not applicable

The authoring tool does not incorporate any restructuring or recoding transformations.

B.1.2.2 Copy-Paste Inside Authoring Tool (WCAG) Not applicable

Rich text fields are only available in Craft CMS when installing additional plugins. In a basic install, because field inputs don’t support rich text, copy-paste from other sources will strip the formatting.

B.1.2.3 Optimizations Preserve Accessibility Not applicable

Craft CMS doesn’t perform any optimizations or transformations that would affect accessibility.

B.1.2.4 Text Alternatives for Non-Text Content are Preserved Not applicable

Craft CMS doesn’t perform any recoding transformations involving non-text content.

B.2.1.1 Ensure that accessible content production is possible. Failed

Accessible content production in the CMS relies on how developers have configured it in terms of content modeling, front-end templating, etc.

However, some issues may affect accessible content production:

  • Authors cannot mark images as decorative or modify their alternative text for different contexts
B.2.2.1 Accessible Option Prominence (WCAG) Not applicable

There are no built-in authoring actions that result in a predictable authoring outcome, as these are dependent on the content model and templates defined by the developer.

B.2.2.2 Setting Accessibility Properties (WCAG) Not applicable

Craft CMS doesn’t provide authors with a method of editing web content properties.

B.2.3.1 Alternative Content is Editable (WCAG) Failed

Craft CMS supports editing text alternatives everywhere images and videos can be added. However, authors cannot mark images as decorative or change the alternative text in different contexts.

B.2.3.2 Automating Repair of Text Alternatives Passed

Craft CMS doesn’t try to automate the repair of text alternatives. If an image doesn’t have a text alternative, the alt attribute is not applied so that automated checks can catch the issue.

B.2.4.1 Accessible Template Options (WCAG) Not applicable

The authoring tool doesn’t provide any templates. Craft CMS makes no assumptions about the site’s front-end markup, and developers have complete control over all templates and markup.

B.2.4.2 Identify Template Accessibility Not applicable

The authoring tool doesn’t provide any templates.

B.2.4.3 Author-Created Templates Not applicable

Authors cannot create new templates.

B.2.5.1 Accessible Pre-Authored Content Options Not applicable

Craft CMS does not provide pre-authored content.

B.2.5.2 Identify Pre-Authored Content Accessibility Not applicable

Craft CMS does not provide pre-authored content.

B.3.1.1 Checking Assistance (WCAG) Failed

Craft CMS does not include any integrated accessibility checking.

However, because custom fields and the resulting templates are highly customizable, developers can provide basic checking assistance by

  1. Marking fields as required when they contribute to the accessibility of authored content
  2. Writing instructions that guide authors in creating accessible content
B.3.1.2 Help Authors Decide Not applicable

Craft CMS does not provide checks for web content accessibility problems.

B.3.1.3 Help Authors Locate Not applicable

Craft CMS does not provide checks for web content accessibility problems.

B.3.1.4 Status Report Not applicable

Craft CMS does not provide checks for web content accessibility problems.

B.3.1.5 Programmatic Association of Results Not applicable

Craft CMS does not provide checks for web content accessibility problems.

B.3.2.1 Repair Assistance (WCAG) Not applicable

Craft CMS does not provide checks for web content accessibility problems.

B.4.1.1 Features Active by Default Failed

Craft CMS does not include any accessibility checkers.

The only accessible content support feature we’ve identified is the native Alternative Text field and its validation.

Developers can enable accessible content support for images by including the native Alternative Text field in image asset field layouts and:

  • Making Alternative Text a required field
  • Enabling the “Validate related assets” lightswitch to ensure that users add Alternative Text when adding images via a relational field

However, these are not active by default and rely on developer setup.

B.4.1.2 Option to Reactivate Features Failed

The feature identified in B.4.1.1 can only be activated by a developer. Authors cannot activate or deactivate this feature themselves.

B.4.1.3 Feature Deactivation Warning Not applicable
B.4.1.4 Feature Prominence Not applicable

Craft CMS does not include features for checking invalid markup, syntax errors, spelling errors, or grammar errors.

B.4.2.1 Model Practice (WCAG) Failed

Documentation does not consistently demonstrate accessible authoring practices.

B.4.2.2 Feature Instructions Failed

There is no documentation about the native Alternative Text field that is geared toward content authors.