From bdce2bfb04ebadfce0df16d03dc6e2e268090b70 Mon Sep 17 00:00:00 2001 From: Sergey Kozyrenko Date: Sat, 25 Jul 2026 04:04:00 +0700 Subject: [PATCH] test(e2e): require the button tag on the /resources Select waiver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The target-size waiver matched a bare `aria-label="Select `, so any control on the page labelled "Select …" — not just the file-manager row-select buttons — was waived. axe emits those buttons as `button[aria-label="Select "]` with no parent path, so the label is the only anchor available; requiring the button tag at least stops a future non-button "Select …" control from slipping the rule. /resources a11y stays green; a div/anchor "Select" is now caught. Co-Authored-By: Claude Opus 4.8 --- frontend/e2e/routes.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/frontend/e2e/routes.ts b/frontend/e2e/routes.ts index d78d75eb..a6ef2c01 100644 --- a/frontend/e2e/routes.ts +++ b/frontend/e2e/routes.ts @@ -152,9 +152,11 @@ export const ROUTE_MANIFEST: RouteManifestEntry[] = [ // target floor — widening them is a density decision for the file manager. a11yWaivers: [ { rule: 'color-contrast', target: /text-muted-foreground\\?\/80/ }, - // `.rounded` unanchored would also match every rounded-* utility, so a - // future under-sized control anywhere on the page would be waived too. - { rule: 'target-size', target: /\.rounded(?![-\w])|aria-label="Select / }, + // `.rounded` is anchored with a boundary so it can't match every rounded-* utility. axe + // emits the row-select buttons as a bare `button[aria-label="Select "]` with no + // parent path, so the label is the only available anchor — require the button tag at + // least, rather than a bare `aria-label="Select ` that would also waive a non-button. + { rule: 'target-size', target: /\.rounded(?![-\w])|button\[aria-label="Select / }, ], cassette: resourcesCassette, path: routes.resources,