The rule catalogue of the accessibility scanner

The catalogue lists every rule Validiscan’s scanner knows, the rules of axe-core and Validiscan’s own checks, with the WCAG criteria each one tests, its impact, its fix tier and whether it runs in a scan.

What the catalogue holds

entries in the catalogue
128
rules of axe-core
105
checks Validiscan wrote
23
run in a scan
102

The catalogue has 128 entries: 105 rules of axe-core, the open-source rule engine by Deque Systems, and 23 checks Validiscan wrote for what axe-core does not test, such as keyboard traps, focus order, target size and cookie banners. Of all entries, 102 run in a scan.

A rule that runs can still miss a failure, and many WCAG success criteria cannot be decided by a rule at all. The criteria matrix shows, for each success criterion, which rules test it and the manual check for it where the checklist has one.

How to read an entry

What the status says

  • runs: the scanner runs the rule on the pages it scans.
  • superseded: one of Validiscan’s own checks covers what the axe-core rule tests, so the scanner switches the axe-core rule off and one element never gives two findings. 11 rules are superseded.
  • not run: axe-core marks the rule experimental or deprecated, or the rule only tests level AAA, which is not part of the WCAG 2.2 AA target. 15 rules are not run.

Impact and fix tier

The impact is the rule’s default severity: critical, serious, moderate or minor. The fix tier says how a failure of the rule is fixed on Shopify, Shopware, WooCommerce and Magento, in the application’s own words:

AUTO
A deterministic recipe changes the theme source.
ASSISTED
An AI-drafted change that the operator reviews before delivery.
MANUAL
Guidance only: a content or design decision someone has to make.

The operator in these words is Validiscan, which reviews every change before it is delivered. AI drafting is off by default and is switched on for a shop only once the merchant has agreed.

The entries

A rule that runs, and that is one of Validiscan’s own checks or is fixed by a recipe of the fix engine, has a page of its own when there is enough to say about it. Its id in the catalogue links to that page.

Go to a rule: all 128 rule ids
The rule catalogue: 128 entries
RuleWhat it checksWCAGImpactTierStatus
vs-accessible-auth Validiscan check Login must not depend on a cognitive test without an alternative 3.3.8 Serious ASSISTED runs
vs-consistent-help Validiscan check Help and contact options must appear in the same place on every page 3.2.6 Moderate ASSISTED runs
vs-documents Validiscan check Linked documents need a manual accessibility review none Minor MANUAL runs
vs-dragging Validiscan check Drag-only controls need a single-pointer alternative 2.5.7 Serious MANUAL runs
vs-focus-obscured Validiscan check Focused elements must not be hidden by sticky headers or overlays 2.4.11 Serious ASSISTED runs
vs-focus-order Validiscan check Focus order must follow the visual order 2.4.3 Moderate MANUAL runs
vs-focus-visible Validiscan check Keyboard focus must be visible 2.4.7 Serious AUTO runs
vs-forms-ecommerce Validiscan check Checkout, address and login fields need labels, autocomplete and linked errors 1.3.5, 3.3.1, 3.3.2 Critical AUTO runs
vs-headings-landmarks Validiscan check Pages need a heading structure, landmarks and a skip link 1.3.1, 2.4.1 Moderate AUTO runs
vs-hover-focus-contrast Validiscan check Buttons and links must keep enough contrast on hover and focus 1.4.3, 1.4.11 Serious ASSISTED runs
vs-keyboard-trap Validiscan check Keyboard focus must never get trapped 2.1.2 Critical MANUAL runs
vs-lang Validiscan check Page language must be declared and match the content 3.1.1 Moderate AUTO runs
vs-live-updates Validiscan check Price, variant, stock and cart updates must be announced 4.1.3 Serious AUTO runs
vs-media Validiscan check Video needs captions, audio needs a transcript, and nothing may autoplay with sound 1.2.1, 1.2.2, 1.4.2 Moderate MANUAL runs
vs-motion Validiscan check Animations should respect the reduced-motion setting best practice Minor AUTO runs
vs-product-images Validiscan check Product images need meaningful alternative text 1.1.1 Serious ASSISTED runs
vs-redundant-entry Validiscan check Customers must not have to re-enter information they already provided 3.3.7 Moderate ASSISTED runs
vs-reflow Validiscan check Content must reflow at 320 CSS pixels without horizontal scrolling 1.4.10 Serious ASSISTED runs
vs-target-size Validiscan check Interactive targets must be at least 24 by 24 CSS pixels 2.5.8 Serious AUTO runs
vs-text-spacing Validiscan check Text must stay readable with increased text spacing 1.4.12 Moderate ASSISTED runs
accesskeys axe-core 4.13.0 accesskey attribute value should be unique best practice Serious ASSISTED runs
area-alt axe-core 4.13.0 Active <area> elements must have alternative text 2.4.4, 4.1.2 Critical ASSISTED runs
aria-allowed-attr axe-core 4.13.0 Elements must only use supported ARIA attributes 4.1.2 Critical ASSISTED runs
aria-allowed-role axe-core 4.13.0 ARIA role should be appropriate for the element best practice Minor ASSISTED runs
aria-braille-equivalent axe-core 4.13.0 aria-braille attributes must have a non-braille equivalent 4.1.2 Serious ASSISTED runs
aria-command-name axe-core 4.13.0 ARIA commands must have an accessible name 4.1.2 Serious ASSISTED runs
aria-conditional-attr axe-core 4.13.0 ARIA attributes must be used as specified for the element's role 4.1.2 Serious ASSISTED runs
aria-deprecated-role axe-core 4.13.0 Deprecated ARIA roles must not be used 4.1.2 Minor ASSISTED runs
aria-dialog-name axe-core 4.13.0 ARIA dialog and alertdialog nodes should have an accessible name best practice Serious ASSISTED runs
aria-hidden-body axe-core 4.13.0 aria-hidden="true" must not be present on the document body 1.3.1, 4.1.2 Critical ASSISTED runs
aria-hidden-focus axe-core 4.13.0 ARIA hidden element must not be focusable or contain focusable elements 4.1.2 Serious ASSISTED runs
aria-input-field-name axe-core 4.13.0 ARIA input fields must have an accessible name 4.1.2 Serious ASSISTED runs
aria-meter-name axe-core 4.13.0 ARIA meter nodes must have an accessible name 1.1.1 Serious ASSISTED runs
aria-progressbar-name axe-core 4.13.0 ARIA progressbar nodes must have an accessible name 1.1.1 Serious ASSISTED runs
aria-prohibited-attr axe-core 4.13.0 Elements must only use permitted ARIA attributes 4.1.2 Serious ASSISTED runs
aria-required-attr axe-core 4.13.0 Required ARIA attributes must be provided 4.1.2 Critical ASSISTED runs
aria-required-children axe-core 4.13.0 Certain ARIA roles must contain particular children 1.3.1 Critical ASSISTED runs
aria-required-parent axe-core 4.13.0 Certain ARIA roles must be contained by particular parents 1.3.1 Critical ASSISTED runs
aria-roledescription axe-core 4.13.0 aria-roledescription must be on elements with a semantic role 4.1.2 Serious ASSISTED not run: deprecated in axe-core
aria-roles axe-core 4.13.0 ARIA roles used must conform to valid values 4.1.2 Critical ASSISTED runs
aria-tab-name axe-core 4.13.0 ARIA tab nodes must have an accessible name 4.1.2 Serious ASSISTED runs
aria-text axe-core 4.13.0 "role=text" should have no focusable descendants best practice Serious ASSISTED runs
aria-toggle-field-name axe-core 4.13.0 ARIA toggle fields must have an accessible name 4.1.2 Serious ASSISTED runs
aria-tooltip-name axe-core 4.13.0 ARIA tooltip nodes must have an accessible name 4.1.2 Serious ASSISTED runs
aria-treeitem-name axe-core 4.13.0 ARIA treeitem nodes should have an accessible name best practice Serious ASSISTED runs
aria-valid-attr axe-core 4.13.0 ARIA attributes must conform to valid names 4.1.2 Critical ASSISTED runs
aria-valid-attr-value axe-core 4.13.0 ARIA attributes must conform to valid values 4.1.2 Critical ASSISTED runs
audio-caption axe-core 4.13.0 <audio> elements must have a captions track 1.2.1 Critical MANUAL not run: deprecated in axe-core
autocomplete-valid axe-core 4.13.0 autocomplete attribute must be used correctly 1.3.5 Serious AUTO superseded by vs-forms-ecommerce
avoid-inline-spacing axe-core 4.13.0 Inline text spacing must be adjustable with custom stylesheets 1.4.12 Serious ASSISTED runs
button-name axe-core 4.13.0 Buttons must have discernible text 4.1.2 Critical ASSISTED runs
bypass axe-core 4.13.0 Page must have means to bypass repeated blocks 2.4.1 Serious AUTO superseded by vs-headings-landmarks
color-contrast axe-core 4.13.0 Elements must meet minimum color contrast ratio thresholds 1.4.3 Serious ASSISTED runs
color-contrast-enhanced axe-core 4.13.0 Elements must meet enhanced color contrast ratio thresholds 1.4.6 Serious ASSISTED not run: tests level AAA only
css-orientation-lock axe-core 4.13.0 CSS Media queries must not lock display orientation 1.3.4 Serious ASSISTED not run: experimental in axe-core
definition-list axe-core 4.13.0 <dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements 1.3.1 Serious ASSISTED runs
dlitem axe-core 4.13.0 <dt> and <dd> elements must be contained by a <dl> 1.3.1 Serious ASSISTED runs
document-title axe-core 4.13.0 Documents must have <title> element to aid in navigation 2.4.2 Serious AUTO runs
duplicate-id axe-core 4.13.0 id attribute value must be unique 4.1.1 Minor ASSISTED not run: deprecated in axe-core
duplicate-id-active axe-core 4.13.0 IDs of active elements must be unique 4.1.1 Serious ASSISTED not run: deprecated in axe-core
duplicate-id-aria axe-core 4.13.0 IDs used in ARIA and labels must be unique 4.1.2 Critical ASSISTED runs
empty-heading axe-core 4.13.0 Headings should not be empty best practice Minor ASSISTED runs
empty-table-header axe-core 4.13.0 Table header text should not be empty best practice Minor ASSISTED runs
focus-order-semantics axe-core 4.13.0 Elements in the focus order should have an appropriate role best practice Minor ASSISTED not run: experimental in axe-core
form-field-multiple-labels axe-core 4.13.0 Form field must not have multiple label elements 3.3.2 Moderate ASSISTED runs
frame-focusable-content axe-core 4.13.0 Frames with focusable content must not have tabindex=-1 2.1.1 Serious ASSISTED runs
frame-tested axe-core 4.13.0 Frames should be tested with axe-core best practice Critical MANUAL runs
frame-title axe-core 4.13.0 Frames must have an accessible name 4.1.2 Serious AUTO runs
frame-title-unique axe-core 4.13.0 Frames must have a unique title attribute 4.1.2 Serious ASSISTED runs
heading-order axe-core 4.13.0 Heading levels should only increase by one best practice Moderate AUTO superseded by vs-headings-landmarks
hidden-content axe-core 4.13.0 Hidden content on the page should be analyzed best practice Minor MANUAL not run: experimental in axe-core
html-has-lang axe-core 4.13.0 <html> element must have a lang attribute 3.1.1 Serious AUTO superseded by vs-lang
html-lang-valid axe-core 4.13.0 <html> element must have a valid value for the lang attribute 3.1.1 Serious AUTO superseded by vs-lang
html-xml-lang-mismatch axe-core 4.13.0 HTML elements with lang and xml:lang must have the same base language 3.1.1 Moderate ASSISTED runs
image-alt axe-core 4.13.0 Images must have alternative text 1.1.1 Critical ASSISTED runs
image-redundant-alt axe-core 4.13.0 Alternative text of images should not be repeated as text best practice Minor ASSISTED runs
input-button-name axe-core 4.13.0 Input buttons must have discernible text 4.1.2 Critical ASSISTED runs
input-image-alt axe-core 4.13.0 Image buttons must have alternative text 1.1.1, 4.1.2 Critical ASSISTED runs
label axe-core 4.13.0 Form elements must have labels 4.1.2 Critical AUTO superseded by vs-forms-ecommerce
label-content-name-mismatch axe-core 4.13.0 Elements must have their visible text as part of their accessible name 2.5.3 Serious ASSISTED not run: experimental in axe-core
label-title-only axe-core 4.13.0 Form elements should have a visible label best practice Serious ASSISTED runs
landmark-banner-is-top-level axe-core 4.13.0 Banner landmark should not be contained in another landmark best practice Moderate ASSISTED runs
landmark-complementary-is-top-level axe-core 4.13.0 Aside should not be contained in another landmark best practice Moderate ASSISTED not run: deprecated in axe-core
landmark-contentinfo-is-top-level axe-core 4.13.0 Contentinfo landmark should not be contained in another landmark best practice Moderate ASSISTED runs
landmark-main-is-top-level axe-core 4.13.0 Main landmark should not be contained in another landmark best practice Moderate ASSISTED runs
landmark-no-duplicate-banner axe-core 4.13.0 Document should not have more than one banner landmark best practice Moderate ASSISTED runs
landmark-no-duplicate-contentinfo axe-core 4.13.0 Document should not have more than one contentinfo landmark best practice Moderate ASSISTED runs
landmark-no-duplicate-main axe-core 4.13.0 Document should not have more than one main landmark best practice Moderate ASSISTED runs
landmark-one-main axe-core 4.13.0 Document should have one main landmark best practice Moderate AUTO superseded by vs-headings-landmarks
landmark-unique axe-core 4.13.0 Landmarks should have a unique role or role/label/title (i.e. accessible name) combination best practice Moderate ASSISTED runs
list axe-core 4.13.0 <ul> and <ol> must only directly contain <li>, <script> or <template> elements 1.3.1 Serious ASSISTED runs
listitem axe-core 4.13.0 <li> elements must be contained in a <ul> or <ol> 1.3.1 Serious ASSISTED runs
marquee axe-core 4.13.0 <marquee> elements are deprecated and must not be used 2.2.2 Serious AUTO runs
meta-refresh axe-core 4.13.0 Delayed refresh under 20 hours must not be used 2.2.1 Critical MANUAL runs
meta-refresh-no-exceptions axe-core 4.13.0 Delayed refresh must not be used 2.2.4, 3.2.5 Minor MANUAL not run: tests level AAA only
meta-viewport axe-core 4.13.0 Zooming and scaling must not be disabled 1.4.4 Moderate AUTO runs
meta-viewport-large axe-core 4.13.0 Users should be able to zoom and scale the text up to 500% best practice Minor AUTO runs
nested-interactive axe-core 4.13.0 Interactive controls must not be nested 4.1.2 Serious MANUAL runs
no-autoplay-audio axe-core 4.13.0 <video> or <audio> elements must not play automatically 1.4.2 Moderate AUTO superseded by vs-media
object-alt axe-core 4.13.0 <object> elements must have alternative text 1.1.1 Serious ASSISTED runs
p-as-heading axe-core 4.13.0 Styled <p> elements must not be used as headings 1.3.1 Serious ASSISTED not run: experimental in axe-core
page-has-heading-one axe-core 4.13.0 Page should contain a level-one heading best practice Moderate AUTO superseded by vs-headings-landmarks
presentation-role-conflict axe-core 4.13.0 Elements marked as presentational should be consistently ignored best practice Minor MANUAL runs
region axe-core 4.13.0 All page content should be contained by landmarks best practice Moderate AUTO runs
role-img-alt axe-core 4.13.0 [role="img"] and [role="image"] elements must have alternative text 1.1.1 Serious ASSISTED runs
scope-attr-valid axe-core 4.13.0 scope attribute should be used correctly best practice Moderate ASSISTED runs
scrollable-region-focusable axe-core 4.13.0 Scrollable region must have keyboard access 2.1.1, 2.1.3 Serious MANUAL runs
select-name axe-core 4.13.0 Select element must have an accessible name 4.1.2 Critical ASSISTED runs
server-side-image-map axe-core 4.13.0 Server-side image maps must not be used 2.1.1 Minor MANUAL runs
summary-name axe-core 4.13.0 Summary elements must have discernible text 4.1.2 Serious ASSISTED runs
svg-img-alt axe-core 4.13.0 <svg> elements with an img or image role must have alternative text 1.1.1 Serious ASSISTED runs
tabindex axe-core 4.13.0 Elements should not have tabindex greater than zero best practice Serious AUTO runs
table-duplicate-name axe-core 4.13.0 Tables should not have the same summary and caption best practice Minor ASSISTED runs
table-fake-caption axe-core 4.13.0 Data or header cells must not be used to give caption to a data table. 1.3.1 Serious ASSISTED not run: experimental in axe-core
target-size axe-core 4.13.0 All touch targets must be 24px large, or leave sufficient space 2.5.8 Serious ASSISTED superseded by vs-target-size
td-has-header axe-core 4.13.0 Non-empty <td> elements in larger <table> must have an associated table header 1.3.1 Critical ASSISTED not run: experimental in axe-core
td-headers-attr axe-core 4.13.0 Table cell headers attributes must refer to other <th> elements in the same table 1.3.1 Serious ASSISTED runs
th-has-data-cells axe-core 4.13.0 Table headers in a data table must refer to data cells 1.3.1 Serious ASSISTED runs
valid-lang axe-core 4.13.0 lang attribute must have a valid value 3.1.2 Serious ASSISTED runs
video-caption axe-core 4.13.0 <video> elements must have captions 1.2.2 Critical MANUAL superseded by vs-media

Start with a free check of your shop.

Send your shop’s address. Validiscan scans it and replies with every failure the scan can prove, with the page and the code.

Request a free check

Or write to info@validiscan.com.

What the free check covers, and what it leaves out
You send
your shop’s address
Pages scanned
up to 15
You get
every failure the scan can prove, with the page and the code
On your shop
public pages only; no login, nothing bought, no forms sent
What it is not
a full audit

Write to Validiscan

For a free check, give the address of your shop and its platform.

Validiscan uses what you send to answer you. Privacy notice