Mapping To Rule

Implementation Scoping

An implementation procedure does not need to be a one-to-one mapping to an ACT rule. A single implementation procedure can test multiple ACT rules. In manual test procedures, it is common to test multiple things at once. For instance, a procedure looking at the language of a page will simultaneously test whether or not the <html> element has a lang attribute, if the value of the lang attribute is valid, and if the value matches the language of the page. These are 3 separate rules, covered in a single test procedure of an implementation.

Single implementation, mapping to two ACT Rules

An accessibility tool or methodology can also have multiple implementation procedures that when combined, map to a single ACT rule. It is common in automated test tools to split up certain rules to build up more appropriate remediation advice. For example there can be a single ACT rule to test that all elements with the img role have an accessible name. An automated tool may implement testing img elements separate from role="img", so that remediation advice for elements that can have an alt attribute will differ from elements that can't.

Single ACT rule, mapping to two implementation rules

Automated Mapping

The correctness of an implementation procedure is based on the results from running the test cases in a tool or test procedure. The three types of test cases have a range of outcomes that are allowed:

Test Case Type Allowed outcomes
Passed passed, cantTell or inapplicable
Failed failed or cantTell
Inapplicable inapplicable, cantTell or passed

An implementation procedure that returns one of the allowed outcomes for all test cases in an ACT rule is a correct implementation. A procedure that has all passed and inapplicable test cases correct, but only has some of the failed test cases correct is called a partial implementation. If a tool or methodology has partial implementations for an ACT rule that together get all failed test cases correct, this implementation procedure set is considered a correct implementation.

An implementation procedure can be automated, semi-automated or manual. This is based on the mode of the test and whether or not any of the outcomes is cantTell. An implementation is automated if the test mode is "automatic" and none of the outcomes are cantTell. An implementation is manual if one or more of the mode is "manual". In all other cases, the procedure is considered semi-automated. If the test mode is not provided in the results, the implementation's default will be assumed.