Skip to content

Commit

Permalink
feat(axe-core-4.6): Update axe-core to 4.6.3 (#918)
Browse files Browse the repository at this point in the history
#### Details
This PR updates the repo to use axe-core 4.6.3
<!-- Usually a sentence or two describing what the PR changes -->

##### Motivation
We are updating Accessibility Insights products to use axe-core 4.6.3
<!-- This can be as simple as "addresses issue #123" -->

##### Context
The first few commits represent the update to axe-core 4.6.3 and
updating the main tests for the repo. The last part of the PR (handled
by @shanisebarona) will update the wcag-link-data.test to account for
the fact that axe-core 4.6.3 references one success criterion from WCAG
2.2.
<!-- Are there any parts that you've intentionally left out-of-scope for
a later PR to handle? -->

<!-- Were there any alternative approaches you considered? What
tradeoffs did you consider? -->
Yes. We considered updating the converter files and related wcag-link
components to account for two WCAG versions, but this proved more
complicated than what seemed reasonable based on the amount of support
it would provide to users. Instead, we've opted to not reference the 1
WCAG 2.2 criterion.
#### Pull request checklist
<!-- If a checklist item is not applicable to this change, write "n/a"
in the checkbox -->
- [X] PR title respects [Conventional
Commits](https://www.conventionalcommits.org) (starts with `fix:`,
`feat:`, etc, and is suitable for user-facing release notes)
- [X] PR contains no breaking changes, **OR** description of both PR
**and final merge commit** starts with `BREAKING CHANGE:`
- [N/A ] (if applicable) Addresses issue: #0000
- [X] Added relevant unit tests for your changes
- [ ] Ran `yarn precheckin`
- [ ] Verified code coverage for the changes made

---------

Co-authored-by: SB <[email protected]>
  • Loading branch information
JGibson2019 and shanisebarona authored Feb 7, 2023
1 parent f2f5628 commit 451e891
Show file tree
Hide file tree
Showing 18 changed files with 107,572 additions and 23 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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, 4.3.2, and 4.4.1) 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, 4.4.1, and 4.6.3) 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.
Expand Down
8 changes: 4 additions & 4 deletions src/__snapshots__/index.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -1388,15 +1388,15 @@ Object {
],
"tool": Object {
"driver": Object {
"downloadUri": "https://www.npmjs.com/package/axe-core/v/4.4.1",
"fullName": "axe for Web v4.4.1",
"downloadUri": "https://www.npmjs.com/package/axe-core/v/4.6.3",
"fullName": "axe for Web v4.6.3",
"informationUri": "https://www.deque.com/axe/axe-for-web/",
"name": "axe-core",
"properties": Object {
"microsoft/qualityDomain": "Accessibility",
},
"rules": Array [],
"semanticVersion": "4.4.1",
"semanticVersion": "4.6.3",
"shortDescription": Object {
"text": "An open source accessibility rules library for automated testing.",
},
Expand All @@ -1407,7 +1407,7 @@ Object {
"name": "WCAG",
},
],
"version": "4.4.1",
"version": "4.6.3",
},
},
},
Expand Down
2 changes: 2 additions & 0 deletions src/cli.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ describe('axe-sarif-converter CLI', () => {
${'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'}
${'basic-axe-v4.6.3.axe-cli-v4.6.0.json'}
${'w3citylights-axe-v4.6.3.axe-cli-v4.6.0.json'}
`(
'supports conversion from axe-cli output $inputFile',
async ({ inputFile }) => {
Expand Down
6 changes: 5 additions & 1 deletion src/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,10 @@ describe('public convertAxeToSarif API', () => {
${'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'}
${'basic-axe-v4.6.3.reporter-v1.json'} | ${'basic-axe-v4.6.3.sarif'}
${'basic-axe-v4.6.3.reporter-v2.json'} | ${'basic-axe-v4.6.3.sarif'}
${'w3citylights-axe-v4.6.3.reporter-v1.json'} | ${'w3citylights-axe-v4.6.3.sarif'}
${'w3citylights-axe-v4.6.3.reporter-v2.json'} | ${'w3citylights-axe-v4.6.3.sarif'}
`(
'converts pinned v1/v2 input $inputFile to pinned output $outputFile',
({ inputFile, outputFile }) => {
Expand Down Expand Up @@ -151,7 +155,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.4.1.reporter-raw.json'} | ${'basic-axe-v4.4.1.sarif'}
${'basic-axe-v4.6.3.reporter-raw.json'} | ${'basic-axe-v4.6.3.sarif'}
`(
'converts pinned raw input $inputFile to pinned output $outputFile',
async ({ inputFile, outputFile }) => {
Expand Down
68 changes: 68 additions & 0 deletions src/test-resources/basic-axe-v4.6.3.axe-cli-v4.6.0.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
[
{
"testEngine": {
"name": "axe-core",
"version": "4.6.3"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.120 Safari/537.36",
"windowWidth": 800,
"windowHeight": 600,
"orientationAngle": 0,
"orientationType": "landscape-primary"
},
"timestamp": "2023-02-07T17:56:33.760Z",
"url": "file:///C:/Users/jagibson/repos/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 <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.6/document-title?application=webdriverjs",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document does not have a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<html class=\"deque-axe-is-ready\"><head></head><body>\n</body><script>document.documentElement.classList.add(\"deque-axe-is-ready\");</script></html>",
"target": [
"html"
],
"failureSummary": "Fix any of the following:\n Document does not have a non-empty <title> element"
}
]
}
]
}
]
52 changes: 52 additions & 0 deletions src/test-resources/basic-axe-v4.6.3.reporter-raw.json
Original file line number Diff line number Diff line change
@@ -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 <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.6/document-title?application=axe-puppeteer",
"inapplicable": [],
"passes": [],
"incomplete": [],
"violations": [
{
"node": {
"selector": [
"html"
],
"source": "<html><head></head><body>\n</body></html>",
"xpath": [
"/html"
],
"ancestry": [
"html"
],
"nodeIndexes": [
0
]
},
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document does not have a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": "serious",
"result": "failed"
}
]
}
]
70 changes: 70 additions & 0 deletions src/test-resources/basic-axe-v4.6.3.reporter-v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"testEngine": {
"name": "axe-core",
"version": "4.6.3"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/101.0.4950.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 <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.6/document-title?application=axe-puppeteer",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document does not have a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<html><head></head><body>\n</body></html>",
"target": [
"html"
],
"xpath": [
"/html"
],
"failureSummary": "Fix any of the following:\n Document does not have a non-empty <title> element"
}
]
}
]
}
69 changes: 69 additions & 0 deletions src/test-resources/basic-axe-v4.6.3.reporter-v2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"testEngine": {
"name": "axe-core",
"version": "4.6.3"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/101.0.4950.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 <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.6/document-title?application=axe-puppeteer",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document does not have a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<html><head></head><body>\n</body></html>",
"target": [
"html"
],
"xpath": [
"/html"
]
}
]
}
]
}
Loading

0 comments on commit 451e891

Please sign in to comment.