Cómo elegir combinaciones de colores accesibles

· 9 min de lectura

Las elecciones de color parecen una decisión estética y actúan como una decisión legal. Aproximadamente 4.000 demandas de accesibilidad web al año golpean a los demandados estadounidenses desde 2021, y el contraste de color insuficiente es uno de los tres problemas más citados en demandas basadas en WCAG (junto con texto alternativo faltante y campos de formulario sin etiquetar). La buena noticia: el contraste es el más simple de los tres de corregir. La mala: «accesible» va más allá del ratio principal: daltonismo, indicadores de foco, modo oscuro y tokenización importan todos.

Breve historia de la accesibilidad de color digital

El contraste de color como estándar escrito data del primer trabajo de Web Accessibility Initiative del W3C en 1997. Las Web Content Accessibility Guidelines 1.0 originales (mayo de 1999) recomendaban contraste suficiente en términos cualitativos sin un número duro. WCAG 2.0 (diciembre de 2008) introdujo la fórmula de luminancia relativa hoy familiar y el ratio 4,5:1 al nivel AA, sacado de investigación de Lighthouse International sobre lo que usuarios mayores con gafas podían leer cómodamente en pantalla.

El peso legal vino después. La Sección 508 del Rehabilitation Act referenció WCAG 2.0 en 2018; el ADA, tras el fallo Robles v. Domino's del Noveno Circuito el 15 de enero de 2019 (Corte Suprema rechazó oír el recurso en octubre de 2019), es leído ahora por tribunales de EE. UU. como cubriendo accesibilidad digital bajo el Título III. La European Accessibility Act entró en vigor el 28 de junio de 2025, exigiendo WCAG 2.1 AA en servicios digitales de consumo para el sector público y muchas empresas privadas. En la práctica, 4,5:1 texto normal + 3:1 texto grande + 3:1 componentes UI es el piso de facto.

La ciencia ha seguido evolucionando. WCAG 2.1 (2018) añadió la regla de contraste no-texto 3:1. El algoritmo APCA, desarrollado por Andrew Somers para WCAG 3, modela la percepción de brillo con más precisión; es un Editor's Draft en 2026, no todavía un estándar. OKLAB y OKLCH de Bjorn Ottosson (2020) dieron a los diseñadores un espacio de color perceptualmente uniforme que hace generar escalas de color accesibles mucho más fácil que trabajar en HSL o RGB.

Qué significa realmente «color accesible»

Cuatro cosas importan, no solo el ratio:

  1. Contraste primer plano vs fondo. El número principal. Texto del cuerpo: 4,5:1, texto grande: 3:1, controles UI e indicadores de foco: 3:1 contra colores adyacentes.
  2. Daltonismo. Aproximadamente 8 % de los hombres y 0,5 % de las mujeres ven menos colores que asume el diseño. Los tres tipos principales son protanopia y deuteranopia (rojo-verde) y tritanopia (azul-amarillo).
  3. El color nunca es la única señal. WCAG 1.4.1 prohíbe depender solo del color para transmitir significado. Un borde de error rojo necesita también un icono o etiqueta.
  4. Indicadores de foco. Los usuarios de teclado necesitan ver dónde está el foco. WCAG 2.4.7 exige un indicador visible, y la actualización 2.4.11 (WCAG 2.2) exige al menos 2 píxeles CSS de grosor y 3:1 de contraste.

Cómo elegir colores accesibles, paso a paso

  1. Empieza con tokens semánticos, no colores crudos. Define text-primary, text-secondary, surface-default, surface-elevated, border-default, accent-primary, accent-danger, etc.
  2. Elige la escala de luminosidad. Usa valores de luminosidad OKLCH para construir una escala de 5-9 pasos donde cada paso tiene una diferencia perceptual constante.
  3. Elige tonos en cada paso. Toma el tono de marca, luego elige tonos complementarios o de acento que mantengan croma similar.
  4. Calcula los ratios de contraste. Cada par de tokens que se tocan necesita el ratio correcto.
  5. Pasa un simulador de daltonismo. Toma una pantalla clave y re-rendérizala a través de protanopia, deuteranopia y tritanopia.
  6. Prueba con tecnología asistiva real. VoiceOver, NVDA, JAWS y TalkBack deberían poder navegar sin depender de pistas de color.
  7. Añade la señal no-color donde el color lleve significado. Iconos para error/éxito/advertencia, subrayados para enlaces en cuerpo, patrones para series de gráfico.
  8. Documenta los tokens. Una biblioteca Figma, una página Storybook, o un sitio de design system estático.

Referencia de ratios de contraste

ParWCAG 2.1 minNivel AANivel AAA
Texto cuerpo (bajo 18 pt regular o 14 pt negrita)4,5:14,5:17:1
Texto grande (18 pt regular o 14 pt negrita)3:13:14,5:1
Componentes UI (bordes formulario, estados toggle, foco)3:13:1n/a
Objetos gráficos (iconos con significado)3:13:1n/a
Texto dentro de un logoexentoexentoexento
Controles deshabilitadosexentoexenton/a
Texto decorativoexentoexentoexento

Tipos de daltonismo y cómo comprobar

TipoPrevalenciaVe menos deFallo común
Protanopia~1 % de hombresRojoError rojo vs éxito verde indistinguibles
Deuteranopia~5 % de hombresVerdeIgual: confusión rojo-verde
Tritanopia~0,005 %AzulAzul vs amarillo indistinguibles
Acromatopsia~0,003 %Todo colorSolo ve luminancia en escala de grises
Tricromasía anómala~5 %Sensibilidad reducida en un canalDiferencias de color sutiles se fusionan

Errores comunes

Algoritmos y estándares alternativos

AlgoritmoAñoEstadoFuerte
Ratio de contraste WCAG 2.x2008Requerido por la mayoría de regulaciónMatemáticas simples, ampliamente herramentado
APCA2020Editor's Draft WCAG 3Mejor en brillo perceptual
ISO 9241-3022008Estándar de ergonomía de estación de trabajoMuy estricto, orientado a hardware
Avisos de contraste Lighthouse2018Chrome DevToolsGratis, en el navegador
axe-core2015Biblioteca open sourceEstándar de la industria para test automatizado

Para trabajo regulado hoy, WCAG 2.1 AA es el piso. APCA vale la pena seguir mientras WCAG 3 madura; muchos equipos de design system ya reportan ambos números.

Herramientas para elegir colores accesibles

HerramientaPropósitoFuerte
Verificador de contraste (navegador)Puntuar par primer plano/fondoInstantáneo, sin subida
Generador de paleta accesibleConstruir escala completa a croma constanteOKLCH para uniformidad perceptual
Simulador de daltonismoRe-renderizar pantalla como ve un daltónicoCaptura problemas rojo-verde antes del lanzamiento
Chrome DevTools LensInspeccionar contraste y daltonismo en su sitioIntegrado en el navegador
WebAIM Contrast CheckerReferencia WCAG 2 clásicaDe confianza, ampliamente citado
Stark (plugin Figma)Auditar diseños FigmaCaptura problemas en tiempo de diseño
axe DevTools (navegador)Escaneo WCAG automatizadoEstándar de la industria
Escalas Tailwind, Radix, Open PropsPaletas OKLCH pre-testeadasAccesibilidad curada por equipos de diseño

Privacidad y las herramientas

El verificador de contraste, generador de paleta accesible y simulador de daltonismo corren enteramente en tu navegador. Los colores que eliges o pegas se procesan por JavaScript en tu dispositivo, los resultados se renderizan en la página, y no se envía nada a un servidor. Sin telemetría, sin analytics sobre la entrada, sin scripts de terceros. Para colores de marca aún no públicos, paletas de producto internas, o diseños bajo embargo, ese flujo estrictamente local es la diferencia entre confiar los activos de marca no lanzados al herramienta de un desconocido y no. Las herramientas pueden correr offline una vez cargada la página, lo que puedes verificar desconectando la red y recomprobando un par.

Preguntas frecuentes

What contrast ratio does WCAG require?

WCAG 2.1 Level AA requires at least 4.5:1 for normal body text and 3:1 for large text (18 pt regular or 14 pt bold). Level AAA raises that to 7:1 for normal text and 4.5:1 for large text. Non-text UI components and graphical objects need 3:1 against adjacent colors.

Are WCAG contrast ratios scientifically accurate?

They are based on the WCAG 2.0 algorithm from 2008, which compares the relative luminance of two colors using the sRGB color space. The formula is imperfect for very dark and very light combinations and for some color hues; the APCA (Accessible Perceptual Contrast Algorithm) being developed for WCAG 3 produces more perceptually accurate results. For 2026 work, WCAG 2.x is still the standard most regulations cite.

How do I check whether my colors work for color-blind users?

Run them through a color-blindness simulator that converts your palette to what someone with protanopia, deuteranopia, or tritanopia sees. About 8% of men and 0.5% of women have some form of color vision deficiency, so this matters.

Should I use the same color palette for light and dark mode?

Usually not. Dark mode needs slightly desaturated colors at the same hue, otherwise vivid colors that look fine on white become eye-strain on black. Define semantic tokens (text-primary, surface-secondary) and map them to different physical colors per mode.

What does OKLCH have to do with accessibility?

OKLCH is a perceptually uniform color space (Bjorn Ottosson, 2020) where equal numerical changes produce equal perceptual changes. That makes it much easier to generate accessible color scales because you can step the lightness in equal increments and the perceived brightness step is consistent, which is hard to do in HSL or RGB. CSS supports OKLCH directly since 2023 in all major browsers.