From dad98008cc76a500f5146326b92c6dd2e6f9d932 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 15:26:28 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20Accessible=20Forms=20?= =?UTF-8?q?and=20Password=20Toggle=20in=20V2=20Signup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit improves the micro-UX and accessibility of the V2 authentication flow: - Added password visibility toggle to V2Signup.jsx to match V2Login.jsx. - Properly associated labels with inputs using `id` and `htmlFor` in V2Signup.jsx and V2ForgotPassword.jsx. - Added `aria-hidden="true"` to decorative icons for better screen reader compatibility. - Updated Palette's journal with accessibility learnings. Verified with Playwright screenshots and full unit test suite. Co-authored-by: godie <227743+godie@users.noreply.github.com> --- .Jules/palette.md | 4 +++ src/v2/pages/V2ForgotPassword.jsx | 7 ++--- src/v2/pages/V2Signup.jsx | 44 +++++++++++++++++++++++++------ 3 files changed, 44 insertions(+), 11 deletions(-) diff --git a/.Jules/palette.md b/.Jules/palette.md index ee2d8f0..2b66d78 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -94,3 +94,7 @@ ## 2025-06-16 - [Functional Matchers for Complex Buttons and Utility-First Layout] **Learning:** React Testing Library's `findByText` can fail on buttons containing Materialize icons due to text node fragmentation and the icon's name being part of the `textContent`. Using a functional matcher that checks for partial content and tag name is more robust. Additionally, strictly adhering to utility classes (e.g., 'center-align') instead of inline styles ensures compliance with repository constraints and theme consistency. **Action:** Always use functional matchers for testing interactive elements with icons and avoid inline styles by leveraging existing CSS utility classes. + +## 2025-06-18 - [Standardized Accessibility and Password Visibility in V2 Auth Forms] +**Learning:** In V2 authentication flows, maintaining feature parity between Login, Signup, and Forgot Password pages—specifically regarding password visibility toggles and label-input associations—ensures a predictable and accessible user experience. Missing `id` and `htmlFor` attributes on inputs breaks screen reader navigation even if the layout looks correct. +**Action:** Always audit the full authentication suite (Login, Signup, Recovery) for accessibility parity and ensure interactive password fields consistently offer visibility toggles. diff --git a/src/v2/pages/V2ForgotPassword.jsx b/src/v2/pages/V2ForgotPassword.jsx index 2f6b6fa..6a57c64 100644 --- a/src/v2/pages/V2ForgotPassword.jsx +++ b/src/v2/pages/V2ForgotPassword.jsx @@ -35,7 +35,7 @@ const V2ForgotPassword = () => { display: 'flex', alignItems: 'center', justifyContent: 'center', margin: '0 auto 16px' }}> - lock_reset + lock_reset
@@ -48,8 +48,9 @@ const V2ForgotPassword = () => { {!submitted ? (