Skip to main content

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',