Skip to content

feat(a11y): unify 8 accessibility and UX PRs#94

Merged
godie merged 24 commits into
masterfrom
feat/unify-a11y-prs
May 19, 2026
Merged

feat(a11y): unify 8 accessibility and UX PRs#94
godie merged 24 commits into
masterfrom
feat/unify-a11y-prs

Conversation

@godie
Copy link
Copy Markdown
Owner

@godie godie commented May 19, 2026

This PR consolidates 8 open pull requests focused on accessibility improvements, V2 UX polish, and minor bug fixes.

Unified PRs

Merge conflict resolutions

Fixes applied during unification

  • Fixed broken import path in ExamenRow.jsx ( → )
  • Restored default export in ExamenRow.jsx to match ExamenTable.jsx import
  • Fixed CustomCheckbox.test.jsx CSS computed value assertions (1rem vs 16px, rgb vs named colors)
  • Rewrote V2KnowledgeBase.test.jsx to mock KnowledgeBaseService async loading

Validation

  • ✅ All 373 tests pass
  • ✅ Production build succeeds
  • ✅ No remaining conflict markers

google-labs-jules Bot and others added 16 commits February 27, 2026 16:14
…cator

- Added support for Materialize grid props (s, m, l, xl, offset) to CustomCheckbox.
- Added 'required' prop for visual asterisk and aria-required attribute.
- Added 'wrapperClassName' prop for flexible container styling.
- Created unit tests in CustomCheckbox.test.jsx.
- Cleaned up unused import in PlayerCasoContainer.jsx.
- Updated UX journal in .Jules/palette.md.

Co-authored-by: godie <227743+godie@users.noreply.github.com>
- Added a descriptive empty state card with a "Nueva Contribución" CTA when no contributions are found.
- Standardized loading feedback using the `enarm-loading-wrapper` utility class.
- Standardized badges using the `enarm-badge-pill` class for theme consistency.
- Improved accessibility by adding `aria-hidden="true"` to decorative icons.
- Refined conditional rendering to ensure error and empty states are mutually exclusive.
- Cleaned up unused imports and local development artifacts.

Co-authored-by: godie <227743+godie@users.noreply.github.com>
Co-authored-by: godie <227743+godie@users.noreply.github.com>
Co-authored-by: godie <227743+godie@users.noreply.github.com>
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>
I have updated the Version 2 authentication forms (Login, Signup, and Forgot Password) to improve the overall user experience and accessibility.

Key changes:
- Corrected semantic association between labels and inputs using `id` and `htmlFor`.
- Added `aria-required="true"` to mandatory fields for better screen reader support.
- Implemented a password visibility toggle in the Signup page for consistency with the Login page.
- Added leading Material Icons to input fields to provide immediate visual context and a more delightful MD3 feel.
- Standardized visual loading feedback in form buttons using the `CustomPreloader` component.
- Verified visual changes with Playwright screenshots and confirmed that all existing unit tests continue to pass.

Co-authored-by: godie <227743+godie@users.noreply.github.com>
- Implements keyboard shortcuts for faster study flow (Space/Enter to flip, 1-4 to rate).
- Adds visual shortcut hints (e.g., [Espacio], [1]) to buttons for discoverability.
- Enhances accessibility with descriptive ARIA labels and titles for shortcuts.
- Includes unit tests verifying shortcut functionality.
- Records UX learnings in palette journal.

Co-authored-by: godie <227743+godie@users.noreply.github.com>
…264668618576080' into feat/unify-a11y-prs

# Conflicts:
#	src/v2/pages/V2FlashcardStudy.jsx
#	src/v2/pages/V2FlashcardStudy.test.jsx
…737844316768477751' into feat/unify-a11y-prs

# Conflicts:
#	src/v2/pages/V2ForgotPassword.jsx
#	src/v2/pages/V2Login.jsx
#	src/v2/pages/V2Signup.jsx
…540938942252997' into feat/unify-a11y-prs

# Conflicts:
#	.Jules/palette.md
#	src/v2/pages/V2ForgotPassword.jsx
#	src/v2/pages/V2Signup.jsx
…-5570955619744467031' into feat/unify-a11y-prs

# Conflicts:
#	.Jules/palette.md
#	src/v2/components/V2Navi.jsx
#	src/v2/pages/V2Examen.jsx
#	src/v2/pages/V2Landing.jsx
…69839876251188' into feat/unify-a11y-prs

# Conflicts:
#	src/components/PlayerCasoContainer.jsx
#	src/components/custom/CustomCheckbox.jsx
#	src/components/custom/CustomCheckbox.test.jsx
…ents-3672691372099319567' into feat/unify-a11y-prs

# Conflicts:
#	.Jules/palette.md
#	src/components/custom/CustomCheckbox.jsx
#	src/components/custom/CustomCheckbox.test.jsx
- setupTests.js: intercept only bad patterns (act, prop leaks, controlled inputs)

- Remove dead vi.spyOn(console.error) suppressions from 12 test files

- Add post-test grep check to GitHub Actions workflow

- Fix V2DirectMessaging loading test act() warning
@godie godie merged commit de37561 into master May 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant