Accessibility
The CMS checks content for accessibility and spelling before it goes live. Results show in an Accessibility panel in the editor's right sidebar. You can also set the CMS to stop a save, stage, or publish until the problems are fixed.
There are three kinds of check:
All checks run on the hosted OpenADA service. Nothing runs on your CMS server.
Setup
Accessibility is set up under Admin → Providers. If no accessibility provider is connected, the Accessibility panel shows a "connect the provider" message, and the Accessibility_Scan object is left out of the API and MCP.
1. Accessibility (axe-core)
This connection is required for WCAG audits and PDF checks.
Settings:
2. LanguageTool (optional)
Adds spelling and grammar checks next to the WCAG audit. It has the same OpenADA fields (base URL, API key, private) plus:
LanguageTool works on its own. If only LanguageTool is connected, the Accessibility panel still appears and shows only the Spelling & Grammar section.
3. Adobe PDF Services (optional)
Turns on the Remediate PDF button for PDFs. In the Adobe Developer Console, create a project, add the PDF Services API with OAuth Server-to-Server credentials, and then enter the Client ID and Client Secret here.
HTML files, STML pages, and Calendar entries
When checks run
When you open the editor, the panel shows the most recent verified scan for the current version of the content.
A new scan runs whenever you click Save, Stage, or Publish:
- The CMS scans the content as it is in the editor, including unsaved changes.
- The WCAG audit and the spelling check both run.
- If blocking is on and blocking issues are found, the save stops and a warning appears in the panel.
- If the content passes, the scan is saved and attached to the save request. Once the save succeeds, that scan is marked verified for the saved version.
What gets scanned depends on the editor:
In partial mode, rules that only make sense for a complete page are skipped. A content fragment isn't flagged for a missing <title>, lang attribute, main landmark, skip link, h1, viewport meta, and so on.
.tpl files have no Accessibility panel because they mix code with markup.
ADA Score
The panel shows a score from 0 to 100. Each violation takes points off 100, based on how serious it is:
Under the score, you'll see:
- A count of violations by impact level.
- A list of violations. Click one to scroll to and highlight the affected element in the editor or preview.
- A Spelling & Grammar section, if LanguageTool is connected.
Save blocking
When blocking is turned on, the warning reads:
3 accessibility issues and 1 spelling/grammar issue found. Save, Stage, and Publish are disabled until all ADA and spelling issues are resolved.
Only issues at or above the configured threshold count toward blocking. If a check can't finish, for example because OpenADA is unreachable, saving is also blocked until it can.
PDF files
PDFs have no HTML for a WCAG audit to read. Instead, they're validated against PDF/UA-1, the ISO standard for accessible PDFs.
When checks run
- On upload or replace: the PDF is checked immediately.
- When you open the file: the panel loads first, shows Checking… large PDFs can take up to a minute, and then shows the result.
- Results are saved for each file version. Opening an unchanged PDF again reuses the saved result instead of checking again.
PDFs up to 10 MB can be checked.
Results
Remediate PDF
The Remediate PDF button appears when all of these are true:
- Adobe PDF Services is connected.
- The PDF has already been checked.
- You have Modify (Editor or Admin) permission on the file.
When you click it:
- The PDF is sent to Adobe's Autotag PDF service to add accessibility tags. Large PDFs are split into parts automatically and put back together afterward.
- The tagged file is saved as a new staged draft version. The published file isn't changed.
- The PDF is checked again, and the page reloads to show the new result.
- Review the draft, then use Publish to make it live.
Remediating a large file can take several minutes. Keep the page open until it reloads.
Scan history
Every scan is saved as an Accessibility_Scan record with:
A new record is written only when the results change. Scanning the same content again reuses the existing record.