-
Notifications
You must be signed in to change notification settings - Fork 0
Automated WCAG 2.1 AA a11y testing across all themes/modes #38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
sjoerdbeentjes
wants to merge
38
commits into
main
Choose a base branch
from
feat/a11y-testing
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
38 commits
Select commit
Hold shift + click to select a range
155c141
Add a11y config and audit module to @surfnet/storybook-config
sjoerdbeentjes 3efa711
Wire WCAG 2.1 AA audit into React and Angular Storybooks
sjoerdbeentjes 05d383b
Add test:a11y workspace script, Turbo task, and CI step
sjoerdbeentjes 846c602
Reorder storybook:serve before test:a11y in package scripts
sjoerdbeentjes 5ae42c8
Write a11y reports to git-ignored .a11y-report dir
sjoerdbeentjes 46b9672
Group a11y comment by component → theme → mode
sjoerdbeentjes 89e8005
Split component and variation into h4/h5 in a11y comment
sjoerdbeentjes de5e010
Collapse theme-independent a11y findings to one per variation
sjoerdbeentjes e0f82c9
Add link-in-text-block WCAG ref (1.4.1) to a11y comment
sjoerdbeentjes 93eec90
Move playwright dep from react to storybook-config, scope CI install …
sjoerdbeentjes c170730
Stabilise a11y audit and trim comments
sjoerdbeentjes 643bae6
Adopt @surfnet/curve-* package names; note headless run in a11y CI
sjoerdbeentjes 8599669
Inline a11y-comment script call in CI, drop a11y:comment workspace sc…
sjoerdbeentjes bba3d48
Capture and embed a11y violation screenshots
sjoerdbeentjes a2532d0
Drop fixed width on a11y comment screenshots
sjoerdbeentjes 98fe989
Update playwright to 1.61.1
sjoerdbeentjes 046e5c2
chore: Update tokens from Figma
anneke cf86998
fix: always give progress component a accessible name
anneke 834b43f
fix: use primary-strong for badges to increase contrast
anneke f736774
fix: add aria-attributes to combobox trigger button
anneke 051e307
fix: add aria-attributes to resizable handle
anneke 48e06f3
fix: combobox change breaking linter
anneke 8d45420
fix: combobox clear button missing label
anneke 12d9567
fix: curve data table needs label on button
anneke 6e56220
fix: Add aria-labels to buttons in input-group
anneke 78f29d0
fix: give nativeSelect accessible name
anneke 591849d
fix: input-OTP accessibility
anneke 6dad9fd
fix: breadcrumb accessibility, removed obsolete attributes
anneke 31bfa29
fix: add roles to command element
anneke 0d7fb1b
fix: add tabindex 0 to scroll element
anneke ce284e2
fixup fix: add roles to command element
anneke 1ab5d36
fix: set label on button
anneke 5e6b7d3
fix: improve layout of accessibility feedback
anneke 0076bbb
fix: remove Command (temporarily?)
anneke 950bc0e
fix: add missing aria-labels
anneke 01a8638
fix: improve layout of accessibility feedback
anneke f1f54e9
fix: improve layout of accessibility feedback
anneke 8b70bbb
fix: improve layout of accessibility feedback
anneke File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| --- | ||
| '@surfnet/curve-react': patch | ||
| '@surfnet/curve-angular': patch | ||
| --- | ||
|
|
||
| Use `--primary-strong` for link-style text (Badge `link`, and inline links in Field, Empty, and Item) so it meets contrast on the page background. Filled Primary is unchanged. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| --- | ||
| '@surfnet/curve-angular': patch | ||
| '@surfnet/curve-react': patch | ||
| --- | ||
|
|
||
| Wire combobox input trigger button `aria-expanded`, `aria-haspopup="listbox"`, and `aria-controls` to the listbox id. Add default `aria-label="Clear"` on the React clear button. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@surfnet/curve-react': patch | ||
| --- | ||
|
|
||
| Give Command a default accessible label ("Type a command or search...") so cmdk no longer renders an empty visually hidden label. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| --- | ||
| '@surfnet/curve-angular': patch | ||
| '@surfnet/curve-react': patch | ||
| --- | ||
|
|
||
| Keep Command empty state mounted in the DOM and announce it with `aria-live="polite"` and `aria-atomic`. Use `role="option"` (`aria-disabled`, `aria-selected="false"`) so the empty message is a valid listbox child, and mark separators as presentational so listboxes only expose `option` / `group` children. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@surfnet/curve-angular': patch | ||
| --- | ||
|
|
||
| Forward `aria-label` and `aria-labelledby` from Command Input onto the underlying combobox `<input>` so the accessible name is on the field assistive technology uses, not the wrapper. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@surfnet/curve-angular': patch | ||
| --- | ||
|
|
||
| Give the data table action-cell icon button and each menu item accessible names so the icon-only trigger and actions are announced by screen readers. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@surfnet/curve-angular': patch | ||
| --- | ||
|
|
||
| Forward `aria-label` from Input OTP onto the underlying input so unlabeled examples (and consumers) can name the field for assistive technology. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| --- | ||
| '@surfnet/curve-angular': patch | ||
| '@surfnet/curve-react': patch | ||
| --- | ||
|
|
||
| Announce Input OTP completion to screen readers with a polite live region so pasting a full code is perceivable. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@surfnet/curve-angular': patch | ||
| --- | ||
|
|
||
| Set `aria-grabbed` and `aria-valuenow` on Resizable handles, and expose an `isDragging` signal on the group and handle. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| --- | ||
| '@surfnet/curve-angular': patch | ||
| '@surfnet/curve-react': patch | ||
| --- | ||
|
|
||
| Always set `tabindex="0"` on ScrollArea so the scrollable region is keyboard-accessible, including before overflow is measured. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,31 +1,34 @@ | ||
| # dependencies | ||
| node_modules | ||
| .pnpm-store | ||
|
|
||
| # secrets | ||
| .env | ||
| .env.local | ||
|
|
||
| # build output | ||
| dist | ||
| storybook-static | ||
|
|
||
| # turbo | ||
| .turbo | ||
|
|
||
| # angular | ||
| .angular | ||
|
|
||
| # logs | ||
| *.log | ||
| npm-debug.log* | ||
| pnpm-debug.log* | ||
|
|
||
| # editor / os | ||
| .DS_Store | ||
| .vs | ||
| !.vscode | ||
| .vscode/* | ||
| !.vscode/extensions.json | ||
| !.vscode/mcp.json | ||
| .idea | ||
| # dependencies | ||
| node_modules | ||
| .pnpm-store | ||
|
|
||
| # secrets | ||
| .env | ||
| .env.local | ||
|
|
||
| # build output | ||
| dist | ||
| storybook-static | ||
|
|
||
| # accessibility audit reports | ||
| .a11y-report | ||
|
|
||
| # turbo | ||
| .turbo | ||
|
|
||
| # angular | ||
| .angular | ||
|
|
||
| # logs | ||
| *.log | ||
| npm-debug.log* | ||
| pnpm-debug.log* | ||
|
|
||
| # editor / os | ||
| .DS_Store | ||
| .vs | ||
| \!.vscode | ||
| .vscode/* | ||
| \!.vscode/extensions.json | ||
| \!.vscode/mcp.json | ||
| .idea |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| import type { TestRunnerConfig } from '@storybook/test-runner'; | ||
|
|
||
| import { runStoryA11yAudit } from '@surfnet/curve-storybook-config/test-runner'; | ||
|
|
||
| // Delegate to the shared audit so React and Angular stay in lockstep. | ||
| const config: TestRunnerConfig = { | ||
| async postVisit(page, context) { | ||
| await runStoryA11yAudit(page, context); | ||
| }, | ||
| }; | ||
|
|
||
| export default config; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hoe is de performance? Ik zou verwachten dat we in een CI-stap een headless browser gebruiken.