Skip to main content
digital accessibility compliance for state and local government
Scan a site

Accessibility Conformance Testing (ACT) rules

Every BarrierOps report says how many rules of its primary testing engine implement an ACT rule from the World Wide Web Consortium (W3C), and links here for the list. This is that list: 26 rules, with the Web Content Accessibility Guidelines (WCAG) success criteria each one maps to, its default impact and whether a scan runs it.

An ACT rule is a test procedure the W3C publishes, written to the ACT Rules Format 1.1. It states exactly what to check and what counts as a failure, so that different testing tools check the same thing the same way. The W3C keeps the full list of ACT rules.

The list was generated from version 4.13.0 of our primary testing engine, the first engine named in the footer of this page. 24 of the 26 rules run in a scan.

The rules

A scan runs only the engine’s rules for WCAG 2.0 and 2.1 success criteria at Level A and AA. The 2 rules outside that set stay on this list, marked “No” under “Runs in a scan”, because every report counts the whole list.

26 rules that implement a W3C ACT rule, in rule id order. 24 run in a scan.
RuleWhat it checksWCAG success criteriaACT rulesDefault impactRuns in a scan
area-altActive <area> elements must have alternative text
  • 2.4.4 Link Purpose (In Context) (Level A)
  • 4.1.2 Name, Role, Value (Level A)
CriticalYes
aria-command-nameARIA commands must have an accessible name
4.1.2 Name, Role, Value (Level A)
SeriousYes
aria-input-field-nameARIA input fields must have an accessible name
4.1.2 Name, Role, Value (Level A)
SeriousYes
aria-tab-nameARIA tab nodes must have an accessible name
4.1.2 Name, Role, Value (Level A)
None namedSeriousYes
aria-toggle-field-nameARIA toggle fields must have an accessible name
4.1.2 Name, Role, Value (Level A)
SeriousYes
autocomplete-validautocomplete attribute must be used correctly
1.3.5 Identify Input Purpose (Level AA)
SeriousYes
avoid-inline-spacingInline text spacing must be adjustable with custom stylesheets
1.4.12 Text Spacing (Level AA)
SeriousYes
button-nameButtons must have discernible text
4.1.2 Name, Role, Value (Level A)
CriticalYes
color-contrastElements must meet minimum color contrast ratio thresholds
1.4.3 Contrast (Minimum) (Level AA)
SeriousYes
color-contrast-enhancedElements must meet enhanced color contrast ratio thresholds
1.4.6
SeriousNo
document-titleDocuments must have <title> element to aid in navigation
2.4.2 Page Titled (Level A)
SeriousYes
html-has-lang<html> element must have a lang attribute
3.1.1 Language of Page (Level A)
SeriousYes
html-lang-valid<html> element must have a valid value for the lang attribute
3.1.1 Language of Page (Level A)
SeriousYes
html-xml-lang-mismatchHTML elements with lang and xml:lang must have the same base language
3.1.1 Language of Page (Level A)
ModerateYes
image-altImages must have alternative text
1.1.1 Non-text Content (Level A)
CriticalYes
input-button-nameInput buttons must have discernible text
4.1.2 Name, Role, Value (Level A)
CriticalYes
input-image-altImage buttons must have alternative text
  • 1.1.1 Non-text Content (Level A)
  • 4.1.2 Name, Role, Value (Level A)
CriticalYes
labelForm elements must have labels
4.1.2 Name, Role, Value (Level A)
CriticalYes
link-nameLinks must have discernible text
  • 2.4.4 Link Purpose (In Context) (Level A)
  • 4.1.2 Name, Role, Value (Level A)
SeriousYes
meta-viewportZooming and scaling must not be disabled
1.4.4 Resize text (Level AA)
ModerateYes
no-autoplay-audio<video> or <audio> elements must not play automatically
1.4.2 Audio Control (Level A)
ModerateYes
presentation-role-conflictElements marked as presentational should be consistently ignoredNoneMinorNo
role-img-alt[role="img"] and [role="image"] elements must have alternative text
1.1.1 Non-text Content (Level A)
SeriousYes
select-nameSelect element must have an accessible name
4.1.2 Name, Role, Value (Level A)
CriticalYes
svg-img-alt<svg> elements with an img or image role must have alternative text
1.1.1 Non-text Content (Level A)
SeriousYes
valid-langlang attribute must have a valid value
3.1.2 Language of Parts (Level AA)
SeriousYes

The engine marks 1 rule as implementing an ACT rule without naming which one, so its row says “None named” rather than a guessed id.

What this list does not tell you

When the rules for a success criterion find nothing on a page, a report says “No failures detected by automated rules”. It never says the criterion is met.

These are not the only rules a scan runs. The engine has other rules for WCAG 2.0 and 2.1 at Level A and AA that do not implement an ACT rule, and a scan runs those as well.

Automated testing detects roughly 30–40% of real barriers. Manual testing covers the rest.

How this list is kept current

Nobody types this list. Every change to our code regenerates it from the engine, and the check fails if the list on this page no longer matches the engine a scan runs.

Every finding records the engine and the version that produced it, and findings from different engine versions are never compared without saying so.

https://barrierops.com/standards/act-rules