What our automated checks cover
Automated results only. Automated tests find some, not all, accessibility issues, and manual testing is still needed. Not legal advice or a compliance certification.
Glimscope uses the open-source axe-core engine (by Deque Systems; Glimscope is not affiliated with Deque), version 4.14.0. This page was generated on from that version's rule data. On each page scanned, every scan runs the axe rules tagged wcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa, best-practice, except rules axe marks experimental or deprecated. That is 91 of the 105 rules in this axe-core version.
Of the 55 WCAG 2.2 Level A and AA success criteria, 21 are partly checked by at least one automated rule below and 34 are not checked by any rule we run. A rule only checks part of a criterion: passing every automated rule does not mean a criterion is met, and every criterion still needs manual review.
Fix guides for common findings
When a scan flags one of these, these guides walk through how to fix it in common CMS tools. They do not cover every way a criterion can fail. Automated tests find only some accessibility issues; manual testing is still required. Not legal advice.
- How to fix missing alt text — empty or missing image alternative text (related to 1.1.1 Non-text Content)
- How to fix colour contrast issues — text that fails minimum contrast (related to 1.4.3 Contrast (Minimum))
- How to fix missing form labels — inputs without a proper label (related to 3.3.2 Labels or Instructions)
- How to fix empty buttons and missing button names — buttons without an accessible name (related to 4.1.2 Name, Role, Value)
More step-by-step guides: /guides.
Criteria with no automated rule in our scans (34)
None of the rules we run is tagged to these criteria, so our scans report nothing about them. They need manual review by a person.
- 1.2.1 Audio-only and Video-only (Prerecorded) (Level A)
- 1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)
- 1.2.4 Captions (Live) (Level AA)
- 1.2.5 Audio Description (Prerecorded) (Level AA)
- 1.3.2 Meaningful Sequence (Level A)
- 1.3.3 Sensory Characteristics (Level A)
- 1.3.4 Orientation (Level AA)
- 1.4.5 Images of Text (Level AA)
- 1.4.10 Reflow (Level AA)
- 1.4.11 Non-text Contrast (Level AA)
- 1.4.13 Content on Hover or Focus (Level AA)
- 2.1.2 No Keyboard Trap (Level A)
- 2.1.4 Character Key Shortcuts (Level A)
- 2.3.1 Three Flashes or Below Threshold (Level A)
- 2.4.3 Focus Order (Level A)
- 2.4.5 Multiple Ways (Level AA)
- 2.4.6 Headings and Labels (Level AA)
- 2.4.7 Focus Visible (Level AA)
- 2.4.11 Focus Not Obscured (Minimum) (Level AA)
- 2.5.1 Pointer Gestures (Level A)
- 2.5.2 Pointer Cancellation (Level A)
- 2.5.4 Motion Actuation (Level A)
- 2.5.7 Dragging Movements (Level AA)
- 3.2.1 On Focus (Level A)
- 3.2.2 On Input (Level A)
- 3.2.3 Consistent Navigation (Level AA)
- 3.2.4 Consistent Identification (Level AA)
- 3.2.6 Consistent Help (Level A)
- 3.3.1 Error Identification (Level A)
- 3.3.3 Error Suggestion (Level AA)
- 3.3.4 Error Prevention (Legal, Financial, Data) (Level AA)
- 3.3.7 Redundant Entry (Level A)
- 3.3.8 Accessible Authentication (Minimum) (Level AA)
- 4.1.3 Status Messages (Level AA)
Criteria partly checked by automated rules (21)
A rule here checks only some ways a page can fail the criterion. A scan with no issues for these rules does not mean the criterion is met.
1.1.1 Non-text Content (Level A; 7 rules; manual review still needed)
- aria-meter-name: checks that: every ARIA meter node has an accessible name
- aria-progressbar-name: checks that: every ARIA progressbar node has an accessible name
- image-alt: checks that: <img> elements have alternative text or a role of none or presentation
- input-image-alt: checks that: <input type="image"> elements have alternative text
- object-alt: checks that: <object> elements have alternative text
- role-img-alt: checks that: [role="img"] and [role="image"] elements have alternative text
- svg-img-alt: checks that: <svg> elements with an img, image, graphics-document or graphics-symbol role have accessible text
1.2.2 Captions (Prerecorded) (Level A; 1 rule; manual review still needed)
- video-caption: checks that: <video> elements have captions
1.3.1 Info and Relationships (Level A; 9 rules; manual review still needed)
- aria-hidden-body: checks that: aria-hidden="true" is not present on the document body.
- aria-required-children: checks that: elements with an ARIA role that require child roles contain them
- aria-required-parent: checks that: elements with an ARIA role that require parent roles are contained by them
- definition-list: checks that: <dl> elements are structured correctly
- dlitem: checks that: <dt> and <dd> elements are contained by a <dl>
- list: checks that: that lists are structured correctly
- listitem: checks that: <li> elements are used semantically
- td-headers-attr: checks that: that each cell in a table that uses the headers attribute refers only to other <th> elements in that table
- th-has-data-cells: checks that: that <th> elements and elements with role=columnheader/rowheader have data cells they describe
1.3.5 Identify Input Purpose (Level AA; 1 rule; manual review still needed)
- autocomplete-valid: checks that: the autocomplete attribute is correct and suitable for the form field
1.4.1 Use of Color (Level A; 1 rule; manual review still needed)
- link-in-text-block: checks that: links are distinguished from surrounding text in a way that does not rely on color
1.4.2 Audio Control (Level A; 1 rule; manual review still needed)
- no-autoplay-audio: checks that: <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio
1.4.3 Contrast (Minimum) (Level AA; 1 rule; manual review still needed)
- color-contrast: checks that: the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds
1.4.4 Resize Text (Level AA; 1 rule; manual review still needed)
- meta-viewport: checks that: <meta name="viewport"> does not disable text scaling and zooming
1.4.12 Text Spacing (Level AA; 1 rule; manual review still needed)
- avoid-inline-spacing: checks that: that text spacing set through style attributes can be adjusted with custom stylesheets
2.1.1 Keyboard (Level A; 3 rules; manual review still needed)
- frame-focusable-content: checks that: <frame> and <iframe> elements with focusable content do not have tabindex=-1
- scrollable-region-focusable: checks that: elements that have scrollable content are accessible by keyboard in Safari
- server-side-image-map: checks that: that server-side image maps are not used
2.2.1 Timing Adjustable (Level A; 1 rule; manual review still needed)
- meta-refresh: checks that: <meta http-equiv="refresh"> is not used for delayed refresh
2.2.2 Pause, Stop, Hide (Level A; 2 rules; manual review still needed)
2.4.1 Bypass Blocks (Level A; 1 rule; manual review still needed)
- bypass: checks that: each page has at least one mechanism for a user to bypass navigation and jump straight to the content
2.4.2 Page Titled (Level A; 1 rule; manual review still needed)
- document-title: checks that: each HTML document contains a non-empty <title> element
2.4.4 Link Purpose (In Context) (Level A; 2 rules; manual review still needed)
2.5.3 Label in Name (Level A; 1 rule; manual review still needed)
- label-content-name-mismatch: checks that: that elements labelled through their content must have their visible text as part of their accessible name
2.5.8 Target Size (Minimum) (Level AA; 1 rule; manual review still needed)
- target-size: checks that: touch targets have sufficient size and space
3.1.1 Language of Page (Level A; 3 rules; manual review still needed)
- html-has-lang: checks that: every HTML document has a lang attribute
- html-lang-valid: checks that: the lang attribute of the <html> element has a valid value
- html-xml-lang-mismatch: checks that: that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page
3.1.2 Language of Parts (Level AA; 1 rule; manual review still needed)
- valid-lang: checks that: lang attributes have valid values
3.3.2 Labels or Instructions (Level A; 1 rule; manual review still needed)
- form-field-multiple-labels: checks that: form field does not have multiple label elements
4.1.2 Name, Role, Value (Level A; 28 rules; manual review still needed)
- area-alt: checks that: <area> elements of image maps have alternative text
- aria-allowed-attr: checks that: an element's role supports its ARIA attributes
- aria-braille-equivalent: checks that: aria-braillelabel and aria-brailleroledescription have a non-braille equivalent
- aria-command-name: checks that: every ARIA button, link and menuitem has an accessible name
- aria-conditional-attr: checks that: aRIA attributes are used as described in the specification of the element's role
- aria-deprecated-role: checks that: elements do not use deprecated roles
- aria-hidden-body: checks that: aria-hidden="true" is not present on the document body.
- aria-hidden-focus: checks that: aria-hidden elements are not focusable nor contain focusable elements
- aria-input-field-name: checks that: every ARIA input field has an accessible name
- aria-prohibited-attr: checks that: aRIA attributes are not prohibited for an element's role
- aria-required-attr: checks that: elements with ARIA roles have all required ARIA attributes
- aria-roles: checks that: all elements with a role attribute use a valid value
- aria-tab-name: checks that: every ARIA tab node has an accessible name
- aria-toggle-field-name: checks that: every ARIA toggle field has an accessible name
- aria-tooltip-name: checks that: every ARIA tooltip node has an accessible name
- aria-valid-attr: checks that: attributes that begin with aria- are valid ARIA attributes
- aria-valid-attr-value: checks that: all ARIA attributes have valid values
- button-name: checks that: buttons have discernible text
- duplicate-id-aria: checks that: every id attribute value used in ARIA and in labels is unique
- frame-title: checks that: <iframe> and <frame> elements have an accessible name
- frame-title-unique: checks that: <iframe> and <frame> elements contain a unique title attribute
- input-button-name: checks that: input buttons have discernible text
- input-image-alt: checks that: <input type="image"> elements have alternative text
- label: checks that: every form element has a label
- link-name: checks that: links have discernible text
- nested-interactive: checks that: interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies
- select-name: checks that: select element has an accessible name
- summary-name: checks that: summary elements have discernible text
Other criteria (including AAA) tagged on rules we run (1)
These rules run because of another tag in our set; the criteria below are outside WCAG 2.2 Level A/AA (for example Level AAA).
2.1.3
- scrollable-region-focusable: checks that: elements that have scrollable content are accessible by keyboard in Safari
Best-practice rules (27)
These rules are not tied to a WCAG success criterion. They flag common problems that make pages harder to use. They are not WCAG requirements, and passing them is not needed for WCAG conformance.
- accesskeys: checks that: every accesskey attribute value is unique (also tagged best practice)
- aria-allowed-role: checks that: role attribute has an appropriate value for the element (also tagged best practice)
- aria-dialog-name: checks that: every ARIA dialog and alertdialog node has an accessible name (also tagged best practice)
- aria-text: checks that: role="text" is used on elements with no focusable descendants (also tagged best practice)
- aria-treeitem-name: checks that: every ARIA treeitem node has an accessible name (also tagged best practice)
- empty-heading: checks that: headings have discernible text (also tagged best practice)
- empty-table-header: checks that: table headers have discernible text (also tagged best practice)
- frame-tested: checks that: <iframe> and <frame> elements contain the axe-core script (also tagged best practice)
- heading-order: checks that: the order of headings is semantically correct (also tagged best practice)
- image-redundant-alt: checks that: image alternative is not repeated as text (also tagged best practice)
- label-title-only: checks that: that every form element has a visible label and is not solely labeled using hidden labels, or the title or aria-describedby attributes (also tagged best practice)
- landmark-banner-is-top-level: checks that: the banner landmark is at top level (also tagged best practice)
- landmark-contentinfo-is-top-level: checks that: the contentinfo landmark is at top level (also tagged best practice)
- landmark-main-is-top-level: checks that: the main landmark is at top level (also tagged best practice)
- landmark-no-duplicate-banner: checks that: the document has at most one banner landmark (also tagged best practice)
- landmark-no-duplicate-contentinfo: checks that: the document has at most one contentinfo landmark (also tagged best practice)
- landmark-no-duplicate-main: checks that: the document has at most one main landmark (also tagged best practice)
- landmark-one-main: checks that: the document has a main landmark (also tagged best practice)
- landmark-unique: checks that: landmarks are unique (also tagged best practice)
- meta-viewport-large: checks that: <meta name="viewport"> can scale a significant amount (also tagged best practice)
- page-has-heading-one: checks that: that the page, or at least one of its frames contains a level-one heading (also tagged best practice)
- presentation-role-conflict: checks that: elements marked as presentational do not have global ARIA or tabindex so that all screen readers ignore them (also tagged best practice)
- region: checks that: all page content is contained by landmarks (also tagged best practice)
- scope-attr-valid: checks that: the scope attribute is used correctly on tables (also tagged best practice)
- skip-link: checks that: all skip links have a focusable target (also tagged best practice)
- tabindex: checks that: tabindex attribute values are not greater than 0 (also tagged best practice)
- table-duplicate-name: checks that: the <caption> element does not contain the same text as the summary attribute (also tagged best practice)
WCAG criteria list: https://www.w3.org/TR/WCAG22/ (W3C Recommendation, 12 December 2024; checked 14 Oct 2026). WCAG is published by W3C; Glimscope is not endorsed by W3C. axe-core is © Deque Systems, MPL-2.0.