About Our Rules
How Does Automated Testing Work With AudioEye?
The Accessibility Testing SDK lets you use AudioEye's automated testing suite to analyze your site and get details of the issues discovered.
AudioEye's rules are based on specific criteria we expect are present in your site or code. These are defined by WCAG guidelines (currently built to test for WCAG 2.2 conformance, including levels A-AAA) plus best practices we have developed over years of advising clients how to avoid legal claims caused by accessibility errors.
WCAG guidelines are complex and comprised of multiple criteria, some of which cannot be measured accurately by automated testing. If a rule does not detect any issues, it doesn’t mean the WCAG guideline itself is passed. Rather, the details or expected behavior written in each rule are present.
How Rules Work in Different Testing Scenarios
Each individual test in the automated test package is called a rule (RuleCode).
Depending on the type of testing you are conducting -- like if you are using the --component
flag (the only option
during Jest testing) or if you are running a full page scan -- the set of accessibility rules that will be run is
slightly different.
Component vs Full-Page Rules
Not all rules apply to individual html components, and similarly some issues can only be detected during a full page
scan. The following rules will not work when using the --component
flag
Aria_Landmarks_Missing
Heading_H1_Missing
Heading_H1_Multiple
Html_Attribute_Lang_Invalid
Html_Attribute_Lang_Missing
Html_DocType_Missing
Html_MainContent_IsAriaHidden
Html_Page_Title_Missing
Html_Page_Title_WeakName
Html_SkipLink_Missing
Html_SkipLink_Target_Invalid
Html_SkipLink_WeakName
Rules Requiring Browser Context
Certain rules require the rendered style of the page to properly determine if there is an accessibility issue or not. The following rules are using in other AudioEye testing products but they will not work when you are using the SDK, although we're taking steps to address this.
Aria_Label_TextContent_MisMatch
Audio_Captions_Missing
HtmlList_ChildElem_LI_Missing
Html_Name_Redundant
Html_Possible_Heading
Iframe_Name_Missing
Img_Name_ShouldBe_Empty
Link_Name_WeakName
Link_VisualIndicator_Missing
Modal_Usage_Cookie_Detect
Modal_Usage_Detect
NonText_Contrast_TooLow
Text_Contrast_TooLow
Text_LetterSpacing_Important_Detect
Text_LineHeight_Important_Detect
Text_Size_TooSmall
Text_WordSpacing_Important_Detect
Check What Rules Run
To see what tests are being run use the --print-test-list
flag on the CLI when running a scan.
% npx aetest scan --component --print-test-list < component.html
::: START AudioEye SDK CLI :::
Scanning HTML from STDIN
The following rules were run...
Aria_Attribute_Invalid
Aria_DescribedBy_Invalid
Aria_LabelledBy_Invalid
Aria_Role_AttributeRequirement_Missing
Aria_Role_ChildElem_Missing
Aria_Role_Invalid
Aria_Role_ParentElem_Missing
Audio_Controls_Missing
BadTag_Blink_Detect
BadTag_Emphasis_Detect
BadTag_Marquee_Detect
BadTag_Presentational_Detect
BadTag_Spacer_Detect
Button_Name_Missing
Button_Name_WeakName
Combobox_Name_Missing
Element_FocusOrder_MisMatch
FormField_ErrorHandle_WeakName
FormField_Autocomplete_Invalid
FormField_Autocomplete_Missing
FormField_Autocomplete_Multiple
FormField_Name_Missing
FormField_Name_WeakName
Heading_Name_Empty
Heading_Sequence_Wrong
Html_Blockquote_Cite_Invalid
Html_Language_RightToleft_Missing
Html_MetaRefresh_Detect
HtmlList_Definition_ChildElem_Missing
Iframe_Name_Duplicate
Iframe_Name_Redundant
Iframe_Name_WeakName
Img_Name_Missing
Link_AdjacentHref_Redundant
Link_Name_Missing
Listbox_Name_Missing
Svg_Name_Missing
Table_Caption_Missing
Table_Caption_Summary_Redundant
Table_Header_Empty
Table_Header_Missing
Text_Attribute_Lang_Invalid
Text_Language_RightToLeft_Missing
Video_Captions_Missing
Video_Controls_Missing
Total rules run: 45
Audioeye Rules Version: 7.5.2
Found 3 accessibility issues
Img_Name_Missing - count: 3
Full Test Results were output to aetest_output.html
::: END AudioEye SDK CLI :::
Describing a Rule
If you need more details about a specific issue, you can use the describe
command to get more information. For
instance, for the result Img_Name_Missing
you can find more information by running:
% npx aetest describe Img_Name_Missing
{
code: 'Img_Name_Missing',
fullName: 'Image accessible name is missing',
description: "We detected an image that is missing an accessible name. if the image is unimportant or decorative, provide an empty-alt attribute as in the following: `alt=''`. If the image needs announcing to screen-readers, add an appropriate alt-attribute or related ARIA property to provide an accessible name.",
wcagSuccessCriteriaNumber: '1.1.1',
wcagSuccessCriteriaName: 'Non-Text Content',
wcagSuccessCriteriaLevelCode: 'A',