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.
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.
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.