Advanced Audit Configuration
Dual Filtering
Rules
and Outcomes
filters can of course easily be combined:
import { Audit, Outcomes, Rules } from "@siteimprove/alfa-test-utils";
const alfaResult = await Audit.run(alfaPage, {
rules: { include: Rules.aaFilter, exclude: Rules.cherryPickFilter(69) },
outcomes: { include: Outcomes.insideSelectorFilter("nav.global") },
});
Combining Filters
Rules filters (typically) can also be combined with the predicate combinators of the @siteimprove/alfa-predicate
package:
import { Predicate } from "@siteimprove/alfa-predicate";
import { Audit, Outcomes, Rules } from "@siteimprove/alfa-test-utils";
const { and } = Predicate;
const alfaResult = await Audit.run(alfaPage, {
rules: { include: and(Rules.aaFilter, Rules.componentFilter) },
});
This will only select the level A and AA rules that are also "component" rules.
Tip: Predicates are simply functions returning a boolean and can also be combined manually, e.g.
rule => Rules.aaFilter(rule) && Rules.componentFilter(rule)
would achieve the same result as theand
combinator.
More Configuration
Check the technical documentation of the Audit.Option
object for details; see also which rules filters and outcomes filters are pre-built and can be used. It is notably possible to use custom filters for both rules and outcomes; and to write custom rules and add them to the audit (or replace the existing ones). We currently do not have a guide for these.