Skip to content

fix: Improve color contrast for WCAG AA compliance - #415

Merged
ReinaMaze merged 1 commit into
HubDApp:mainfrom
SamuelStave:fix/color-contrast-a11y-358
Aug 30, 2026
Merged

fix: Improve color contrast for WCAG AA compliance#415
ReinaMaze merged 1 commit into
HubDApp:mainfrom
SamuelStave:fix/color-contrast-a11y-358

Conversation

@SamuelStave

Copy link
Copy Markdown
Contributor

Closes #358

Copilot AI lite review requested due to automatic review settings August 25, 2026 11:36

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to improve UI color contrast to better meet WCAG AA accessibility guidelines by darkening text colors and adjusting theme color tokens across shared components and screens.

Changes:

  • Updated Badge variant text colors (including dark mode) to improve contrast while retaining existing backgrounds/borders.
  • Adjusted review list typography colors for improved readability in light/dark modes.
  • Updated global theme color variables (primary/success/warning/error/muted) to higher-contrast shades.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
dongle/components/ui/Badge.tsx Improves badge text contrast via darker/lighter text utilities per variant (incl. dark mode).
dongle/components/reviews/ReviewList.tsx Improves review list text/icon contrast; vote button markup currently includes syntax-breaking corruption that needs fixing.
dongle/components/projects/VerificationBadge.tsx No functional change (formatting/whitespace only).
dongle/components/projects/ProjectCard.tsx Improves some text contrast, but introduces multiple syntax-breaking corruptions in aria-labels, className, and Link href.
dongle/app/globals.css Updates global theme color tokens to higher-contrast values.
Suppressed comments (3)

dongle/components/reviews/ReviewList.tsx:95

  • The className and aria-label props for the unhelpful vote button are currently invalid (contain escaped backslashes) and remove the conditional styling + dynamic count. This will break rendering/TypeScript parsing and regress accessibility labeling.
                <button
                  onClick={() => onVoteUnhelpful?.(review.id)}
                  className={\inline-flex items-center gap-1 text-xs font-semibold px-2.5 py-1 rounded-full transition-all border \\}
                  aria-label={\Mark as unhelpful, current count \\}
                >

dongle/components/projects/ProjectCard.tsx:82

  • The compare toggle button has multiple syntax errors: the aria-label branches are missing template literals (project name removed) and className is corrupted (contains escape/control characters). This will not compile and will regress the intended selected/disabled styling.
          aria-label={
            selected
              ? Remove  from comparison
              : !canAddMore
              ? Cannot add : maximum 4 projects
              : Add  to comparison
          }
          size="md"
          className={\�bsolute left-4 top-4 z-10 rounded-full \\}

dongle/components/projects/ProjectCard.tsx:95

  • The Link href prop is corrupted (href={\/projects/\\}) instead of interpolating project.id. This is a syntax error and will break navigation to the project detail page.
      <Link href={\/projects/\\} prefetch={getPrefetchValue("project-detail")} className="flex h-full flex-col">

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 82 to 86
<button
onClick={() => onVoteHelpful?.(review.id)}
className={`inline-flex items-center gap-1 text-xs font-semibold px-2.5 py-1 rounded-full transition-all border ${
review.helpfulVotes?.includes(currentUserAddress || "")
? "bg-green-50 border-green-200 text-green-700 dark:bg-green-900/20 dark:border-green-800 dark:text-green-500"
: "bg-zinc-50 border-zinc-200 text-zinc-600 hover:bg-zinc-100 hover:text-black dark:bg-zinc-800 dark:border-zinc-850 dark:text-zinc-400 dark:hover:bg-zinc-700/50"
}`}
aria-label={`Mark as helpful, current count ${review.helpfulVotes?.length || 0}`}
className={\inline-flex items-center gap-1 text-xs font-semibold px-2.5 py-1 rounded-full transition-all border \\}
aria-label={\Mark as helpful, current count \\}
>
Comment on lines 56 to 60
aria-label={
isSaved
? `Remove ${project.name} from saved projects`
: `Save ${project.name}`
? Remove from saved projects
: Save
}
@SamuelStave
SamuelStave force-pushed the fix/color-contrast-a11y-358 branch from 54e3cac to b0830d6 Compare August 25, 2026 11:56
@drips-wave

drips-wave Bot commented Aug 25, 2026

Copy link
Copy Markdown

@SamuelStave Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@SamuelStave
SamuelStave force-pushed the fix/color-contrast-a11y-358 branch from b0830d6 to 4c6c667 Compare August 28, 2026 16:28
@SamuelStave SamuelStave reopened this Aug 29, 2026
@ReinaMaze
ReinaMaze merged commit 06900bd into HubDApp:main Aug 30, 2026
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.

Fix Color Contrast Accessibility Issues

3 participants