From c40f2c7c63f03e4cac2f9f65cf3ff5b45fd2926d Mon Sep 17 00:00:00 2001 From: Jennie Robinson Faber Date: Sun, 5 Apr 2026 21:59:02 +0100 Subject: [PATCH] fix: accessibility improvements and test infrastructure hardening Add aria-labels to form controls (selects, checkboxes, switches), set html lang attribute and page title, fix color contrast for --candle-dim and --text-faint tokens, underline inline links, remove opacity hack. Harden dev login endpoints with atomic findOneAndUpdate and tokenVersion in JWT. Update Playwright timeouts and E2E test helpers. --- app/assets/css/main.css | 5 +- app/layouts/admin.vue | 10 +- app/pages/admin/events/create.vue | 2 + app/pages/admin/members.vue | 4 +- app/pages/index.vue | 2 +- app/pages/member/profile.vue | 10 +- ...-events-create-desktop-chromium-darwin.png | Bin 0 -> 93739 bytes .../admin-members-desktop-chromium-darwin.png | Bin 0 -> 173259 bytes .../coming-soon-desktop-chromium-darwin.png | Bin 0 -> 18047 bytes .../coming-soon-mobile-chromium-darwin.png | Bin 0 -> 15618 bytes .../events-desktop-chromium-darwin.png | Bin 0 -> 87000 bytes .../events-mobile-chromium-darwin.png | Bin 0 -> 41656 bytes .../home-desktop-chromium-darwin.png | Bin 0 -> 130063 bytes .../home-mobile-chromium-darwin.png | Bin 0 -> 55761 bytes .../join-desktop-chromium-darwin.png | Bin 0 -> 127574 bytes .../join-mobile-chromium-darwin.png | Bin 0 -> 58990 bytes ...mber-dashboard-desktop-chromium-darwin.png | Bin 0 -> 105918 bytes ...member-profile-desktop-chromium-darwin.png | Bin 0 -> 120666 bytes e2e/a11y.spec.js | 11 +- e2e/admin-members.spec.js | 20 +- e2e/auth.spec.js | 54 +- e2e/coming-soon.spec.js | 2 +- e2e/events.spec.js | 6 +- e2e/helpers/auth.js | 20 +- e2e/join-flow.spec.js | 73 +- e2e/member-dashboard.spec.js | 11 +- e2e/member-profile.spec.js | 6 +- e2e/updates.spec.js | 18 +- nuxt.config.ts | 2 + package-lock.json | 644 ++++++++++++++++-- package.json | 3 + playwright.config.js | 2 + server/api/dev/member-login.get.js | 3 +- server/api/dev/test-login.get.js | 22 +- tests/server/api/dev-endpoints.test.js | 30 +- 35 files changed, 787 insertions(+), 173 deletions(-) create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/admin-events-create-desktop-chromium-darwin.png create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/admin-members-desktop-chromium-darwin.png create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/coming-soon-desktop-chromium-darwin.png create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/coming-soon-mobile-chromium-darwin.png create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/events-desktop-chromium-darwin.png create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/events-mobile-chromium-darwin.png create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/home-desktop-chromium-darwin.png create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/home-mobile-chromium-darwin.png create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/join-desktop-chromium-darwin.png create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/join-mobile-chromium-darwin.png create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/member-dashboard-desktop-chromium-darwin.png create mode 100644 e2e/__screenshots__/visual/pages.spec.js-snapshots/member-profile-desktop-chromium-darwin.png diff --git a/app/assets/css/main.css b/app/assets/css/main.css index b4f6ac2..0991d41 100644 --- a/app/assets/css/main.css +++ b/app/assets/css/main.css @@ -20,13 +20,13 @@ --border: #b8a880; --border-d: #a89470; --candle: #7a5a10; - --candle-dim: #9a7420; + --candle-dim: #866518; --candle-faint: #c4a448; --ember: #8a4420; --text: #2a2015; --text-bright: #1a1008; --text-dim: #5a5040; - --text-faint: #8a7e6a; + --text-faint: #746a58; --parch: #2a2015; --parch-hover: #3a3025; --parch-text: #ede4d0; @@ -89,6 +89,7 @@ body { a { color: var(--candle); text-decoration: none; } a:hover { text-decoration: underline; } +p a, blockquote a { text-decoration: underline; text-underline-offset: 2px; } /* ---- SECTION LABELS ---- */ .section-label { diff --git a/app/layouts/admin.vue b/app/layouts/admin.vue index 7f1aa80..f888440 100644 --- a/app/layouts/admin.vue +++ b/app/layouts/admin.vue @@ -106,21 +106,13 @@