ForHosting KIT · Imágenes

Color de texto accesible

Corrija un texto con poco contraste sin perder su tono: el gris #888888 sobre blanco solo llega a 3.54 a 1, así que se oscurece a #767676 para lograr 4.54 a 1, justo por encima del objetivo de 4.5. Solo cambia la luminosidad. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Fondo
#ffffff
Texto
#888888
Razón objetivo
4,5
Obtiene
Razón original
3,54
Razón sugerida
4,54
Dirección
darken
Luminosidad antes
53,33

Este sugeridor de color de texto accesible toma un color hexadecimal de fondo, un hexadecimal de texto inicial y una razón de contraste WCAG objetivo, y devuelve un color de texto sugerido que cumple esa razón desplazando únicamente la luminosidad HSL. El matiz y la saturación permanecen fijos, de modo que un azul de marca sigue siendo azul mientras se oscurece o se aclara lo bastante para aprobar AA o AAA sobre la superficie dada. Si el color de partida ya cumple el objetivo, se devuelve sin cambios y se marca como no ajustado. Diseñadores, autores de tokens de diseño y trabajos de CI lo usan cuando un verificador de contraste no basta: necesitan un hexadecimal de recambio determinista, no solo un indicador de aprobado o reprobado. No hay llamadas de red, semillas aleatorias ni lecturas de reloj.

Cómo una búsqueda de luminosidad alcanza un objetivo de contraste WCAG

El contraste en la web no es una cuestión de gusto. Las Pautas de Accesibilidad para el Contenido Web definen una sola razón de contraste a partir de la luminancia relativa, para que el cuerpo del texto, los botones y las etiquetas sigan siendo legibles para personas con baja visión.

Este sugeridor parte de su hexadecimal de fondo y de un hexadecimal de texto inicial, y cambia solo la luminosidad de ese color de texto en HSL hasta que la razón WCAG 2.x frente al fondo alcanza el objetivo que usted pidió. El matiz y la saturación no se mueven, de modo que un azul marino de marca sigue siendo marino y un rojo de marca sigue siendo rojo; solo varía lo claro o lo oscuro de la tinta.

El motor lineariza cada canal sRGB con la curva oficial por tramos, construye la luminancia con los pesos 0.2126, 0.7152 y 0.0722, y calcula la luminancia más clara más 0.05 dividida por la más oscura más 0.05. Después recorre la luminosidad HSL en décimas de por ciento deterministas hacia el negro y hacia el blanco, convierte cada paso de nuevo a RGB de 8 bits y conserva el primer hexadecimal cuantizado en cada sentido que cumple el objetivo sin redondear.

Gana el candidato con el menor cambio de luminosidad; un empate prefiere oscurecer, que es el arreglo habitual para tipografía gris sobre una tarjeta clara. Si el color de partida ya cumple el objetivo, se devuelve sin cambios para no reescribir tokens sin motivo. No hay jitter aleatorio, consulta de red ni atajo que dependa de la fecha: las mismas tres entradas producen siempre el mismo hexadecimal sugerido y las mismas banderas de validación.

Dónde un sugeridor de color de texto accesible justifica su sitio

Los equipos de producto llegan a esta página cuando un gris de marca se ve elegante en una diapositiva de marketing pero falla como cuerpo de texto sobre una tarjeta blanca, cuando un tema de modo oscuro se genera a partir de tokens claros, o cuando las partes legales piden un hexadecimal de recambio en lugar de una opinión de captura.

Los diseñadores pegan una superficie y una tinta inicial desde Figma o un archivo de tokens y llevan el hexadecimal sugerido de vuelta a la paleta, en vez de empujar a ojo un control de luminosidad. Los especialistas de QA y accesibilidad adjuntan la razón original, la razón sugerida y el hexadecimal sugerido a los tickets para que los desarrolladores corrijan el par exacto.

Los equipos de contenido y marketing comprueban que los colores de campaña sigan teniendo un compañero de texto legal al colocarlos sobre fondos claros u oscuros del sitio. Si solo necesita medir un par que ya eligió, use una página de verificador de contraste; esta página posee la intención de sugerir un color de texto que apruebe.

Corregir tokens de cuerpo que no cumplen

Ante un gris de marca que no alcanza AA sobre una tarjeta blanca, obtenga el hexadecimal más oscuro más cercano que apruebe 4.5:1 sin cambiar el matiz.

Tinta para modo oscuro y modo claro

A partir de un solo color de texto inicial, derive un compañero que apruebe sobre una superficie clara y otro que apruebe sobre una superficie oscura.

¿Cómo elige el hexadecimal el sugeridor de color de texto accesible?

Conserva el matiz y la saturación de partida, recorre la luminosidad HSL hacia el negro y hacia el blanco, y devuelve el hexadecimal cuantizado más cercano cuyo contraste WCAG 2.x cumple el objetivo. Un empate prefiere oscurecer.

¿Qué razones objetivo puede solicitar?

Cualquier número finito de 1 a 21 inclusive. El valor por defecto es 4.5 (AA de texto normal). Use 3 para AA de texto grande y 7 para AAA de texto normal.

¿Cuánto cuesta el sugeridor de color de texto accesible?

La herramienta del navegador es gratuita y se ejecuta en local.

¿Qué pasa si ningún matiz de mi color alcanza el objetivo?

Recibe igualmente el extremo más favorable, negro o blanco, marcado con claridad como que no cumple el objetivo. Ocurre, por ejemplo, al pedir AAA 7 a 1 sobre una tarjeta gris media.

¿Cambiará el tono de mi color de marca?

No. El tono y la saturación se mantienen y solo cambia la luminosidad: un azul marino de marca sigue siendo azul marino, solo más oscuro o más claro hasta cumplir el contraste.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/color/suggest-accessible-text

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/color/suggest-accessible-text \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"background":"#ffffff","text":"#888888"}'
{
  "background": "#ffffff",
  "text": "#888888"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "color.suggest_accessible_text",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

max_color_chars32
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Si ninguna luminosidad de ese matiz alcanza el objetivo —por ejemplo AAA 7:1 sobre una tarjeta gris medio— el motor sigue devolviendo el extremo mejor, negro o blanco, y pone meets_target en false para que una tubería pueda fallar en modo cerrado. Las llamadas API exitosas se facturan a $0.002 por ítem; la entrada inválida no se cobra.

Qué envía, qué recibe y cómo funciona la validación

Envíe un hexadecimal de fondo y un hexadecimal de texto inicial. Los objetivos habituales son 3 para AA de texto grande, 4.5 para AA normal y 7 para AAA normal; se acepta cualquier número finito de 1 a 21 inclusive porque ese es el intervalo WCAG desde colores idénticos hasta negro sobre blanco. Una cadena formula breve documenta la regla. Un target_ratio opcional vale 4.5 por defecto, el umbral AA de texto normal. El fondo también acepta el alias bg; el texto acepta foreground, fg y color; target_ratio acepta ratio y target. Los campos ausentes, los caracteres no hexadecimales, las formas alfa, las longitudes incorrectas, NaN, Infinity y un objetivo fuera del intervalo cerrado fallan con invalid_input y no se facturan. En caso de éxito la respuesta ecoa muestras normalizadas de seis dígitos para fondo, texto y sugerido, con cadenas rgb imprimibles. original_ratio y suggested_ratio se redondean a dos decimales para la presentación, mientras que meets_target compara la razón sugerida sin redondear con el objetivo, de modo que un 4.50 impreso no pueda ocultar un verdadero 4.499. adjusted indica si el hexadecimal se movió de verdad; direction es none, darken o lighten. lightness_before y lightness_after hacen auditable el paso HSL. El objeto wcag informa normal_aa, normal_aaa, large_aa y large_aaa del par sugerido para que un revisor vea la matriz completa, no solo el objetivo pedido. Combine el formulario gratuito del navegador con la API idéntica a $0.002 por ítem exitoso cuando una tubería de tokens de diseño necesite el mismo hexadecimal en integración continua.

Dónde un sugeridor de color de texto accesible justifica su sitio

Los ingenieros conectan el mismo contrato a comprobaciones de pull request que reescriben o rechazan un token cuando el AA de texto normal caería por debajo de 4.5, y leen meets_target para que un pedido AAA imposible sobre gris medio no publique negro en silencio como si hubiera aprobado. Como esta capacidad es un motor parse puro, el precio de la API es la base publicada de $0.002 por ítem exitoso y la validación fallida no consume saldo.

Puertas de CI que necesitan un hexadecimal de recambio

Llame a la API desde pull requests para reescribir o rechazar tokens cuando el par sugerido aún no pueda cumplir el objetivo WCAG pedido.

¿Qué ocurre si ningún color de texto de este matiz alcanza el objetivo?

El motor devuelve el mejor entre negro o blanco y pone meets_target en false. Eso ocurre en algunos fondos gris medio cuando usted pide 7:1.

¿Qué formatos de color se aceptan?

Solo hexadecimal: #RGB o #RRGGBB, con o sin la almohadilla inicial, sin distinguir mayúsculas. rgb(), hsl(), colores con nombre y hexadecimal alfa se rechazan con invalid_input.

Ver la documentación completa del KIT →