diff --git a/src/act/__tests__/get-accessibility-requirement.ts b/src/act/__tests__/get-accessibility-requirement.ts index aa63227..df8238a 100644 --- a/src/act/__tests__/get-accessibility-requirement.ts +++ b/src/act/__tests__/get-accessibility-requirement.ts @@ -29,16 +29,16 @@ describe("getAccessibilityRequirement", () => { it("returns ARIA requirements", () => { const ariaReq = getAccessibilityRequirement({ - requirementId: "aria11:childrenArePresentational", + requirementId: "aria12:childrenArePresentational", title: "5.2.8 Presentational Children", }); expect(ariaReq).toEqual({ - conformanceLevel: "WAI-ARIA 1.1 author requirements", + conformanceLevel: "WAI-ARIA 1.2 author requirements", requirementType: "WAI-ARIA requirement", title: "5.2.8 Presentational Children", shortTitle: "5.2.8 Presentational Children", - url: "https://www.w3.org/TR/wai-aria-1.1/#childrenarepresentational", + url: "https://www.w3.org/TR/wai-aria-1.2/#childrenarepresentational", }); }); @@ -57,4 +57,22 @@ describe("getAccessibilityRequirement", () => { url: "https://www.w3.org/TR/using-aria/#fourth", }); }); + + it("returns ARIA in HTML requirements", () => { + const fourth = getAccessibilityRequirement({ + requirementId: "html-aria:docconformance", + title: + "ARIA in HTML, 4. Document conformance requirements for use of ARIA attributes in HTML", + }); + + expect(fourth).toEqual({ + conformanceLevel: "ARIA in HTML", + requirementType: "ARIA in HTML requirement", + title: + "ARIA in HTML, 4. Document conformance requirements for use of ARIA attributes in HTML", + shortTitle: + "ARIA in HTML, 4. Document conformance requirements for use of ARIA attributes in HTML", + url: "https://www.w3.org/TR/html-aria/#docconformance", + }); + }); }); diff --git a/src/act/get-accessibility-requirement.ts b/src/act/get-accessibility-requirement.ts index 82275d5..3625eac 100644 --- a/src/act/get-accessibility-requirement.ts +++ b/src/act/get-accessibility-requirement.ts @@ -10,22 +10,29 @@ type AccessibilityDocuments = { }; const accessibilityDocs: AccessibilityDocuments = { - aria11: { - conformanceLevel: "WAI-ARIA 1.1 author requirements", - baseURL: "https://www.w3.org/TR/wai-aria-1.1/#", + aria12: { + conformanceLevel: "WAI-ARIA 1.2 author requirements", + baseURL: "https://www.w3.org/TR/wai-aria-1.2/#", requirementType: "WAI-ARIA requirement", }, + // Note: as of 28/09/2023, we have no rule mapping to DPUB ARIA "dpub-aria": { conformanceLevel: "WAI-ARIA Digital Publishing Module 1.0 author requirements", baseURL: "https://www.w3.org/TR/dpub-aria-1.0/#", requirementType: "WAI-ARIA Digital Publishing Module requirement", }, + // Note: as of 28/09/2023, we have no rule mapping to Graphics ARIA "graphics-aria": { conformanceLevel: "WAI-ARIA Graphics Module 1.0 author requirements", baseURL: "https://www.w3.org/TR/graphics-aria-1.0/#", requirementType: "WAI-ARIA Graphics Module requirement", }, + "html-aria": { + conformanceLevel: "ARIA in HTML", + baseURL: "https://www.w3.org/TR/html-aria/#", + requirementType: "ARIA in HTML requirement", + }, "using-aria": { baseURL: "https://www.w3.org/TR/using-aria/#", requirementType: "WAI-ARIA rule", diff --git a/src/rule-transform/__tests__/get-rule-content.ts b/src/rule-transform/__tests__/get-rule-content.ts index 0bc90d9..ee5029a 100644 --- a/src/rule-transform/__tests__/get-rule-content.ts +++ b/src/rule-transform/__tests__/get-rule-content.ts @@ -1,11 +1,11 @@ -import outdent from "outdent"; import moment from "moment"; +import outdent from "outdent"; +import { RulePage } from "../../types"; +import { indent } from "../../utils/index"; import { parsePage } from "../../utils/parse-page"; import { createGlossary } from "../__test-utils"; import { getRuleContent } from "../get-rule-content"; -import { RulePage } from "../../types"; import { getFooter } from "../rule-content/frontmatter/get-footer"; -import { indent } from "../../utils/index"; describe("getRuleContent", () => { const q = "```"; @@ -200,4 +200,241 @@ describe("getRuleContent", () => { ` ); }); + + // Mapping to WCAG SCs adds a scs_tested key to the TF Markdown, which is + // somewhat annoying to handle in bulk. So they are not part of this test + // but are effectively tested as part of the previous one. + it("accept all possible non-WCAG mappings", () => { + const requirements = [ + { + source: `wcag-technique:ARIA5: # Using WAI-ARIA state and property attributes to expose the state of a user interface component + forConformance: false + failed: not satisfied + passed: further testing needed + inapplicable: further testing needed`, + expected: outdent` +
failed outcomes: technique is not satisfiedpassed outcomes: technique needs further testinginapplicable outcome: technique needs further testingfailed outcomes: WAI-ARIA requirement is not satisfiedpassed outcomes: WAI-ARIA requirement is satisfiedinapplicable outcome: WAI-ARIA requirement is satisfiedfailed outcomes: ARIA in HTML requirement is not satisfiedpassed outcomes: ARIA in HTML requirement is satisfiedinapplicable outcome: ARIA in HTML requirement is satisfiedfailed outcomes: WAI-ARIA rule is not satisfiedpassed outcomes: WAI-ARIA rule needs further testinginapplicable outcome: WAI-ARIA rule needs further testingfailed outcomes: WCAG 2 conformance requirement is not satisfiedpassed outcomes: WCAG 2 conformance requirement needs further testinginapplicable outcome: WCAG 2 conformance requirement needs further testing