From 287735996b7bdfb545c4f8583baed5fd56c23cc0 Mon Sep 17 00:00:00 2001
From: lisli1 <48259897+lisli1@users.noreply.github.com>
Date: Wed, 20 Apr 2022 10:34:42 -0700
Subject: [PATCH] feat(axe-core-4.4.1): update to use axe-core 4.4.1 (#757)
Details
Updates axe-sarif-converter to use new axe-core version 4.4.1
Motivation
Part of feature work. Updating all products to axe-core 4.4.1
---
README.md | 2 +-
src/__snapshots__/index.test.ts.snap | 8 +-
src/cli.test.ts | 6 +-
src/index.test.ts | 6 +-
.../basic-axe-v4.4.1.axe-cli-v4.4.2.json | 68 +
.../basic-axe-v4.4.1.reporter-raw.json | 52 +
.../basic-axe-v4.4.1.reporter-v1.json | 70 +
.../basic-axe-v4.4.1.reporter-v2.json | 69 +
src/test-resources/basic-axe-v4.4.1.sarif | 766 +
src/test-resources/generator/package.json | 2 +-
src/test-resources/generator/yarn.lock | 7 +-
...3citylights-axe-v4.4.1.axe-cli-v4.4.2.json | 17379 ++++++++++
.../w3citylights-axe-v4.4.1.reporter-raw.json | 26095 +++++++++++++++
.../w3citylights-axe-v4.4.1.reporter-v1.json | 19505 +++++++++++
.../w3citylights-axe-v4.4.1.reporter-v2.json | 19435 +++++++++++
.../w3citylights-axe-v4.4.1.sarif | 27867 ++++++++++++++++
yarn.lock | 6 +-
17 files changed, 111325 insertions(+), 18 deletions(-)
create mode 100644 src/test-resources/basic-axe-v4.4.1.axe-cli-v4.4.2.json
create mode 100644 src/test-resources/basic-axe-v4.4.1.reporter-raw.json
create mode 100644 src/test-resources/basic-axe-v4.4.1.reporter-v1.json
create mode 100644 src/test-resources/basic-axe-v4.4.1.reporter-v2.json
create mode 100644 src/test-resources/basic-axe-v4.4.1.sarif
create mode 100644 src/test-resources/w3citylights-axe-v4.4.1.axe-cli-v4.4.2.json
create mode 100644 src/test-resources/w3citylights-axe-v4.4.1.reporter-raw.json
create mode 100644 src/test-resources/w3citylights-axe-v4.4.1.reporter-v1.json
create mode 100644 src/test-resources/w3citylights-axe-v4.4.1.reporter-v2.json
create mode 100644 src/test-resources/w3citylights-axe-v4.4.1.sarif
diff --git a/README.md b/README.md
index 2e26e75f..26f2997d 100644
--- a/README.md
+++ b/README.md
@@ -66,7 +66,7 @@ The [microsoft/axe-pipelines-samples](https://github.com/microsoft/axe-pipelines
The version number of this library is **independent** from the version numbers of the axe-core inputs and SARIF outputs it supports.
-- axe-sarif-converter version 2.x supports input from version ^3.2.0 || ^4.0.0 of axe-core (tested with 3.2.2, 3.3.2, 3.4.1, 3.4.2, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 4.0.1, 4.0.2, 4.1.1, 4.2.0, and 4.3.2) and outputs SARIF v2.1
+- axe-sarif-converter version 2.x supports input from version ^3.2.0 || ^4.0.0 of axe-core (tested with 3.2.2, 3.3.2, 3.4.1, 3.4.2, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 4.0.1, 4.0.2, 4.1.1, 4.2.0, 4.3.2, and 4.4.1) and outputs SARIF v2.1
- axe-sarif-converter version 1.x supports input from version >= 3.2.0 < 3.3.0 of axe-core (tested with 3.2.2) and outputs SARIF v2.0
Note that the SARIF format _does not use semantic versioning_, and there are breaking changes between the v2.0 and v2.1 SARIF formats. If you need compatibility with a SARIF viewer that only supports v2.0, you should use version 1.x of this library.
diff --git a/src/__snapshots__/index.test.ts.snap b/src/__snapshots__/index.test.ts.snap
index 1fd56840..47997f98 100644
--- a/src/__snapshots__/index.test.ts.snap
+++ b/src/__snapshots__/index.test.ts.snap
@@ -1388,15 +1388,15 @@ Object {
],
"tool": Object {
"driver": Object {
- "downloadUri": "https://www.npmjs.com/package/axe-core/v/4.3.2",
- "fullName": "axe for Web v4.3.2",
+ "downloadUri": "https://www.npmjs.com/package/axe-core/v/4.4.1",
+ "fullName": "axe for Web v4.4.1",
"informationUri": "https://www.deque.com/axe/axe-for-web/",
"name": "axe-core",
"properties": Object {
"microsoft/qualityDomain": "Accessibility",
},
"rules": Array [],
- "semanticVersion": "4.3.2",
+ "semanticVersion": "4.4.1",
"shortDescription": Object {
"text": "An open source accessibility rules library for automated testing.",
},
@@ -1407,7 +1407,7 @@ Object {
"name": "WCAG",
},
],
- "version": "4.3.2",
+ "version": "4.4.1",
},
},
},
diff --git a/src/cli.test.ts b/src/cli.test.ts
index 29945f9a..f3f65711 100644
--- a/src/cli.test.ts
+++ b/src/cli.test.ts
@@ -69,6 +69,8 @@ describe('axe-sarif-converter CLI', () => {
${'w3citylights-axe-v4.2.0.axe-cli-v4.1.1.json'}
${'basic-axe-v4.3.2.axe-cli-v4.2.2.json'}
${'w3citylights-axe-v4.3.2.axe-cli-v4.2.2.json'}
+ ${'basic-axe-v4.4.1.axe-cli-v4.4.2.json'}
+ ${'w3citylights-axe-v4.4.1.axe-cli-v4.4.2.json'}
`(
'supports conversion from axe-cli output $inputFile',
async ({ inputFile }) => {
@@ -187,11 +189,11 @@ describe('axe-sarif-converter CLI', () => {
const testResultsDir = path.join(__dirname, '..', 'test-results');
const basicAxeV2File = path.join(
testResourcesDir,
- 'basic-axe-v4.3.2.reporter-v2.json',
+ 'basic-axe-v4.4.1.reporter-v2.json',
);
const basicSarifFile = path.join(
testResourcesDir,
- 'basic-axe-v4.3.2.sarif',
+ 'basic-axe-v4.4.1.sarif',
);
const mkdir = promisify(fs.mkdir);
diff --git a/src/index.test.ts b/src/index.test.ts
index 0bdf89ce..53d75c22 100644
--- a/src/index.test.ts
+++ b/src/index.test.ts
@@ -103,6 +103,10 @@ describe('public convertAxeToSarif API', () => {
${'basic-axe-v4.3.2.reporter-v2.json'} | ${'basic-axe-v4.3.2.sarif'}
${'w3citylights-axe-v4.3.2.reporter-v1.json'} | ${'w3citylights-axe-v4.3.2.sarif'}
${'w3citylights-axe-v4.3.2.reporter-v2.json'} | ${'w3citylights-axe-v4.3.2.sarif'}
+ ${'basic-axe-v4.4.1.reporter-v1.json'} | ${'basic-axe-v4.4.1.sarif'}
+ ${'basic-axe-v4.4.1.reporter-v2.json'} | ${'basic-axe-v4.4.1.sarif'}
+ ${'w3citylights-axe-v4.4.1.reporter-v1.json'} | ${'w3citylights-axe-v4.4.1.sarif'}
+ ${'w3citylights-axe-v4.4.1.reporter-v2.json'} | ${'w3citylights-axe-v4.4.1.sarif'}
`(
'converts pinned v1/v2 input $inputFile to pinned output $outputFile',
({ inputFile, outputFile }) => {
@@ -147,7 +151,7 @@ describe('public sarifReporter API', () => {
// it isn't very meaningful to test cases that involve old axe versions here.
it.each`
inputFile | outputFile
- ${'basic-axe-v4.3.2.reporter-raw.json'} | ${'basic-axe-v4.3.2.sarif'}
+ ${'basic-axe-v4.4.1.reporter-raw.json'} | ${'basic-axe-v4.4.1.sarif'}
`(
'converts pinned raw input $inputFile to pinned output $outputFile',
async ({ inputFile, outputFile }) => {
diff --git a/src/test-resources/basic-axe-v4.4.1.axe-cli-v4.4.2.json b/src/test-resources/basic-axe-v4.4.1.axe-cli-v4.4.2.json
new file mode 100644
index 00000000..c1b375a0
--- /dev/null
+++ b/src/test-resources/basic-axe-v4.4.1.axe-cli-v4.4.2.json
@@ -0,0 +1,68 @@
+[
+ {
+ "testEngine": {
+ "name": "axe-core",
+ "version": "4.4.1"
+ },
+ "testRunner": {
+ "name": "axe"
+ },
+ "testEnvironment": {
+ "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/100.0.4896.127 Safari/537.36",
+ "windowWidth": 800,
+ "windowHeight": 600,
+ "orientationAngle": 0,
+ "orientationType": "landscape-primary"
+ },
+ "timestamp": "2022-04-19T00:35:23.803Z",
+ "url": "file:///C:/Users/lisli/lisli1/axe-sarif-converter/src/test-resources/basic.html",
+ "toolOptions": {
+ "runOnly": {
+ "type": "rule",
+ "values": [
+ "document-title"
+ ]
+ },
+ "reporter": "v1"
+ },
+ "inapplicable": [],
+ "passes": [],
+ "incomplete": [],
+ "violations": [
+ {
+ "id": "document-title",
+ "impact": "serious",
+ "tags": [
+ "cat.text-alternatives",
+ "wcag2a",
+ "wcag242",
+ "ACT"
+ ],
+ "description": "Ensures each HTML document contains a non-empty
element",
+ "help": "Documents must have element to aid in navigation",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/document-title?application=webdriverjs",
+ "nodes": [
+ {
+ "any": [
+ {
+ "id": "doc-has-title",
+ "data": null,
+ "relatedNodes": [],
+ "impact": "serious",
+ "message": "Document does not have a non-empty element"
+ }
+ ],
+ "all": [],
+ "none": [],
+ "impact": "serious",
+ "html": "\n",
+ "target": [
+ "html"
+ ],
+ "failureSummary": "Fix any of the following:\n Document does not have a non-empty element"
+ }
+ ]
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/src/test-resources/basic-axe-v4.4.1.reporter-raw.json b/src/test-resources/basic-axe-v4.4.1.reporter-raw.json
new file mode 100644
index 00000000..0ccae330
--- /dev/null
+++ b/src/test-resources/basic-axe-v4.4.1.reporter-raw.json
@@ -0,0 +1,52 @@
+[
+ {
+ "id": "document-title",
+ "result": "failed",
+ "pageLevel": false,
+ "impact": "serious",
+ "tags": [
+ "cat.text-alternatives",
+ "wcag2a",
+ "wcag242",
+ "ACT"
+ ],
+ "description": "Ensures each HTML document contains a non-empty element",
+ "help": "Documents must have element to aid in navigation",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/document-title?application=axe-puppeteer",
+ "inapplicable": [],
+ "passes": [],
+ "incomplete": [],
+ "violations": [
+ {
+ "node": {
+ "selector": [
+ "html"
+ ],
+ "source": "\n",
+ "xpath": [
+ "/html"
+ ],
+ "ancestry": [
+ "html"
+ ],
+ "nodeIndexes": [
+ 0
+ ]
+ },
+ "any": [
+ {
+ "id": "doc-has-title",
+ "data": null,
+ "relatedNodes": [],
+ "impact": "serious",
+ "message": "Document does not have a non-empty element"
+ }
+ ],
+ "all": [],
+ "none": [],
+ "impact": "serious",
+ "result": "failed"
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/src/test-resources/basic-axe-v4.4.1.reporter-v1.json b/src/test-resources/basic-axe-v4.4.1.reporter-v1.json
new file mode 100644
index 00000000..8965101c
--- /dev/null
+++ b/src/test-resources/basic-axe-v4.4.1.reporter-v1.json
@@ -0,0 +1,70 @@
+{
+ "testEngine": {
+ "name": "axe-core",
+ "version": "4.4.1"
+ },
+ "testRunner": {
+ "name": "axe"
+ },
+ "testEnvironment": {
+ "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/100.0.4889.0 Safari/537.36",
+ "windowWidth": 800,
+ "windowHeight": 600,
+ "orientationAngle": 0,
+ "orientationType": "portrait-primary"
+ },
+ "timestamp": "2000-01-02T03:04:05.006Z",
+ "url": "http://localhost/",
+ "toolOptions": {
+ "xpath": true,
+ "runOnly": {
+ "type": "rule",
+ "values": [
+ "document-title"
+ ]
+ },
+ "reporter": "v1"
+ },
+ "inapplicable": [],
+ "passes": [],
+ "incomplete": [],
+ "violations": [
+ {
+ "id": "document-title",
+ "impact": "serious",
+ "tags": [
+ "cat.text-alternatives",
+ "wcag2a",
+ "wcag242",
+ "ACT"
+ ],
+ "description": "Ensures each HTML document contains a non-empty element",
+ "help": "Documents must have element to aid in navigation",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/document-title?application=axe-puppeteer",
+ "nodes": [
+ {
+ "any": [
+ {
+ "id": "doc-has-title",
+ "data": null,
+ "relatedNodes": [],
+ "impact": "serious",
+ "message": "Document does not have a non-empty element"
+ }
+ ],
+ "all": [],
+ "none": [],
+ "impact": "serious",
+ "html": "\n",
+ "target": [
+ "html"
+ ],
+ "xpath": [
+ "/html"
+ ],
+ "failureSummary": "Fix any of the following:\n Document does not have a non-empty element"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/test-resources/basic-axe-v4.4.1.reporter-v2.json b/src/test-resources/basic-axe-v4.4.1.reporter-v2.json
new file mode 100644
index 00000000..957679af
--- /dev/null
+++ b/src/test-resources/basic-axe-v4.4.1.reporter-v2.json
@@ -0,0 +1,69 @@
+{
+ "testEngine": {
+ "name": "axe-core",
+ "version": "4.4.1"
+ },
+ "testRunner": {
+ "name": "axe"
+ },
+ "testEnvironment": {
+ "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/100.0.4889.0 Safari/537.36",
+ "windowWidth": 800,
+ "windowHeight": 600,
+ "orientationAngle": 0,
+ "orientationType": "portrait-primary"
+ },
+ "timestamp": "2000-01-02T03:04:05.006Z",
+ "url": "http://localhost/",
+ "toolOptions": {
+ "xpath": true,
+ "runOnly": {
+ "type": "rule",
+ "values": [
+ "document-title"
+ ]
+ },
+ "reporter": "v2"
+ },
+ "inapplicable": [],
+ "passes": [],
+ "incomplete": [],
+ "violations": [
+ {
+ "id": "document-title",
+ "impact": "serious",
+ "tags": [
+ "cat.text-alternatives",
+ "wcag2a",
+ "wcag242",
+ "ACT"
+ ],
+ "description": "Ensures each HTML document contains a non-empty element",
+ "help": "Documents must have element to aid in navigation",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/document-title?application=axe-puppeteer",
+ "nodes": [
+ {
+ "any": [
+ {
+ "id": "doc-has-title",
+ "data": null,
+ "relatedNodes": [],
+ "impact": "serious",
+ "message": "Document does not have a non-empty element"
+ }
+ ],
+ "all": [],
+ "none": [],
+ "impact": "serious",
+ "html": "\n",
+ "target": [
+ "html"
+ ],
+ "xpath": [
+ "/html"
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/test-resources/basic-axe-v4.4.1.sarif b/src/test-resources/basic-axe-v4.4.1.sarif
new file mode 100644
index 00000000..b0cbea6b
--- /dev/null
+++ b/src/test-resources/basic-axe-v4.4.1.sarif
@@ -0,0 +1,766 @@
+{
+ "version": "2.1.0",
+ "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
+ "runs": [
+ {
+ "conversion": {
+ "tool": {
+ "driver": {
+ "name": "axe-sarif-converter",
+ "fullName": "axe-sarif-converter v0.0.0-managed-by-semantic-release",
+ "version": "0.0.0-managed-by-semantic-release",
+ "semanticVersion": "0.0.0-managed-by-semantic-release",
+ "informationUri": "https://github.com/microsoft/axe-sarif-converter/releases/tag/v0.0.0-managed-by-semantic-release",
+ "downloadUri": "https://www.npmjs.com/package/axe-sarif-converter/v/0.0.0-managed-by-semantic-release"
+ }
+ }
+ },
+ "tool": {
+ "driver": {
+ "name": "axe-core",
+ "fullName": "axe for Web v4.4.1",
+ "shortDescription": {
+ "text": "An open source accessibility rules library for automated testing."
+ },
+ "version": "4.4.1",
+ "semanticVersion": "4.4.1",
+ "informationUri": "https://www.deque.com/axe/axe-for-web/",
+ "downloadUri": "https://www.npmjs.com/package/axe-core/v/4.4.1",
+ "properties": {
+ "microsoft/qualityDomain": "Accessibility"
+ },
+ "supportedTaxonomies": [
+ {
+ "name": "WCAG",
+ "index": 0,
+ "guid": "ca34e0e1-5faf-4f55-a989-cdae42a98f18"
+ }
+ ],
+ "rules": [
+ {
+ "id": "document-title",
+ "name": "Documents must have element to aid in navigation",
+ "fullDescription": {
+ "text": "Ensures each HTML document contains a non-empty element."
+ },
+ "helpUri": "https://dequeuniversity.com/rules/axe/4.4/document-title?application=axe-puppeteer",
+ "relationships": [
+ {
+ "target": {
+ "id": "wcag242",
+ "index": 45,
+ "toolComponent": {
+ "name": "WCAG",
+ "index": 0,
+ "guid": "ca34e0e1-5faf-4f55-a989-cdae42a98f18"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "invocations": [
+ {
+ "startTimeUtc": "2000-01-02T03:04:05.006Z",
+ "endTimeUtc": "2000-01-02T03:04:05.006Z",
+ "executionSuccessful": true
+ }
+ ],
+ "artifacts": [
+ {
+ "location": {
+ "uri": "http://localhost/",
+ "index": 0
+ },
+ "sourceLanguage": "html",
+ "roles": [
+ "analysisTarget"
+ ]
+ }
+ ],
+ "results": [
+ {
+ "ruleId": "document-title",
+ "ruleIndex": 0,
+ "kind": "fail",
+ "level": "error",
+ "message": {
+ "text": "Fix any of the following: Document does not have a non-empty element.",
+ "markdown": "Fix any of the following:\n- Document does not have a non-empty <title> element."
+ },
+ "locations": [
+ {
+ "physicalLocation": {
+ "artifactLocation": {
+ "uri": "http://localhost/",
+ "index": 0
+ },
+ "region": {
+ "snippet": {
+ "text": "\n"
+ }
+ }
+ },
+ "logicalLocations": [
+ {
+ "fullyQualifiedName": "html",
+ "kind": "element"
+ },
+ {
+ "fullyQualifiedName": "/html",
+ "kind": "element"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "taxonomies": [
+ {
+ "name": "WCAG",
+ "fullName": "Web Content Accessibility Guidelines (WCAG) 2.1",
+ "organization": "W3C",
+ "informationUri": "https://www.w3.org/TR/WCAG21",
+ "version": "2.1",
+ "guid": "ca34e0e1-5faf-4f55-a989-cdae42a98f18",
+ "isComprehensive": true,
+ "taxa": [
+ {
+ "id": "best-practice",
+ "name": "Best Practice"
+ },
+ {
+ "id": "wcag111",
+ "name": "WCAG 1.1.1",
+ "shortDescription": {
+ "text": "Non-text Content"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/non-text-content"
+ },
+ {
+ "id": "wcag121",
+ "name": "WCAG 1.2.1",
+ "shortDescription": {
+ "text": "Audio-only and Video-only (Prerecorded)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/audio-only-and-video-only-prerecorded"
+ },
+ {
+ "id": "wcag122",
+ "name": "WCAG 1.2.2",
+ "shortDescription": {
+ "text": "Captions (Prerecorded)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/captions-prerecorded"
+ },
+ {
+ "id": "wcag123",
+ "name": "WCAG 1.2.3",
+ "shortDescription": {
+ "text": "Audio Description or Media Alternative (Prerecorded)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/audio-description-or-media-alternative-prerecorded"
+ },
+ {
+ "id": "wcag124",
+ "name": "WCAG 1.2.4",
+ "shortDescription": {
+ "text": "Captions (Live)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/captions-live"
+ },
+ {
+ "id": "wcag125",
+ "name": "WCAG 1.2.5",
+ "shortDescription": {
+ "text": "Audio Description (Prerecorded)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/audio-description-prerecorded"
+ },
+ {
+ "id": "wcag126",
+ "name": "WCAG 1.2.6",
+ "shortDescription": {
+ "text": "Sign Language (Prerecorded)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/sign-language-prerecorded"
+ },
+ {
+ "id": "wcag127",
+ "name": "WCAG 1.2.7",
+ "shortDescription": {
+ "text": "Extended Audio Description (Prerecorded)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/extended-audio-description-prerecorded"
+ },
+ {
+ "id": "wcag128",
+ "name": "WCAG 1.2.8",
+ "shortDescription": {
+ "text": "Media Alternative (Prerecorded)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/media-alternative-prerecorded"
+ },
+ {
+ "id": "wcag129",
+ "name": "WCAG 1.2.9",
+ "shortDescription": {
+ "text": "Audio-only (Live)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/audio-only-live"
+ },
+ {
+ "id": "wcag131",
+ "name": "WCAG 1.3.1",
+ "shortDescription": {
+ "text": "Info and Relationships"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships"
+ },
+ {
+ "id": "wcag132",
+ "name": "WCAG 1.3.2",
+ "shortDescription": {
+ "text": "Meaningful Sequence"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/meaningful-sequence"
+ },
+ {
+ "id": "wcag133",
+ "name": "WCAG 1.3.3",
+ "shortDescription": {
+ "text": "Sensory Characteristics"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/sensory-characteristics"
+ },
+ {
+ "id": "wcag134",
+ "name": "WCAG 1.3.4",
+ "shortDescription": {
+ "text": "Orientation"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/orientation"
+ },
+ {
+ "id": "wcag135",
+ "name": "WCAG 1.3.5",
+ "shortDescription": {
+ "text": "Identify Input Purpose"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/identify-input-purpose"
+ },
+ {
+ "id": "wcag136",
+ "name": "WCAG 1.3.6",
+ "shortDescription": {
+ "text": "Identify Purpose"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/identify-purpose"
+ },
+ {
+ "id": "wcag141",
+ "name": "WCAG 1.4.1",
+ "shortDescription": {
+ "text": "Use of Color"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/use-of-color"
+ },
+ {
+ "id": "wcag1410",
+ "name": "WCAG 1.4.10",
+ "shortDescription": {
+ "text": "Reflow"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/reflow"
+ },
+ {
+ "id": "wcag1411",
+ "name": "WCAG 1.4.11",
+ "shortDescription": {
+ "text": "Non-text Contrast"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/non-text-contrast"
+ },
+ {
+ "id": "wcag1412",
+ "name": "WCAG 1.4.12",
+ "shortDescription": {
+ "text": "Text Spacing"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/text-spacing"
+ },
+ {
+ "id": "wcag1413",
+ "name": "WCAG 1.4.13",
+ "shortDescription": {
+ "text": "Content on Hover or Focus"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/content-on-hover-or-focus"
+ },
+ {
+ "id": "wcag142",
+ "name": "WCAG 1.4.2",
+ "shortDescription": {
+ "text": "Audio Control"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/audio-control"
+ },
+ {
+ "id": "wcag143",
+ "name": "WCAG 1.4.3",
+ "shortDescription": {
+ "text": "Contrast (Minimum)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum"
+ },
+ {
+ "id": "wcag144",
+ "name": "WCAG 1.4.4",
+ "shortDescription": {
+ "text": "Resize text"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/resize-text"
+ },
+ {
+ "id": "wcag145",
+ "name": "WCAG 1.4.5",
+ "shortDescription": {
+ "text": "Images of Text"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/images-of-text"
+ },
+ {
+ "id": "wcag146",
+ "name": "WCAG 1.4.6",
+ "shortDescription": {
+ "text": "Contrast (Enhanced)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced"
+ },
+ {
+ "id": "wcag147",
+ "name": "WCAG 1.4.7",
+ "shortDescription": {
+ "text": "Low or No Background Audio"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/low-or-no-background-audio"
+ },
+ {
+ "id": "wcag148",
+ "name": "WCAG 1.4.8",
+ "shortDescription": {
+ "text": "Visual Presentation"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/visual-presentation"
+ },
+ {
+ "id": "wcag149",
+ "name": "WCAG 1.4.9",
+ "shortDescription": {
+ "text": "Images of Text (No Exception)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/images-of-text-no-exception"
+ },
+ {
+ "id": "wcag211",
+ "name": "WCAG 2.1.1",
+ "shortDescription": {
+ "text": "Keyboard"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/keyboard"
+ },
+ {
+ "id": "wcag212",
+ "name": "WCAG 2.1.2",
+ "shortDescription": {
+ "text": "No Keyboard Trap"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/no-keyboard-trap"
+ },
+ {
+ "id": "wcag213",
+ "name": "WCAG 2.1.3",
+ "shortDescription": {
+ "text": "Keyboard (No Exception)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/keyboard-no-exception"
+ },
+ {
+ "id": "wcag214",
+ "name": "WCAG 2.1.4",
+ "shortDescription": {
+ "text": "Character Key Shortcuts"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/character-key-shortcuts"
+ },
+ {
+ "id": "wcag221",
+ "name": "WCAG 2.2.1",
+ "shortDescription": {
+ "text": "Timing Adjustable"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/timing-adjustable"
+ },
+ {
+ "id": "wcag222",
+ "name": "WCAG 2.2.2",
+ "shortDescription": {
+ "text": "Pause, Stop, Hide"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/pause-stop-hide"
+ },
+ {
+ "id": "wcag223",
+ "name": "WCAG 2.2.3",
+ "shortDescription": {
+ "text": "No Timing"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/no-timing"
+ },
+ {
+ "id": "wcag224",
+ "name": "WCAG 2.2.4",
+ "shortDescription": {
+ "text": "Interruptions"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/interruptions"
+ },
+ {
+ "id": "wcag225",
+ "name": "WCAG 2.2.5",
+ "shortDescription": {
+ "text": "Re-authenticating"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/re-authenticating"
+ },
+ {
+ "id": "wcag226",
+ "name": "WCAG 2.2.6",
+ "shortDescription": {
+ "text": "Timeouts"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/timeouts"
+ },
+ {
+ "id": "wcag231",
+ "name": "WCAG 2.3.1",
+ "shortDescription": {
+ "text": "Three Flashes or Below Threshold"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/three-flashes-or-below-threshold"
+ },
+ {
+ "id": "wcag232",
+ "name": "WCAG 2.3.2",
+ "shortDescription": {
+ "text": "Three Flashes"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/three-flashes"
+ },
+ {
+ "id": "wcag233",
+ "name": "WCAG 2.3.3",
+ "shortDescription": {
+ "text": "Animation from Interactions"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/animation-from-interactions"
+ },
+ {
+ "id": "wcag241",
+ "name": "WCAG 2.4.1",
+ "shortDescription": {
+ "text": "Bypass Blocks"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/bypass-blocks"
+ },
+ {
+ "id": "wcag2410",
+ "name": "WCAG 2.4.10",
+ "shortDescription": {
+ "text": "Section Headings"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/section-headings"
+ },
+ {
+ "id": "wcag242",
+ "name": "WCAG 2.4.2",
+ "shortDescription": {
+ "text": "Page Titled"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/page-titled"
+ },
+ {
+ "id": "wcag243",
+ "name": "WCAG 2.4.3",
+ "shortDescription": {
+ "text": "Focus Order"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/focus-order"
+ },
+ {
+ "id": "wcag244",
+ "name": "WCAG 2.4.4",
+ "shortDescription": {
+ "text": "Link Purpose (In Context)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-in-context"
+ },
+ {
+ "id": "wcag245",
+ "name": "WCAG 2.4.5",
+ "shortDescription": {
+ "text": "Multiple Ways"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/multiple-ways"
+ },
+ {
+ "id": "wcag246",
+ "name": "WCAG 2.4.6",
+ "shortDescription": {
+ "text": "Headings and Labels"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/headings-and-labels"
+ },
+ {
+ "id": "wcag247",
+ "name": "WCAG 2.4.7",
+ "shortDescription": {
+ "text": "Focus Visible"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/focus-visible"
+ },
+ {
+ "id": "wcag248",
+ "name": "WCAG 2.4.8",
+ "shortDescription": {
+ "text": "Location"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/location"
+ },
+ {
+ "id": "wcag249",
+ "name": "WCAG 2.4.9",
+ "shortDescription": {
+ "text": "Link Purpose (Link Only)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-link-only"
+ },
+ {
+ "id": "wcag251",
+ "name": "WCAG 2.5.1",
+ "shortDescription": {
+ "text": "Pointer Gestures"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/pointer-gestures"
+ },
+ {
+ "id": "wcag252",
+ "name": "WCAG 2.5.2",
+ "shortDescription": {
+ "text": "Pointer Cancellation"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/pointer-cancellation"
+ },
+ {
+ "id": "wcag253",
+ "name": "WCAG 2.5.3",
+ "shortDescription": {
+ "text": "Label in Name"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/label-in-name"
+ },
+ {
+ "id": "wcag254",
+ "name": "WCAG 2.5.4",
+ "shortDescription": {
+ "text": "Motion Actuation"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/motion-actuation"
+ },
+ {
+ "id": "wcag255",
+ "name": "WCAG 2.5.5",
+ "shortDescription": {
+ "text": "Target Size"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/target-size"
+ },
+ {
+ "id": "wcag256",
+ "name": "WCAG 2.5.6",
+ "shortDescription": {
+ "text": "Concurrent Input Mechanisms"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/concurrent-input-mechanisms"
+ },
+ {
+ "id": "wcag311",
+ "name": "WCAG 3.1.1",
+ "shortDescription": {
+ "text": "Language of Page"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/language-of-page"
+ },
+ {
+ "id": "wcag312",
+ "name": "WCAG 3.1.2",
+ "shortDescription": {
+ "text": "Language of Parts"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/language-of-parts"
+ },
+ {
+ "id": "wcag313",
+ "name": "WCAG 3.1.3",
+ "shortDescription": {
+ "text": "Unusual Words"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/unusual-words"
+ },
+ {
+ "id": "wcag314",
+ "name": "WCAG 3.1.4",
+ "shortDescription": {
+ "text": "Abbreviations"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/abbreviations"
+ },
+ {
+ "id": "wcag315",
+ "name": "WCAG 3.1.5",
+ "shortDescription": {
+ "text": "Reading Level"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/reading-level"
+ },
+ {
+ "id": "wcag316",
+ "name": "WCAG 3.1.6",
+ "shortDescription": {
+ "text": "Pronunciation"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/pronunciation"
+ },
+ {
+ "id": "wcag321",
+ "name": "WCAG 3.2.1",
+ "shortDescription": {
+ "text": "On Focus"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/on-focus"
+ },
+ {
+ "id": "wcag322",
+ "name": "WCAG 3.2.2",
+ "shortDescription": {
+ "text": "On Input"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/on-input"
+ },
+ {
+ "id": "wcag323",
+ "name": "WCAG 3.2.3",
+ "shortDescription": {
+ "text": "Consistent Navigation"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/consistent-navigation"
+ },
+ {
+ "id": "wcag324",
+ "name": "WCAG 3.2.4",
+ "shortDescription": {
+ "text": "Consistent Identification"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/consistent-identification"
+ },
+ {
+ "id": "wcag325",
+ "name": "WCAG 3.2.5",
+ "shortDescription": {
+ "text": "Change on Request"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/change-on-request"
+ },
+ {
+ "id": "wcag331",
+ "name": "WCAG 3.3.1",
+ "shortDescription": {
+ "text": "Error Identification"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/error-identification"
+ },
+ {
+ "id": "wcag332",
+ "name": "WCAG 3.3.2",
+ "shortDescription": {
+ "text": "Labels or Instructions"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/labels-or-instructions"
+ },
+ {
+ "id": "wcag333",
+ "name": "WCAG 3.3.3",
+ "shortDescription": {
+ "text": "Error Suggestion"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/error-suggestion"
+ },
+ {
+ "id": "wcag334",
+ "name": "WCAG 3.3.4",
+ "shortDescription": {
+ "text": "Error Prevention (Legal, Financial, Data)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/error-prevention-legal-financial-data"
+ },
+ {
+ "id": "wcag335",
+ "name": "WCAG 3.3.5",
+ "shortDescription": {
+ "text": "Help"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/help"
+ },
+ {
+ "id": "wcag336",
+ "name": "WCAG 3.3.6",
+ "shortDescription": {
+ "text": "Error Prevention (All)"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/error-prevention-all"
+ },
+ {
+ "id": "wcag411",
+ "name": "WCAG 4.1.1",
+ "shortDescription": {
+ "text": "Parsing"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/parsing"
+ },
+ {
+ "id": "wcag412",
+ "name": "WCAG 4.1.2",
+ "shortDescription": {
+ "text": "Name, Role, Value"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value"
+ },
+ {
+ "id": "wcag413",
+ "name": "WCAG 4.1.3",
+ "shortDescription": {
+ "text": "Status Messages"
+ },
+ "helpUri": "https://www.w3.org/WAI/WCAG21/Understanding/status-messages"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/test-resources/generator/package.json b/src/test-resources/generator/package.json
index 0dbb3aee..7c4b999c 100644
--- a/src/test-resources/generator/package.json
+++ b/src/test-resources/generator/package.json
@@ -14,7 +14,7 @@
"@axe-core/cli": "^4.4.2",
"@axe-core/puppeteer": "^4.4.2",
"@types/node": "^14.18.13",
- "axe-core": "4.3.2",
+ "axe-core": "4.4.1",
"chromedriver": "^100.0.0",
"puppeteer": "^13.5.2",
"typescript": "^4.6.3"
diff --git a/src/test-resources/generator/yarn.lock b/src/test-resources/generator/yarn.lock
index 40ce7e45..f82073b8 100644
--- a/src/test-resources/generator/yarn.lock
+++ b/src/test-resources/generator/yarn.lock
@@ -91,12 +91,7 @@ array-union@^2.1.0:
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
-axe-core@4.3.2:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.2.tgz#fcf8777b82c62cfc69c7e9f32c0d2226287680e7"
- integrity sha512-5LMaDRWm8ZFPAEdzTYmgjjEdj1YnQcpfrVajO/sn/LhbpGp0Y0H64c2hLZI1gRMxfA+w1S71Uc/nHaOXgcCvGg==
-
-axe-core@^4.4.1:
+axe-core@4.4.1, axe-core@^4.4.1:
version "4.4.1"
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413"
integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==
diff --git a/src/test-resources/w3citylights-axe-v4.4.1.axe-cli-v4.4.2.json b/src/test-resources/w3citylights-axe-v4.4.1.axe-cli-v4.4.2.json
new file mode 100644
index 00000000..fbb2d3d9
--- /dev/null
+++ b/src/test-resources/w3citylights-axe-v4.4.1.axe-cli-v4.4.2.json
@@ -0,0 +1,17379 @@
+[
+ {
+ "testEngine": {
+ "name": "axe-core",
+ "version": "4.4.1"
+ },
+ "testRunner": {
+ "name": "axe"
+ },
+ "testEnvironment": {
+ "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/100.0.4896.127 Safari/537.36",
+ "windowWidth": 800,
+ "windowHeight": 600,
+ "orientationAngle": 0,
+ "orientationType": "landscape-primary"
+ },
+ "timestamp": "2022-04-19T00:35:20.031Z",
+ "url": "https://www.w3.org/WAI/demos/bad/before/home.html",
+ "toolOptions": {
+ "reporter": "v1"
+ },
+ "inapplicable": [
+ {
+ "id": "accesskeys",
+ "impact": null,
+ "tags": [
+ "cat.keyboard",
+ "best-practice"
+ ],
+ "description": "Ensures every accesskey attribute value is unique",
+ "help": "accesskey attribute value should be unique",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/accesskeys?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "area-alt",
+ "impact": null,
+ "tags": [
+ "cat.text-alternatives",
+ "wcag2a",
+ "wcag111",
+ "wcag244",
+ "wcag412",
+ "section508",
+ "section508.22.a",
+ "ACT"
+ ],
+ "description": "Ensures elements of image maps have alternate text",
+ "help": "Active elements must have alternate text",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/area-alt?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-allowed-attr",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag412"
+ ],
+ "description": "Ensures ARIA attributes are allowed for an element's role",
+ "help": "Elements must only use allowed ARIA attributes",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-allowed-attr?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-allowed-role",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "best-practice"
+ ],
+ "description": "Ensures role attribute has an appropriate value for the element",
+ "help": "ARIA role should be appropriate for the element",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-allowed-role?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-command-name",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag412"
+ ],
+ "description": "Ensures every ARIA button, link and menuitem has an accessible name",
+ "help": "ARIA commands must have an accessible name",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-command-name?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-dialog-name",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "best-practice"
+ ],
+ "description": "Ensures every ARIA dialog and alertdialog node has an accessible name",
+ "help": "ARIA dialog and alertdialog nodes should have an accessible name",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-dialog-name?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-hidden-focus",
+ "impact": null,
+ "tags": [
+ "cat.name-role-value",
+ "wcag2a",
+ "wcag412",
+ "wcag131"
+ ],
+ "description": "Ensures aria-hidden elements do not contain focusable elements",
+ "help": "ARIA hidden element must not contain focusable elements",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-hidden-focus?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-input-field-name",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag412",
+ "ACT"
+ ],
+ "description": "Ensures every ARIA input field has an accessible name",
+ "help": "ARIA input fields must have an accessible name",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-input-field-name?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-meter-name",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag111"
+ ],
+ "description": "Ensures every ARIA meter node has an accessible name",
+ "help": "ARIA meter nodes must have an accessible name",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-meter-name?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-progressbar-name",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag111"
+ ],
+ "description": "Ensures every ARIA progressbar node has an accessible name",
+ "help": "ARIA progressbar nodes must have an accessible name",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-progressbar-name?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-required-attr",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag412"
+ ],
+ "description": "Ensures elements with ARIA roles have all required ARIA attributes",
+ "help": "Required ARIA attributes must be provided",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-required-attr?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-required-children",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag131"
+ ],
+ "description": "Ensures elements with an ARIA role that require child roles contain them",
+ "help": "Certain ARIA roles must contain particular children",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-required-children?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-required-parent",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag131"
+ ],
+ "description": "Ensures elements with an ARIA role that require parent roles are contained by them",
+ "help": "Certain ARIA roles must be contained by particular parents",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-required-parent?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-roledescription",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag412"
+ ],
+ "description": "Ensure aria-roledescription is only used on elements with an implicit or explicit role",
+ "help": "aria-roledescription must be on elements with a semantic role",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-roledescription?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-roles",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag412"
+ ],
+ "description": "Ensures all elements with a role attribute use a valid value",
+ "help": "ARIA roles used must conform to valid values",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-roles?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-text",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "best-practice"
+ ],
+ "description": "Ensures \"role=text\" is used on elements with no focusable descendants",
+ "help": "\"role=text\" should have no focusable descendants",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-text?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-toggle-field-name",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag412",
+ "ACT"
+ ],
+ "description": "Ensures every ARIA toggle field has an accessible name",
+ "help": "ARIA toggle fields must have an accessible name",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-toggle-field-name?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-tooltip-name",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag412"
+ ],
+ "description": "Ensures every ARIA tooltip node has an accessible name",
+ "help": "ARIA tooltip nodes must have an accessible name",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-tooltip-name?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-treeitem-name",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "best-practice"
+ ],
+ "description": "Ensures every ARIA treeitem node has an accessible name",
+ "help": "ARIA treeitem nodes should have an accessible name",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-treeitem-name?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-valid-attr-value",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag412"
+ ],
+ "description": "Ensures all ARIA attributes have valid values",
+ "help": "ARIA attributes must conform to valid values",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-valid-attr-value?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "aria-valid-attr",
+ "impact": null,
+ "tags": [
+ "cat.aria",
+ "wcag2a",
+ "wcag412"
+ ],
+ "description": "Ensures attributes that begin with aria- are valid ARIA attributes",
+ "help": "ARIA attributes must conform to valid names",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/aria-valid-attr?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "autocomplete-valid",
+ "impact": null,
+ "tags": [
+ "cat.forms",
+ "wcag21aa",
+ "wcag135"
+ ],
+ "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
+ "help": "autocomplete attribute must be used correctly",
+ "helpUrl": "https://dequeuniversity.com/rules/axe/4.4/autocomplete-valid?application=webdriverjs",
+ "nodes": []
+ },
+ {
+ "id": "blink",
+ "impact": null,
+ "tags": [
+ "cat.time-and-media",
+ "wcag2a",
+ "wcag222",
+ "section508",
+ "section508.22.j"
+ ],
+ "description": "Ensures