Command Palette

Search for a command to run...

Accessibility use case

High Contrast and Color Vision

Color Vision access guidance for Tamil DS

How people with color blindness, low vision, and contrast needs perceive information, aligned with WCAG 1.4.1 (Use of Color), 1.4.3 (Contrast Minimum), and 1.4.11 (Non-text Contrast).

Detailed guidance for real users, assistive technology, component behavior, testing, and release checks.

Who this supports

Users with color blindness, low vision, cataracts, glare sensitivity, older adults, and users in bright outdoor environments.

Assistive technology

High contrast modeForced colorsColor filtersDark modeBrowser contrast extensions

Primary risk

Meaning disappears when the interface communicates status, selection, or risk through color alone.

Contrast & Vision Simulator

விண்ணப்ப நிலை (Application Status)
அங்கீகரிக்கப்பட்டது (Approved)
Verified
நிராகரிக்கப்பட்டது (Rejected)
Flagged

Accessibility Integrity

Normal appearance. Colors represent success and warnings cleanly.

Simulating: normal

Real user scenario

A user checks application status on a phone outdoors. Green, yellow, and red badges look similar under glare. Text labels, icons, borders, and clear hierarchy help them understand Approved, Pending, and Rejected without relying on hue.

How people use this access method

1

Some users cannot distinguish certain color pairs reliably.

2

Some users increase contrast or use forced-color themes that override design tokens.

3

Outdoor glare can reduce effective contrast even for users without diagnosed vision differences.

4

Patterns, labels, icons, and position provide redundant meaning.

5

System color modes may remove subtle backgrounds, shadows, and gradients.

Design requirements

These requirements are product requirements, not optional polish. If a Tamil DS component or page breaks one of these rules, users may be blocked even when the visual interface looks finished.

Never use color alone to convey meaning, state, or validation (WCAG 1.4.1 Use of Color).

Ensure text contrast meets at least 4.5:1 for normal text and 3:1 for large text (WCAG 1.4.3 Contrast Minimum).

Ensure UI components and graphical objects meet 3:1 contrast against adjacent colors (WCAG 1.4.11 Non-text Contrast).

Support OS high-contrast themes and Windows Forced Colors mode.

Provide light and dark mode alternatives.

Use underlines or icons for links inside paragraphs, not just a different color.

Add patterns or labels to charts alongside color coding.

Accessible code implementation

Use this correct, semantic React/HTML/CSS implementation pattern as a template when building or styling components for this specific access method:

// Status Badge Preserving Structure in High Contrast and Forced Colors Modes
import React from "react";
import { CheckCircle2, AlertTriangle, AlertCircle } from "lucide-react";

export function AccessibleStatusBadge({ status }) {
  const styles = {
    approved: { label: "Approved", labelTa: "அங்கீகரிக்கப்பட்டது", icon: CheckCircle2, color: "text-emerald-700 bg-emerald-50 border-emerald-200 dark:bg-emerald-950/20" },
    pending: { label: "Pending", labelTa: "செயலாக்கத்தில்", icon: AlertTriangle, color: "text-amber-700 bg-amber-50 border-amber-200 dark:bg-amber-950/20" },
    rejected: { label: "Rejected", labelTa: "நிராகரிக்கப்பட்டது", icon: AlertCircle, color: "text-red-700 bg-red-50 border-red-200 dark:bg-red-950/20" },
  };

  const current = styles[status] || styles.pending;
  const Icon = current.icon;

  return (
    <div className={`inline-flex items-center gap-2 rounded-full border px-3 py-1.5 text-xs font-semibold ${current.color} 
      /* HIGH CONTRAST FALLBACK: ensure borders and outlines are visible when system colors are overridden */
      outline outline-2 outline-transparent outline-offset-1 focus-visible:outline-primary`
    }>
      <Icon className="size-4 shrink-0" />
      <span className="font-medium">{current.label}</span>
      <span className="font-tamil font-normal text-muted-foreground/80 opacity-90 text-[10px]" lang="ta">
        ({current.labelTa})
      </span>
    </div>
  );
}
Technical breakdown: To aid users with color-blindness or those using Windows Forced Colors, status information must never be conveyed by background color alone. This component pairs status hues with distinct visual icons and explicit textual descriptors. Furthermore, it defines an outline-transparent rule that ensures the badge keeps a solid, visible border contour when the browser disables CSS backgrounds in high contrast mode.

Component behavior implications

Accessibility becomes real at component level. The same page may pass content review but fail when dialogs, forms, menus, cards, or status messages do not expose the right behavior.

Badge variants need text labels, not color alone.

Alert variants need icons and strong text.

Charts need labels, legends, patterns, and table alternatives.

Buttons need disabled state that is not only low opacity.

Tabs and navigation need selected state beyond color.

Inputs need visible borders and error text.

Testing script

Run this script before release. Automated checks are useful, but they do not replace trying the actual access method and completing a real task from start to finish.

Run contrast checks on text and interactive states.

Enable Windows forced colors or browser high-contrast simulation.

Use a color-blindness simulator for key status screens.

Review charts without relying on hue.

Check focus rings in every theme.

Verify disabled controls remain understandable.

Test outdoors or with reduced screen brightness when possible.

Common failures and fixes

Failure

Status is shown only as green, yellow, or red

Add text, icon, and semantic state labels.

Failure

Disabled controls are too faint to read

Use disabled styling that preserves legibility and explains why unavailable.

Failure

Focus ring disappears on brand backgrounds

Use ring offset, outline, or contrast-aware focus tokens.

Failure

Chart legend depends only on color

Add direct labels, patterns, and data table fallback.

Tamil public-service context

Tamil DS must work for Tamil-first, English-first, and bilingual users across phones, desktops, kiosks, classrooms, offices, and public-service counters. These notes keep the guidance connected to local product reality.

Public dashboards often use status badges; Tamil labels should spell out the status clearly.

Users may check services outdoors near government offices, so glare-safe contrast matters.

Do not assume cultural color meaning is enough; use explicit words.

Release checklist

All status has non-color cues.

Contrast passes in every theme.

Forced colors remain usable.

Charts have accessible alternatives.

Focus indicators stay visible.