Implementation report of Equal Access Accessibility Checker (IBM Accessibility)
ACT rule results were generated using the latest accessibility-checker
from NPM using the ACT test driver.
Results were created using the preview archive and the IBM_Accessibility policy.
Mappings from ACT rules to Accessibility Checker rule ids and reason codes can be
found in the ace property of the [relevant rule files](https://github.com/IBMa/equal-access/tree/master/accessibility-checker-engine/src/v4/rules.
Results indicate the rule ids and reason codes related to the ACT rule are generated in the following format:
RuleId1:ReasonCode1,ReasonCode2|RuleId2:ReasonCode3,ReasonCode4.
ARIA attribute is defined in WAI-ARIA
| Testcase Url | Expected | Rpt_Aria_ValidProperty:Pass_0,Fail_1 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
ARIA required context role
| Testcase Url | Expected | Rpt_Aria_RequiredParent_Native_Host_Sematics:Pass_0,Fail_1 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Passed Example 5 | passed | passed |
| Passed Example 6 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | passed |
| Failed Example 4 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
| Inapplicable Example 4 | inapplicable | inapplicable |
| Inapplicable Example 5 | inapplicable | passed |
ARIA required owned elements
| Testcase Url | Expected | Rpt_Aria_RequiredChildren_Native_Host_Sematics:Pass_0,Potential_1 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Passed Example 5 | passed | passed |
| Passed Example 6 | passed | passed |
| Passed Example 7 | passed | passed |
| Failed Example 1 | failed | cantTell |
| Failed Example 2 | failed | cantTell |
| Failed Example 3 | failed | passed |
| Failed Example 4 | failed | cantTell |
| Failed Example 5 | failed | cantTell |
| Failed Example 6 | failed | cantTell |
| Failed Example 7 | failed | passed |
| Inapplicable Example 1 | inapplicable | cantTell |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | passed |
| Inapplicable Example 4 | inapplicable | cantTell |
| Inapplicable Example 5 | inapplicable | passed |
ARIA state or property is permitted
| Testcase Url | Expected | aria_semantics_attribute:Pass_0,Fail_1 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Passed Example 5 | passed | passed |
| Passed Example 6 | passed | passed |
| Passed Example 7 | passed | passed |
| Passed Example 8 | passed | passed |
| Passed Example 9 | passed | passed |
| Passed Example 10 | passed | passed |
| Passed Example 11 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
Button has non-empty accessible name
| Testcase Url | Expected | WCAG20_Input_ExplicitLabel:Pass_0,Fail_1,Fail_2 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Passed Example 5 | passed | passed |
| Passed Example 6 | passed | passed |
| Passed Example 7 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Failed Example 5 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
| Inapplicable Example 4 | inapplicable | inapplicable |
| Inapplicable Example 5 | inapplicable | inapplicable |
Element with role attribute has required states and properties
| Testcase Url | Expected | combobox_popup_reference:Pass_expanded,Pass_collapsed,Fail_1.2_missing_controls,Fail_1.2_popup_reference_missing|Rpt_Aria_RequiredProperties:Pass_0,Fail_1 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
Form field has non-empty accessible name
| Testcase Url | Expected | WCAG20_Input_ExplicitLabel:Pass_0,Fail_1,Fail_2 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Passed Example 5 | passed | passed |
| Passed Example 6 | passed | passed |
| Passed Example 7 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Failed Example 5 | failed | failed |
| Failed Example 6 | failed | failed |
| Failed Example 7 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
HTML page has lang attribute
| Testcase Url | Expected | WCAG20_Elem_Lang_Valid:Pass_0,Fail_1|WCAG20_Html_HasLang:Pass_0,Fail_3 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Inapplicable Example 1 | inapplicable | untested |
| Inapplicable Example 2 | inapplicable | untested |
HTML page has non-empty title
| Testcase Url | Expected | WCAG20_Doc_HasTitle:Pass_0,Fail_1,Fail_2,Fail_3 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Passed Example 5 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Failed Example 5 | failed | failed |
| Inapplicable Example 1 | inapplicable | untested |
HTML page lang and xml:lang attributes have matching values
| Testcase Url | Expected | WCAG20_Html_HasLang:Pass_0,Fail_4,Fail_5 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Inapplicable Example 1 | inapplicable | untested |
| Inapplicable Example 2 | inapplicable | untested |
| Inapplicable Example 3 | inapplicable | untested |
| Inapplicable Example 4 | inapplicable | untested |
| Inapplicable Example 5 | inapplicable | passed |
| Inapplicable Example 6 | inapplicable | passed |
| Inapplicable Example 7 | inapplicable | passed |
HTML page lang attribute has valid language tag
| Testcase Url | Expected | WCAG20_Elem_Lang_Valid:Pass_0,Fail_1,Fail_2,Fail_3 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Inapplicable Example 1 | inapplicable | untested |
Headers attribute specified on a cell refers to cells in the same table element
| Testcase Url | Expected | table_headers_ref_valid:Pass_0,Fail_1,Fail_2,Fail_3,Fail_4 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Passed Example 5 | passed | passed |
| Passed Example 6 | passed | passed |
| Passed Example 7 | passed | passed |
| Passed Example 8 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | passed |
| Inapplicable Example 4 | inapplicable | inapplicable |
| Inapplicable Example 5 | inapplicable | inapplicable |
Id attribute value is unique
| Testcase Url | Expected | RPT_Elem_UniqueId:Pass_0,Fail_1,Fail_2 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | passed |
Iframe element has non-empty accessible name
| Testcase Url | Expected | WCAG20_Frame_HasTitle:Pass_0,Fail_1 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | inapplicable |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
Image button has non-empty accessible name
| Testcase Url | Expected | Rpt_Aria_ValidIdRef:Pass_0,Fail_1|WCAG20_Input_ExplicitLabelImage:Pass_0,Pass_1,Pass_2,Fail |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
| Inapplicable Example 4 | inapplicable | inapplicable |
| Inapplicable Example 5 | inapplicable | inapplicable |
Image has non-empty accessible name
| Testcase Url | Expected | HAAC_Aria_ImgAlt:Pass_0,Fail_1,Fail_2,Fail_3|WCAG20_Img_HasAlt:Pass_0,Fail_1,Fail_2,Fail_3 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Passed Example 5 | passed | passed |
| Passed Example 6 | passed | passed |
| Passed Example 7 | passed | passed |
| Passed Example 8 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Failed Example 5 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
| Inapplicable Example 4 | inapplicable | inapplicable |
| Inapplicable Example 5 | inapplicable | inapplicable |
Link has non-empty accessible name
| Testcase Url | Expected | WCAG20_A_HasText:Pass_0,Fail_1 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Passed Example 5 | passed | passed |
| Passed Example 6 | passed | passed |
| Passed Example 7 | passed | passed |
| Passed Example 8 | passed | passed |
| Passed Example 9 | passed | passed |
| Passed Example 10 | passed | passed |
| Passed Example 11 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Failed Example 5 | failed | failed |
| Failed Example 6 | failed | failed |
| Failed Example 7 | failed | failed |
| Failed Example 8 | failed | failed |
| Failed Example 9 | failed | failed |
| Failed Example 10 | failed | failed |
| Failed Example 11 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
| Inapplicable Example 4 | inapplicable | inapplicable |
| Inapplicable Example 5 | inapplicable | inapplicable |
| Inapplicable Example 6 | inapplicable | inapplicable |
Menuitem has non-empty accessible name
| Testcase Url | Expected | Rpt_Aria_WidgetLabels_Implicit:Pass_0,Fail_1 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
Meta element has no refresh delay
| Testcase Url | Expected | RPT_Meta_Refresh:Pass_0,Potential_1|WCAG20_Meta_RedirectZero:pass,fail,fail_longrefresh |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Failed Example 1 | failed | cantTell |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
| Inapplicable Example 4 | inapplicable | inapplicable |
| Inapplicable Example 5 | inapplicable | inapplicable |
| Inapplicable Example 6 | inapplicable | inapplicable |
| Inapplicable Example 7 | inapplicable | inapplicable |
| Inapplicable Example 8 | inapplicable | inapplicable |
Meta element has no refresh delay (no exception)
| Testcase Url | Expected | RPT_Meta_Refresh:Pass_0,Potential_1|WCAG20_Meta_RedirectZero:pass,fail,fail_longrefresh |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Failed Example 1 | failed | cantTell |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
| Inapplicable Example 4 | inapplicable | inapplicable |
| Inapplicable Example 5 | inapplicable | inapplicable |
| Inapplicable Example 6 | inapplicable | inapplicable |
| Inapplicable Example 7 | inapplicable | inapplicable |
| Inapplicable Example 8 | inapplicable | inapplicable |
Meta viewport allows for zoom
| Testcase Url | Expected | meta_viewport_zoom:Pass_0,Potential_1 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
| Inapplicable Example 4 | inapplicable | inapplicable |
Object element rendering non-text content has non-empty accessible name
| Testcase Url | Expected | WCAG20_Object_HasText:Pass_0,Fail_1 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Passed Example 4 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
| Inapplicable Example 4 | inapplicable | inapplicable |
| Inapplicable Example 5 | inapplicable | inapplicable |
| Inapplicable Example 6 | inapplicable | inapplicable |
Role attribute has valid value
| Testcase Url | Expected | Rpt_Aria_ValidRole:Pass_0,Fail_2,Potential_1 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | cantTell |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |
| Inapplicable Example 4 | inapplicable | inapplicable |
| Inapplicable Example 5 | inapplicable | inapplicable |
SVG element with explicit role has non-empty accessible name
| Testcase Url | Expected | HAAC_Aria_ImgAlt:Pass_0,Fail_2|HAAC_Aria_SvgAlt:Pass_0,Fail_2 |
|---|---|---|
| Passed Example 1 | passed | passed |
| Passed Example 2 | passed | passed |
| Passed Example 3 | passed | passed |
| Failed Example 1 | failed | failed |
| Failed Example 2 | failed | failed |
| Failed Example 3 | failed | failed |
| Failed Example 4 | failed | failed |
| Inapplicable Example 1 | inapplicable | inapplicable |
| Inapplicable Example 2 | inapplicable | inapplicable |
| Inapplicable Example 3 | inapplicable | inapplicable |