From ede14cd1d461a7d9e5b938fc480f69a3bf07d36b Mon Sep 17 00:00:00 2001 From: olitreadwell Date: Wed, 26 Aug 2026 10:56:43 +0000 Subject: [PATCH] fix(a11y): add accessible labels to seed comment form controls --- client-admin/package-lock.json | 123 +++++++++++++++++- client-admin/package.json | 1 + .../conversation-admin/ModerateCommentSeed.js | 8 +- .../ModerateCommentSeed.test.js | 20 +++ 4 files changed, 148 insertions(+), 4 deletions(-) diff --git a/client-admin/package-lock.json b/client-admin/package-lock.json index f627cf7cf0..0a19e4ab78 100644 --- a/client-admin/package-lock.json +++ b/client-admin/package-lock.json @@ -51,6 +51,7 @@ "html-webpack-tags-plugin": "~3.0.2", "identity-obj-proxy": "^3.0.0", "jest": "^30.2.0", + "jest-axe": "^11.0.0", "jest-environment-jsdom": "^30.2.0", "jest-transform-stub": "^2.0.0", "prettier": "^3.7.4", @@ -5301,9 +5302,9 @@ } }, "node_modules/axe-core": { - "version": "4.10.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", - "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz", + "integrity": "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==", "dev": true, "license": "MPL-2.0", "engines": { @@ -10088,6 +10089,106 @@ } } }, + "node_modules/jest-axe": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/jest-axe/-/jest-axe-11.0.0.tgz", + "integrity": "sha512-JuLD/QzqDn5QxpFUMkbmf55GiI+sdutpryRD//rIRuyEefYAuMfQbQZ53TsNtZXKV3rjgfD4KKTKPY+2Ga1mGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "axe-core": "4.12.1", + "chalk": "4.1.2", + "jest-matcher-utils": "30.4.1", + "lodash.merge": "4.6.2" + }, + "engines": { + "node": ">= 18.0.0" + } + }, + "node_modules/jest-axe/node_modules/@jest/diff-sequences": { + "version": "30.4.0", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.4.0.tgz", + "integrity": "sha512-zOpzlfUs45l6u7jm39qr87JCHUDsaeCtvL+kQe/Vn9jSnRB4/5IPXISm0h9I1vZW/o00Kn4UTJ2MOlhnUGwv3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-axe/node_modules/@jest/schemas": { + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.4.1.tgz", + "integrity": "sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-axe/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-axe/node_modules/jest-diff": { + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.4.1.tgz", + "integrity": "sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "30.4.0", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.4.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-axe/node_modules/jest-matcher-utils": { + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.4.1.tgz", + "integrity": "sha512-zvYfX5CaeEkFrrLS9suWe9rvJrm9J1Iv3ua8kIBv9GEPzcnsfBf0bob37la7s67fs0nlBC3EuvkOLnXQKxtx4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.4.1", + "pretty-format": "30.4.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-axe/node_modules/pretty-format": { + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.4.1.tgz", + "integrity": "sha512-K6KiKMHTL4jjX4u3Kir2EW07nRfcqVTXIImx50wbjHQTcZPgg+gjVeNTIT3l3L1Rd4UefxfogquC9J37SoFyyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.4.1", + "ansi-styles": "^5.2.0", + "react-is-18": "npm:react-is@^18.3.1", + "react-is-19": "npm:react-is@^19.2.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/jest-changed-files": { "version": "30.2.0", "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz", @@ -13558,6 +13659,22 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, + "node_modules/react-is-18": { + "name": "react-is", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-is-19": { + "name": "react-is", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.8.tgz", + "integrity": "sha512-s5un28nYxKJw5gvUHyW5PCC28CvBqLu9r3cWgzHT4Vo/5fqqkFcdRYsGcKf50WMPpjjFZS5d76fn3YCo2njKwQ==", + "dev": true, + "license": "MIT" + }, "node_modules/react-oidc-context": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/react-oidc-context/-/react-oidc-context-3.3.0.tgz", diff --git a/client-admin/package.json b/client-admin/package.json index 9b6ecb3bb4..dc2559be27 100644 --- a/client-admin/package.json +++ b/client-admin/package.json @@ -45,6 +45,7 @@ "html-webpack-tags-plugin": "~3.0.2", "identity-obj-proxy": "^3.0.0", "jest": "^30.2.0", + "jest-axe": "^11.0.0", "jest-environment-jsdom": "^30.2.0", "jest-transform-stub": "^2.0.0", "prettier": "^3.7.4", diff --git a/client-admin/src/components/conversation-admin/ModerateCommentSeed.js b/client-admin/src/components/conversation-admin/ModerateCommentSeed.js index 4240fcb19b..5f84595688 100644 --- a/client-admin/src/components/conversation-admin/ModerateCommentSeed.js +++ b/client-admin/src/components/conversation-admin/ModerateCommentSeed.js @@ -98,6 +98,7 @@ const ModerateCommentsSeed = ({ params }) => { border: '1px solid', borderColor: 'mediumGray' }} + aria-label="Seed comment text" onChange={handleTextareaChange} maxLength="400" data-testid="seed_form" @@ -150,7 +151,12 @@ const ModerateCommentsSeed = ({ params }) => { )} - +