From f02e0fb5d56340cefa36d9de7aaea01fb88fda92 Mon Sep 17 00:00:00 2001 From: Tyler Burton Date: Wed, 15 Jan 2025 14:28:22 -0600 Subject: [PATCH] testing pa11y with new config --- .github/workflows/content_scan.yml | 5 +- .pa11yci.js | 11 ++ package-lock.json | 273 +++++++++++++++-------------- package.json | 13 +- styles/vendor/timeline.css | 3 +- 5 files changed, 165 insertions(+), 140 deletions(-) create mode 100644 .pa11yci.js diff --git a/.github/workflows/content_scan.yml b/.github/workflows/content_scan.yml index 383e9a62..c4f441ac 100644 --- a/.github/workflows/content_scan.yml +++ b/.github/workflows/content_scan.yml @@ -25,7 +25,10 @@ jobs: shell: bash run: npm install - - name: Build eleventy and run cypress + - name: Build eleventy and run pa11y-ci + run: npm run pa11y-ci:gh + + - name: Run cypress run: npm run cypress:gh - name: cypress-artifacs diff --git a/.pa11yci.js b/.pa11yci.js new file mode 100644 index 00000000..b2562740 --- /dev/null +++ b/.pa11yci.js @@ -0,0 +1,11 @@ +module.exports = { + defaults: { + concurrency: 1, + // We're ignoring iframe elements because they're not used on the site, yet + // DAP inserts an iframe into the DOM, and that iframe causes pa11y errors. + hideElements: "iframe", + chromeLaunchConfig: { + args: ["--no-sandbox"] + }, + }, +}; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 15a805b3..d151dc93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -387,7 +387,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", "engines": { @@ -2047,15 +2049,6 @@ "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", "dev": true }, - "node_modules/axe-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.4.tgz", - "integrity": "sha512-9AiDKFKUCWEQm1Kj4lcq7KFavLqSXdf2m/zJo+NVh4VXlW5iwXRJ6alkKmipCyYorsRnqsICH9XLubP1jBF+Og==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/axios": { "version": "1.7.7", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", @@ -2067,6 +2060,13 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/babel-walk": { "version": "3.0.0-canary-5", "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", @@ -2172,21 +2172,6 @@ "tweetnacl": "^0.14.3" } }, - "node_modules/bfj": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", - "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "dev": true, @@ -2513,7 +2498,8 @@ "version": "11.2.3", "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cheerio": { "version": "1.0.0-rc.10", @@ -3350,17 +3336,6 @@ "node": ">=8.12.0" } }, - "node_modules/cypress/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/cypress/node_modules/proxy-from-env": { "version": "1.0.0", "dev": true, @@ -3374,20 +3349,6 @@ "throttleit": "^1.0.0" } }, - "node_modules/cypress/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/cypress/node_modules/supports-color": { "version": "8.1.1", "dev": true, @@ -3804,18 +3765,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/errno": { "version": "0.1.8", "dev": true, @@ -4950,6 +4899,7 @@ "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6.0.0" } @@ -6936,31 +6886,6 @@ "node": ">=6" } }, - "node_modules/pa11y": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/pa11y/-/pa11y-6.2.3.tgz", - "integrity": "sha512-69JoUlfW2QVmrgQAm+17XBxIvmd1u0ImFBYIHPyjC61CzAkmxO3kkbqDVxIcl0OKLvAMYSMbvfCH8kMFE9xsbg==", - "dev": true, - "dependencies": { - "axe-core": "~4.2.1", - "bfj": "~7.0.2", - "commander": "~8.0.0", - "envinfo": "~7.8.1", - "html_codesniffer": "~2.5.1", - "kleur": "~4.1.4", - "mustache": "~4.2.0", - "node.extend": "~2.0.2", - "p-timeout": "~4.1.0", - "puppeteer": "~9.1.1", - "semver": "~7.3.5" - }, - "bin": { - "pa11y": "bin/pa11y.js" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/pa11y-ci": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/pa11y-ci/-/pa11y-ci-3.1.0.tgz", @@ -7005,6 +6930,32 @@ "lodash": "^4.17.14" } }, + "node_modules/pa11y-ci/node_modules/axe-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.4.tgz", + "integrity": "sha512-9AiDKFKUCWEQm1Kj4lcq7KFavLqSXdf2m/zJo+NVh4VXlW5iwXRJ6alkKmipCyYorsRnqsICH9XLubP1jBF+Og==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/pa11y-ci/node_modules/bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/pa11y-ci/node_modules/commander": { "version": "6.2.1", "dev": true, @@ -7013,6 +6964,19 @@ "node": ">= 6" } }, + "node_modules/pa11y-ci/node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/pa11y-ci/node_modules/globby": { "version": "6.1.0", "dev": true, @@ -7028,20 +6992,77 @@ "node": ">=0.10.0" } }, - "node_modules/pa11y/node_modules/commander": { + "node_modules/pa11y-ci/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pa11y-ci/node_modules/p-timeout": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", + "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/pa11y-ci/node_modules/pa11y": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/pa11y/-/pa11y-6.2.3.tgz", + "integrity": "sha512-69JoUlfW2QVmrgQAm+17XBxIvmd1u0ImFBYIHPyjC61CzAkmxO3kkbqDVxIcl0OKLvAMYSMbvfCH8kMFE9xsbg==", + "dev": true, + "license": "LGPL-3.0-only", + "dependencies": { + "axe-core": "~4.2.1", + "bfj": "~7.0.2", + "commander": "~8.0.0", + "envinfo": "~7.8.1", + "html_codesniffer": "~2.5.1", + "kleur": "~4.1.4", + "mustache": "~4.2.0", + "node.extend": "~2.0.2", + "p-timeout": "~4.1.0", + "puppeteer": "~9.1.1", + "semver": "~7.3.5" + }, + "bin": { + "pa11y": "bin/pa11y.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/pa11y-ci/node_modules/pa11y/node_modules/commander": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.0.0.tgz", "integrity": "sha512-Xvf85aAtu6v22+E5hfVoLHqyul/jyxh91zvqk/ioJTQuJR7Z78n7H558vMPKanPSRgIEeZemT92I2g9Y8LPbSQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12" } }, - "node_modules/pa11y/node_modules/p-timeout": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", - "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==", + "node_modules/pa11y-ci/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, "engines": { "node": ">=10" } @@ -8594,12 +8615,11 @@ } }, "node_modules/semver": { - "version": "7.3.8", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -8612,17 +8632,6 @@ "dev": true, "license": "MIT" }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/send": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", @@ -8808,18 +8817,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/sharp/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "dev": true, @@ -9122,13 +9119,15 @@ } }, "node_modules/streamx": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", - "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.1.tgz", + "integrity": "sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==", "dev": true, + "license": "MIT", "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" }, "optionalDependencies": { "bare-events": "^2.2.0" @@ -9379,6 +9378,16 @@ "streamx": "^2.12.5" } }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/text-hex": { "version": "1.0.0", "dev": true, @@ -9495,7 +9504,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tslib": { "version": "2.6.2", @@ -9983,10 +9993,11 @@ "license": "ISC" }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -10034,7 +10045,9 @@ } }, "node_modules/yargs": { - "version": "17.6.2", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index e951b0c7..9d491512 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "clean": "rimraf _site", "cypress:open": "npx cypress open", "cypress:run": "npx cypress run", - "cypress:gh": "npx start-server-and-test start 8080 cypress:run", + "cypress:gh": "npx start-server-and-test http://localhost:8080 cypress:run", "dev": "npm run clean && npm-run-all -p dev:assets dev:serve", "dev:clean": "npm run clean && npm run dev", "dev:assets": "npm run assets:refresh && npm run assets:watch", @@ -24,14 +24,13 @@ "dev:serve": "npx @11ty/eleventy --serve --watch", "dev:cms": "npx netlify-cms-proxy-server", "qa": "", - "pa11y-ci": "pa11y-ci --sitemap http://localhost:8080/sitemap.xml --sitemap-exclude \"(/admin|/contact)\" --sitemap-find \"https://data.gov/\" --sitemap-replace \"http://localhost:8080/\"", - "pa11y-ci:gh": "npx start-server-and-test start 8080 pa11y-ci", + "pa11y-ci": "pa11y-ci --sitemap http://data.gov/sitemap.xml --sitemap-exclude \"(/admin|/contact)\" --sitemap-find \"https://data.gov/\" --sitemap-replace \"http://localhost:8080/\"", + "pa11y-ci:gh": "npx start-server-and-test http://localhost:8080 pa11y-ci", "pages": "npm run build", "serve": "npx @11ty/eleventy --serve", "start": "npx @11ty/eleventy --serve", - "test": "npm run pa11y-ci:gh", - "test:local": "npm run woke; npm run cypress:run; npm run pa11y-ci", - "woke": "woke" + "test": "", + "test:local": "npm run cypress:run; npm run pa11y-ci" }, "author": "", "license": "CC0-1.0", @@ -70,4 +69,4 @@ "markdown-it-attrs": "^4.3.1", "turndown": "^7.2.0" } -} +} \ No newline at end of file diff --git a/styles/vendor/timeline.css b/styles/vendor/timeline.css index 34511240..cb654c92 100644 --- a/styles/vendor/timeline.css +++ b/styles/vendor/timeline.css @@ -2545,8 +2545,7 @@ small, color: inherit; } .color-contrast-medium { - color: hsl(240, 1%, 48%); - color: var(--color-contrast-medium, #79797c); + color: #767679; } .color-contrast-high { color: hsl(240, 4%, 20%);