ACT Rule Descriptions

The kogiQA checkAccessibility function verifies the following rules:

WCAG 2.0 Level A & AA Rules

Rule IDDescriptionImpactTagsIssue TypeACT Rules
area-altEnsure <area> elements of image maps have alternative textCriticalcat.text-alternatives, wcag2a, wcag244, wcag412, section508, section508.22.a, TTv5, TT6.a, EN-301-549, EN-9.2.4.4, EN-9.4.1.2, ACT, RGAAv4, RGAA-1.1.2failure, needs reviewc487ae
aria-allowed-attrEnsure an element's role supports its ARIA attributesCriticalcat.aria, wcag2a, wcag412, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-7.1.1failure, needs review5c01ea
aria-braille-equivalentEnsure aria-braillelabel and aria-brailleroledescription have a non-braille equivalentSeriouscat.aria, wcag2a, wcag412, EN-301-549, EN-9.4.1.2needs review
aria-command-nameEnsure every ARIA button, link and menuitem has an accessible nameSeriouscat.aria, wcag2a, wcag412, TTv5, TT6.a, EN-301-549, EN-9.4.1.2, ACT, RGAAv4, RGAA-11.9.1failure, needs review97a4e1
aria-conditional-attrEnsure ARIA attributes are used as described in the specification of the element's roleSeriouscat.aria, wcag2a, wcag412, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-7.1.1failure5c01ea
aria-deprecated-roleEnsure elements do not use deprecated rolesMinorcat.aria, wcag2a, wcag412, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-7.1.1failure674b10
aria-hidden-bodyEnsure aria-hidden="true" is not present on the document body.Criticalcat.aria, wcag2a, wcag131, wcag412, EN-301-549, EN-9.1.3.1, EN-9.4.1.2, RGAAv4, RGAA-10.8.1failure
aria-hidden-focusEnsure aria-hidden elements are not focusable nor contain focusable elementsSeriouscat.name-role-value, wcag2a, wcag412, TTv5, TT6.a, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-10.8.1failure, needs review6cfa84
aria-input-field-nameEnsure every ARIA input field has an accessible nameSeriouscat.aria, wcag2a, wcag412, TTv5, TT5.c, EN-301-549, EN-9.4.1.2, ACT, RGAAv4, RGAA-11.1.1failure, needs reviewe086e5
aria-meter-nameEnsure every ARIA meter node has an accessible nameSeriouscat.aria, wcag2a, wcag111, EN-301-549, EN-9.1.1.1, RGAAv4, RGAA-11.1.1failure, needs review
aria-progressbar-nameEnsure every ARIA progressbar node has an accessible nameSeriouscat.aria, wcag2a, wcag111, EN-301-549, EN-9.1.1.1, RGAAv4, RGAA-11.1.1failure, needs review
aria-prohibited-attrEnsure ARIA attributes are not prohibited for an element's roleSeriouscat.aria, wcag2a, wcag412, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-7.1.1failure, needs review5c01ea
aria-required-attrEnsure elements with ARIA roles have all required ARIA attributesCriticalcat.aria, wcag2a, wcag412, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-7.1.1failure4e8ab6
aria-required-childrenEnsure elements with an ARIA role that require child roles contain themCriticalcat.aria, wcag2a, wcag131, EN-301-549, EN-9.1.3.1, RGAAv4, RGAA-9.3.1failure, needs reviewbc4a75, ff89c9
aria-required-parentEnsure elements with an ARIA role that require parent roles are contained by themCriticalcat.aria, wcag2a, wcag131, EN-301-549, EN-9.1.3.1, RGAAv4, RGAA-9.3.1failureff89c9
aria-rolesEnsure all elements with a role attribute use a valid valueCriticalcat.aria, wcag2a, wcag412, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-7.1.1failure674b10
aria-toggle-field-nameEnsure every ARIA toggle field has an accessible nameSeriouscat.aria, wcag2a, wcag412, TTv5, TT5.c, EN-301-549, EN-9.4.1.2, ACT, RGAAv4, RGAA-7.1.1failure, needs reviewe086e5
aria-tooltip-nameEnsure every ARIA tooltip node has an accessible nameSeriouscat.aria, wcag2a, wcag412, EN-301-549, EN-9.4.1.2failure, needs review
aria-valid-attr-valueEnsure all ARIA attributes have valid valuesCriticalcat.aria, wcag2a, wcag412, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-7.1.1failure, needs review6a7281
aria-valid-attrEnsure attributes that begin with aria- are valid ARIA attributesCriticalcat.aria, wcag2a, wcag412, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-7.1.1failure5f99a7
blinkEnsure <blink> elements are not usedSeriouscat.time-and-media, wcag2a, wcag222, section508, section508.22.j, TTv5, TT2.b, EN-301-549, EN-9.2.2.2, RGAAv4, RGAA-13.8.1failure
button-nameEnsure buttons have discernible textCriticalcat.name-role-value, wcag2a, wcag412, section508, section508.22.a, TTv5, TT6.a, EN-301-549, EN-9.4.1.2, ACT, RGAAv4, RGAA-11.9.1failure, needs review97a4e1, m6b1q3
bypassEnsure each page has at least one mechanism for a user to bypass navigation and jump straight to the contentSeriouscat.keyboard, wcag2a, wcag241, section508, section508.22.o, TTv5, TT9.a, EN-301-549, EN-9.2.4.1, RGAAv4, RGAA-12.7.1needs reviewcf77f2, 047fe0, b40fd1, 3e12e1, ye5d6e
color-contrastEnsure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholdsSeriouscat.color, wcag2aa, wcag143, TTv5, TT13.c, EN-301-549, EN-9.1.4.3, ACT, RGAAv4, RGAA-3.2.1failure, needs reviewafw4f7, 09o5cg
definition-listEnsure <dl> elements are structured correctlySeriouscat.structure, wcag2a, wcag131, EN-301-549, EN-9.1.3.1, RGAAv4, RGAA-9.3.3failure
dlitemEnsure <dt> and <dd> elements are contained by a <dl>Seriouscat.structure, wcag2a, wcag131, EN-301-549, EN-9.1.3.1, RGAAv4, RGAA-9.3.3failure
document-titleEnsure each HTML document contains a non-empty <title> elementSeriouscat.text-alternatives, wcag2a, wcag242, TTv5, TT12.a, EN-301-549, EN-9.2.4.2, ACT, RGAAv4, RGAA-8.5.1failure2779a5
duplicate-id-ariaEnsure every id attribute value used in ARIA and in labels is uniqueCriticalcat.parsing, wcag2a, wcag412, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-8.2.1needs review3ea0c8
form-field-multiple-labelsEnsure form field does not have multiple label elementsModeratecat.forms, wcag2a, wcag332, TTv5, TT5.c, EN-301-549, EN-9.3.3.2, RGAAv4, RGAA-11.2.1needs review
frame-focusable-contentEnsure <frame> and <iframe> elements with focusable content do not have tabindex=-1Seriouscat.keyboard, wcag2a, wcag211, TTv5, TT4.a, EN-301-549, EN-9.2.1.1, RGAAv4, RGAA-7.3.2failure, needs reviewakn7bn
frame-title-uniqueEnsure <iframe> and <frame> elements contain a unique title attributeSeriouscat.text-alternatives, wcag2a, wcag412, TTv5, TT12.d, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-2.2.1needs review4b1c6c
frame-titleEnsure <iframe> and <frame> elements have an accessible nameSeriouscat.text-alternatives, wcag2a, wcag412, section508, section508.22.i, TTv5, TT12.d, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-2.1.1failure, needs reviewcae760
html-has-langEnsure every HTML document has a lang attributeSeriouscat.language, wcag2a, wcag311, TTv5, TT11.a, EN-301-549, EN-9.3.1.1, ACT, RGAAv4, RGAA-8.3.1failureb5c3f8
html-lang-validEnsure the lang attribute of the <html> element has a valid valueSeriouscat.language, wcag2a, wcag311, TTv5, TT11.a, EN-301-549, EN-9.3.1.1, ACT, RGAAv4, RGAA-8.4.1failurebf051a
html-xml-lang-mismatchEnsure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the pageModeratecat.language, wcag2a, wcag311, EN-301-549, EN-9.3.1.1, ACT, RGAAv4, RGAA-8.3.1failure5b7ae0
image-altEnsure <img> elements have alternative text or a role of none or presentationCriticalcat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, TTv5, TT7.a, TT7.b, EN-301-549, EN-9.1.1.1, ACT, RGAAv4, RGAA-1.1.1failure, needs review23a2a8
input-button-nameEnsure input buttons have discernible textCriticalcat.name-role-value, wcag2a, wcag412, section508, section508.22.a, TTv5, TT5.c, EN-301-549, EN-9.4.1.2, ACT, RGAAv4, RGAA-11.9.1failure, needs review97a4e1
input-image-altEnsure <input type="image"> elements have alternative textCriticalcat.text-alternatives, wcag2a, wcag111, wcag412, section508, section508.22.a, TTv5, TT7.a, EN-301-549, EN-9.1.1.1, EN-9.4.1.2, ACT, RGAAv4, RGAA-1.1.3failure, needs review59796f
labelEnsure every form element has a labelCriticalcat.forms, wcag2a, wcag412, section508, section508.22.n, TTv5, TT5.c, EN-301-549, EN-9.4.1.2, ACT, RGAAv4, RGAA-11.1.1failure, needs reviewe086e5
link-in-text-blockEnsure links are distinguished from surrounding text in a way that does not rely on colorSeriouscat.color, wcag2a, wcag141, TTv5, TT13.a, EN-301-549, EN-9.1.4.1, RGAAv4, RGAA-10.6.1failure, needs review
link-nameEnsure links have discernible textSeriouscat.name-role-value, wcag2a, wcag244, wcag412, section508, section508.22.a, TTv5, TT6.a, EN-301-549, EN-9.2.4.4, EN-9.4.1.2, ACT, RGAAv4, RGAA-6.2.1failure, needs reviewc487ae
listEnsure that lists are structured correctlySeriouscat.structure, wcag2a, wcag131, EN-301-549, EN-9.1.3.1, RGAAv4, RGAA-9.3.1failure
listitemEnsure <li> elements are used semanticallySeriouscat.structure, wcag2a, wcag131, EN-301-549, EN-9.1.3.1, RGAAv4, RGAA-9.3.1failure
marqueeEnsure <marquee> elements are not usedSeriouscat.parsing, wcag2a, wcag222, TTv5, TT2.b, EN-301-549, EN-9.2.2.2, RGAAv4, RGAA-13.8.1failure
meta-refreshEnsure <meta http-equiv="refresh"> is not used for delayed refreshCriticalcat.time-and-media, wcag2a, wcag221, TTv5, TT8.a, EN-301-549, EN-9.2.2.1, RGAAv4, RGAA-13.1.2failurebc659a, bisz58
meta-viewportEnsure <meta name="viewport"> does not disable text scaling and zoomingModeratecat.sensory-and-visual-cues, wcag2aa, wcag144, EN-301-549, EN-9.1.4.4, ACT, RGAAv4, RGAA-10.4.2failureb4f0c3
nested-interactiveEnsure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologiesSeriouscat.keyboard, wcag2a, wcag412, TTv5, TT6.a, EN-301-549, EN-9.4.1.2, RGAAv4, RGAA-7.1.1failure, needs review307n5z
no-autoplay-audioEnsure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audioModeratecat.time-and-media, wcag2a, wcag142, TTv5, TT2.a, EN-301-549, EN-9.1.4.2, ACT, RGAAv4, RGAA-4.10.1needs review80f0bf
object-altEnsure <object> elements have alternative textSeriouscat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, EN-301-549, EN-9.1.1.1, RGAAv4, RGAA-1.1.6failure, needs review8fc3b6
role-img-altEnsure [role="img"] elements have alternative textSeriouscat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, TTv5, TT7.a, EN-301-549, EN-9.1.1.1, ACT, RGAAv4, RGAA-1.1.1failure, needs review23a2a8
scrollable-region-focusableEnsure elements that have scrollable content are accessible by keyboardSeriouscat.keyboard, wcag2a, wcag211, wcag213, TTv5, TT4.a, EN-301-549, EN-9.2.1.1, EN-9.2.1.3, RGAAv4, RGAA-7.3.2failure0ssw9k
select-nameEnsure select element has an accessible nameCriticalcat.forms, wcag2a, wcag412, section508, section508.22.n, TTv5, TT5.c, EN-301-549, EN-9.4.1.2, ACT, RGAAv4, RGAA-11.1.1failure, needs reviewe086e5
server-side-image-mapEnsure that server-side image maps are not usedMinorcat.text-alternatives, wcag2a, wcag211, section508, section508.22.f, TTv5, TT4.a, EN-301-549, EN-9.2.1.1, RGAAv4, RGAA-1.1.4needs review
summary-nameEnsure summary elements have discernible textSeriouscat.name-role-value, wcag2a, wcag412, section508, section508.22.a, TTv5, TT6.a, EN-301-549, EN-9.4.1.2failure, needs review
svg-img-altEnsure <svg> elements with an img, graphics-document or graphics-symbol role have accessible textSeriouscat.text-alternatives, wcag2a, wcag111, section508, section508.22.a, TTv5, TT7.a, EN-301-549, EN-9.1.1.1, ACT, RGAAv4, RGAA-1.1.5failure, needs review7d6734
td-headers-attrEnsure that each cell in a table that uses the headers attribute refers only to other <th> elements in that tableSeriouscat.tables, wcag2a, wcag131, section508, section508.22.g, TTv5, TT14.b, EN-301-549, EN-9.1.3.1, RGAAv4, RGAA-5.7.4failure, needs reviewa25f45
th-has-data-cellsEnsure that <th> elements and elements with role=columnheader/rowheader have data cells they describeSeriouscat.tables, wcag2a, wcag131, section508, section508.22.g, TTv5, TT14.b, EN-301-549, EN-9.1.3.1, RGAAv4, RGAA-5.7.1failure, needs reviewd0f69e
valid-langEnsure lang attributes have valid valuesSeriouscat.language, wcag2aa, wcag312, TTv5, TT11.b, EN-301-549, EN-9.3.1.2, ACT, RGAAv4, RGAA-8.8.1failurede46e4
video-captionEnsure <video> elements have captionsCriticalcat.text-alternatives, wcag2a, wcag122, section508, section508.22.a, TTv5, TT17.a, EN-301-549, EN-9.1.2.2, RGAAv4, RGAA-4.3.1needs revieweac66b

WCAG 2.1 Level A & AA Rules

Rule IDDescriptionImpactTagsIssue TypeACT Rules
autocomplete-validEnsure the autocomplete attribute is correct and suitable for the form fieldSeriouscat.forms, wcag21aa, wcag135, EN-301-549, EN-9.1.3.5, ACT, RGAAv4, RGAA-11.13.1failure, needs review73f2c2
avoid-inline-spacingEnsure that text spacing set through style attributes can be adjusted with custom stylesheetsSeriouscat.structure, wcag21aa, wcag1412, EN-301-549, EN-9.1.4.12, ACTfailure24afc2, 9e45ec, 78fd32

WCAG 2.2 Level A & AA Rules

These rules are disabled by default, until WCAG 2.2 is more widely adopted and required.

Rule IDDescriptionImpactTagsIssue TypeACT Rules
target-sizeEnsure touch targets have sufficient size and spaceSeriouscat.sensory-and-visual-cues, wcag22aa, wcag258failure, needs review

Best Practices Rules

Rules that do not necessarily conform to WCAG success criterion but are industry accepted practices that improve the user experience.

Rule IDDescriptionImpactTagsIssue TypeACT Rules
accesskeysEnsure every accesskey attribute value is uniqueSeriouscat.keyboard, best-practicefailure
aria-allowed-roleEnsure role attribute has an appropriate value for the elementMinorcat.aria, best-practicefailure, needs review
aria-dialog-nameEnsure every ARIA dialog and alertdialog node has an accessible nameSeriouscat.aria, best-practicefailure, needs review
aria-textEnsure role="text" is used on elements with no focusable descendantsSeriouscat.aria, best-practicefailure, needs review
aria-treeitem-nameEnsure every ARIA treeitem node has an accessible nameSeriouscat.aria, best-practicefailure, needs review
empty-headingEnsure headings have discernible textMinorcat.name-role-value, best-practicefailure, needs reviewffd0e9
empty-table-headerEnsure table headers have discernible textMinorcat.name-role-value, best-practicefailure, needs review
frame-testedEnsure <iframe> and <frame> elements contain the axe-core scriptCriticalcat.structure, best-practice, review-itemfailure, needs review
heading-orderEnsure the order of headings is semantically correctModeratecat.semantics, best-practicefailure, needs review
image-redundant-altEnsure image alternative is not repeated as textMinorcat.text-alternatives, best-practicefailure
label-title-onlyEnsure that every form element has a visible label and is not solely labeled using hidden labels, or the title or aria-describedby attributesSeriouscat.forms, best-practicefailure
landmark-banner-is-top-levelEnsure the banner landmark is at top levelModeratecat.semantics, best-practicefailure
landmark-complementary-is-top-levelEnsure the complementary landmark or aside is at top levelModeratecat.semantics, best-practicefailure
landmark-contentinfo-is-top-levelEnsure the contentinfo landmark is at top levelModeratecat.semantics, best-practicefailure
landmark-main-is-top-levelEnsure the main landmark is at top levelModeratecat.semantics, best-practicefailure
landmark-no-duplicate-bannerEnsure the document has at most one banner landmarkModeratecat.semantics, best-practicefailure
landmark-no-duplicate-contentinfoEnsure the document has at most one contentinfo landmarkModeratecat.semantics, best-practicefailure
landmark-no-duplicate-mainEnsure the document has at most one main landmarkModeratecat.semantics, best-practicefailure
landmark-one-mainEnsure the document has a main landmarkModeratecat.semantics, best-practicefailure
landmark-uniqueEnsure landmarks are uniqueModeratecat.semantics, best-practicefailure
meta-viewport-largeEnsure <meta name="viewport"> can scale a significant amountMinorcat.sensory-and-visual-cues, best-practicefailure
page-has-heading-oneEnsure that the page, or at least one of its frames contains a level-one headingModeratecat.semantics, best-practicefailure
presentation-role-conflictEnsure elements marked as presentational do not have global ARIA or tabindex so that all screen readers ignore themMinorcat.aria, best-practice, ACTfailure46ca7f
regionEnsure all page content is contained by landmarksModeratecat.keyboard, best-practice, RGAAv4, RGAA-9.2.1failure
scope-attr-validEnsure the scope attribute is used correctly on tablesModeratecat.tables, best-practicefailure
skip-linkEnsure all skip links have a focusable targetModeratecat.keyboard, best-practice, RGAAv4, RGAA-12.7.1failure, needs review
tabindexEnsure tabindex attribute values are not greater than 0Seriouscat.keyboard, best-practicefailure
table-duplicate-nameEnsure the <caption> element does not contain the same text as the summary attributeMinorcat.tables, best-practice, RGAAv4, RGAA-5.2.1failure, needs review