Skip to content

Commit

Permalink
Add ARIA and Best Practices filters
Browse files Browse the repository at this point in the history
  • Loading branch information
Jym77 committed Nov 20, 2024
1 parent 9187d87 commit c602962
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 5 deletions.
5 changes: 5 additions & 0 deletions .changeset/twelve-pots-happen.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@siteimprove/alfa-test-utils": minor
---

**Added:** A `Rules.ARIAFilter` and `Rules.bestPracticesFilter` are now available.
14 changes: 13 additions & 1 deletion packages/alfa-test-utils/src/audit/rules.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Iterable } from "@siteimprove/alfa-iterable";
import type { Predicate } from "@siteimprove/alfa-predicate";
import { Refinement } from "@siteimprove/alfa-refinement";
import rules, { Scope } from "@siteimprove/alfa-rules";
import rules, { ARIA, BestPractice, Scope } from "@siteimprove/alfa-rules";
import type { Flattened } from "@siteimprove/alfa-rules";
import { Conformance, Criterion } from "@siteimprove/alfa-wcag";

Expand Down Expand Up @@ -53,6 +53,18 @@ export namespace Rules {
export const wcag21aaFilter: Predicate<Flattened.Rule> = (rule) =>
rule.hasRequirement(and(Criterion.isCriterion, Conformance.isAA("2.1")));

/**
* Filter matching the rules that check for ARIA conformance
*/
export const ARIAFilter: Predicate<Flattened.Rule> = (rule) =>
rule.hasRequirement(ARIA.isARIA);

/**
* Filter matching Best Practice rules.
*/
export const bestPracticesFilter: Predicate<Flattened.Rule> = (rule) =>
rule.hasRequirement(BestPractice.isBestPractice);

/**
* Filter matching the "component" rules.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Scope } from "@siteimprove/alfa-rules";
import { ARIA, BestPractice, Scope } from "@siteimprove/alfa-rules";
import { Criterion } from "@siteimprove/alfa-wcag";

import { makeRule } from "../fixtures.js";
Expand Down Expand Up @@ -133,6 +133,20 @@ export const rule18 = makeRule(
export const rule19 = makeRule(1019, <span></span>, [], [Scope.Page]);
export const rule20 = makeRule(1020, <span></span>, [], [Scope.Component]);

// ARIA and Best Practices
export const rule21 = makeRule(
1021,
<span></span>,
[ARIA.of("some URL")],
[Scope.Page]
);
export const rule22 = makeRule(
1022,
<span></span>,
[BestPractice.of("some other URL")],
[Scope.Page]
);

export const rules = [
rule1,
rule2,
Expand All @@ -154,4 +168,6 @@ export const rules = [
rule18,
rule19,
rule20,
rule21,
rule22,
];
2 changes: 1 addition & 1 deletion packages/alfa-test-utils/test/audit/outcomes.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { h } from "@siteimprove/alfa-dom";
import { test } from "@siteimprove/alfa-test";
import { Outcomes } from "../../dist/index.js";
import { makeFailed, makeRule } from "../fixtures.js";
import { rule1, rule2 } from "./fixtures.spec.js";
import { rule1, rule2 } from "./fixtures.js";

const foo = <span id="foo">foo</span>;
const id = foo.attribute("id").getUnsafe();
Expand Down
12 changes: 11 additions & 1 deletion packages/alfa-test-utils/test/audit/rules.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ import {
rule16,
rule18,
rule20,
} from "./fixtures.spec.js";
rule21,
rule22,
} from "./fixtures.js";

test(".aaFilter keeps the A+AA 2.0, 2.1 and 2.2 rules", (t) => {
t.deepEqual(rules.filter(Rules.aaFilter), [
Expand Down Expand Up @@ -96,3 +98,11 @@ test(".cherryPickFilter selects individual rules", (t) => {
[rule10, rule12, rule14, rule16, rule18]
);
});

test(".ARIAFilter selects ARIA rules", (t) => {
t.deepEqual(rules.filter(Rules.ARIAFilter), [rule21]);
});

test(".bestPracticesFilter selects Best Practices rules", (t) => {
t.deepEqual(rules.filter(Rules.bestPracticesFilter), [rule22]);
});
2 changes: 1 addition & 1 deletion packages/alfa-test-utils/test/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
},
"files": [
"./audit/audit.spec.tsx",
"./audit/fixtures.spec.tsx",
"./audit/fixtures.tsx",
"./audit/outcomes.spec.tsx",
"./audit/rules.spec.tsx",
"./fixtures.tsx",
Expand Down

0 comments on commit c602962

Please sign in to comment.