STATUS IS UPWIKI DE OPTIMIZACIÓN WEB
13Habilitar
Diseño y UX / Habilitar

Accesibilidad en modo oscuro: contraste, elección y pruebas

Construya el modo oscuro como una opción de interfaz probada: preserve contraste legible, foco visible, imágenes utilizables, controles nativos y anulaciones por el usuario antes del lanzamiento.

Accesibilidad en modo oscuro: contraste, elección y pruebas — GUÍA VISUAL
LEER
8 minutos
FUENTES
8
REVALIDAR
2027-03-27
revisado
Revisor frontend con conciencia de accesibilidad y responsabilidad en la gestión de lanzamientos
LA RESPUESTA BREVE

Empieza con la decisión.

Implemente el modo oscuro como un tema completo, no como una inversión de colores. Defina tokens semánticos de color para cada superficie y estado significativo, use la preferencia del sistema operativo como tema inicial y ofrezca una elección manual accesible cuando aporte valor al producto. Pruebe ambos temas en las páginas donde la gente lee, inicia sesión, busca, envía formularios y compra. Un tema está listo solo cuando las interacciones críticas siguen siendo percepcibles y operables.

Para una línea base basada en WCAG, el texto normal y las imágenes de texto necesitan al menos 4.5:1; el texto grande puede usar 3:1. Los controles identificables, estados obligatorios y gráficos significativos necesitan 3:1 frente a colores adyacentes. Mantenga el foco por teclado visible, declare esquemas de color compatibles del navegador y verifique forced-colors. Las comprobaciones automatizadas localizan candidatos, pero una persona debe recorrer los flujos.

GUÍA VISUAL

Ve el trabajo como un sistema.

Usa este mapa para conectar las decisiones del artículo antes de actuar sobre tácticas individuales.

SIUHabilitar
01Comience con una elección del usuario y un sistema de tokens
02Mida el contraste en el tema renderizado
03Proteja el foco por teclado, formularios y cambios de estado
04Gestione imágenes, activos embebidos y la IU provista por el navegador
01

Comience con una elección del usuario y un sistema de tokens

Use la preferencia del sistema como valor por defecto con prefers-color-scheme. Si ofrece un interruptor, emplee un control operable por teclado con un nombre accesible y exponga la elección activa programáticamente. Dé prioridad a la selección manual en ese contexto del navegador; no prometa que siga a alguien a otro dispositivo o a una sesión privada.

Nombre los colores por rol, no por apariencia: canvas, surface, text, muted text, border, link, accent, error, success, focus y disabled. Mapee cada rol en ambos temas. Esto evita que un gris pensado solo para claro se filtre en modo oscuro y hace que las correcciones sean reutilizables. Oscuro no es inherentemente más accesible ni universalmente preferido; es otra experiencia que hay que hacer usable.

Prioridad de tema

Documente un orden, por ejemplo elección guardada primero y preferencia del sistema segundo, para que los equipos prueben el mismo resultado.

Inventario de componentes

Incluya hover, focus, selected, invalid, disabled, loading, empty y visited-link, no solo los valores por defecto.

02

Mida el contraste en el tema renderizado

WCAG 2.2 Success Criterion 1.4.3 establece un mínimo de 4.5:1 para texto normal y imágenes de texto, y 3:1 para texto grande. No redondee: 4.499:1 no cumple 4.5:1. Las tipografías finas pueden parecer más débiles que su color calculado, así que use una familia más robusta o margen extra.

Compruebe cada primer plano renderizado y el fondo adyacente. Texto sobre fotos, degradados, paneles translúcidos o vídeo tiene fondos cambiantes, por lo que un único cálculo de token no puede probar su legibilidad. Use un respaldo opaco, una superposición adecuada o un emplazamiento distinto, y luego inspeccione en puntos de vista realistas.

Controles y gráficos

Bajo WCAG 2.1 Success Criterion 1.4.11, la información visual necesaria para identificar un control activo, un estado obligatorio o un gráfico significativo necesita 3:1 frente a colores adyacentes.

Más que tono

Acompañe los cambios de color con texto, un ícono, patrón, posición u otra señal clara; los estados de error y seleccionado no deben depender de un tinte sutil.

03

Proteja el foco por teclado, formularios y cambios de estado

Recorra con Tab ambos temas. El foco debe ser visible en enlaces, botones, inputs, menús, diálogos, widgets personalizados y el control de tema. No elimine el outline del navegador a menos que su reemplazo esté probado en cada superficie y estado. Un outline desplazado suele ser más claro que un resplandor que se mezcla.

La Focus Appearance de WCAG 2.2 es un criterio AAA, no prueba de cumplimiento AA. Es un objetivo útil: un área indicadora al menos tan grande como un perímetro de 2 píxeles CSS y contraste 3:1 entre píxeles enfocados y no enfocados. Verifique también que estados de error, obligatorio, seleccionado e indisponible conserven su significado.

Revisión de formularios

Pruebe por separado el texto de ayuda del input, el valor introducido, la etiqueta, el texto de ayuda, el texto de error, el borde inválido, la marca del checkbox, la selección del radio y el estado de envío.

Flujos de pago y sensibles

Para checkout u otro flujo regulado, use el sandbox del proveedor y obtenga revisión cualificada de accesibilidad y seguridad cuando proceda. Esto es orientación educativa, no una evaluación de cumplimiento o seguridad.

04

Gestione imágenes, activos embebidos y la IU provista por el navegador

Revise logos, ilustraciones, capturas de pantalla, gráficos, íconos y texto incrustado en imágenes en ambos temas. Un logo claro reutilizado puede desaparecer y la leyenda de un gráfico puede fallar aun cuando el HTML circundante pase. Suministre un activo adecuado al propósito o un fondo estable. La imaginería que transmite instrucciones, estado o datos debe seguir siendo comprensible.

Declare soporte para esquemas light y dark, y luego estilice el contenido de la página para el tema seleccionado. La propiedad color-scheme alinea el canvas del navegador, las barras de desplazamiento, controles de formulario y otra IU del navegador. Coloque los metadatos correspondientes al principio del documento. SVG embebido puede responder al esquema padre; pruebe iframe y widgets de terceros de extremo a extremo.

Nativo antes que personalizado

Prefiera controles HTML semánticos. El comportamiento de forced-colors usa semánticas nativas, no un rol ARIA añadido a un elemento genérico.

Aceptación de activos

Inspeccione estados de descarga, caché, carga lenta e imagen fallida, especialmente donde texto o señales de acción descansan sobre medios.

05

Respete forced-colors y pruebe el lanzamiento como un sistema

Forced-colors aplica una paleta limitada elegida por el usuario, como Windows High Contrast. Los navegadores pueden reemplazar colores, eliminar sombras y añadir backplates al texto. No bloquee la anulación. Haga correcciones específicas donde un componente pierde límites o significado, como un borde real donde una sombra aportaba la affordance. La emulación no puede representar todos los dispositivos, navegadores, extensiones, niveles de zoom o combinaciones de tecnología asistiva.

Ejecute la matriz de rutas e interacciones en configuraciones light, dark y forced-colors antes del lanzamiento. Chrome DevTools puede emular ambas condiciones; úselo para acelerar la revisión y luego navegue manualmente por los flujos prioritarios. Los escáneres encuentran candidatos pero no pueden determinar la accesibilidad por sí solos. SIU preflightea recursos y interacciones críticas del tema, registra una puerta de lanzamiento y mantiene una ruta de reversión probada para regresiones severas de presentación; no es monitoreo de tiempo de actividad.

Matriz de cobertura

Incluya landing, navegación, búsqueda, acceso a cuenta, formularios, páginas de error, pantallas autenticadas y flujos de conversión de material.

Evidencia de lanzamiento

Guarde URLs probadas, versiones de navegador, configuraciones, excepciones, responsable y trigger de reversión para que la remediación arranque desde hechos.

ACCIÓN / VERIFICAR

Tu guía práctica de tareas.

  1. 01

    Inventario de superficies con tema

    Liste componentes compartidos y rutas críticas, incluyendo estados de interacción y validación.

    VERIFICAR: Cada elemento tiene un responsable para modo claro y oscuro o se declara retirado explícitamente.
  2. 02

    Definir tokens semánticos

    Mapee roles como text, surface, link, border, error y focus a valores en ambos temas.

    VERIFICAR: Ningún componente en producción depende de un color literal solo para claro sin explicación.
  3. 03

    Establecer prioridad predecible del tema

    Use la preferencia del sistema como predeterminada y, si se ofrece, haga la elección manual accesible y aplicada de forma consistente.

    VERIFICAR: Una prueba documentada muestra el resultado esperado para system light, system dark y cada elección manual.
  4. 04

    Comprobar contraste de texto y IU

    Mida texto renderizado, controles, marcadores de estado y gráficos significativos en cada tema.

    VERIFICAR: El texto normal alcanza 4.5:1; el texto grande y la información visual no textual requerida alcanzan 3:1 donde aplican los criterios WCAG.
  5. 05

    Prueba por teclado de foco y formularios

    Navegue todos los flujos prioritarios con Tab, Shift+Tab, Enter, Space y Escape según corresponda.

    VERIFICAR: La ubicación del foco, la guía de errores, las selecciones y los resultados de envío permanecen visibles y comprensibles en ambos temas.
  6. 06

    Revisar medios y controles nativos

    Inspeccione activos de imagen, contenido embebido, barras de desplazamiento, inputs y presentación relacionada con autofill cuando esté disponible.

    VERIFICAR: Ninguna etiqueta esencial, leyenda, acción o control nativo choca con su fondo renderizado.
  7. 07

    Ejercer forced-colors

    Emule forced-colors y haga solo fallbacks dirigidos para elementos que pierdan affordance o significado.

    VERIFICAR: Los controles clave aún tienen un límite o etiqueta identificable y el foco por teclado permanece aparente.
  8. 08

    Combinar comprobaciones automatizadas y humanas

    Ejecute una herramienta de contraste o accesibilidad y luego revise manualmente los caminos de tarea que la herramienta no puede juzgar.

    VERIFICAR: Los hallazgos se trían con decisión humana; la salida de la herramienta no se trata como un veredicto de conformidad.
  9. 09

    Abrir puerta de lanzamiento y preparar remediación

    Registre el build probado, URLs prioritarias, excepciones, responsable y una opción de despliegue reversible o rollback.

    VERIFICAR: El equipo puede identificar el build conocido-bueno del tema y la condición que desencadenaría una reversión.
TEMAS DE DISCUSIÓN

Compara las ventajas y desventajas; no compartas datos privados.

Usa estas preguntas con tu equipo o la comunidad de propietarios del sitio. Comparte métodos y lecciones, pero nunca pegues credenciales, registros de clientes ni detalles de infraestructura no públicos.

  1. 01

    ¿Qué componente expuso la diferencia más sorprendente entre claro y oscuro, y cómo lo añadieron a las comprobaciones de lanzamiento?

  2. 02

    ¿Cómo mantienen sus diseñadores y desarrolladores alineados tokens, estados de componentes y activos de imagen cuando cambia la paleta de marca?

  3. 03

    ¿Qué evidencia ligera de lanzamiento ayuda a su equipo a resolver una regresión de tema sin compartir datos de clientes o cuentas?

RECURSOS POPULARES / DE REFERENCIA

Consulta el material fuente.

W3C Web Accessibility InitiativeUnderstanding Success Criterion 1.4.3: Contrast (Minimum) ↗

Explica los umbrales de contraste de texto de WCAG, excepciones y precauciones de medición.

Revisado 2026-09-27
W3C Web Accessibility InitiativeUnderstanding Success Criterion 1.4.11: Non-text Contrast ↗

Use esto para evaluar contraste de controles, indicadores de estado y gráficos significativos.

Revisado 2026-09-27
W3C Web Accessibility InitiativeUnderstanding Success Criterion 2.4.13: Focus Appearance ↗

Proporciona el modelo de tamaño y contraste de foco AAA usado aquí como objetivo de diseño.

Revisado 2026-09-27
MDN Web Docsprefers-color-scheme CSS media feature ↗

Muestra cómo los navegadores exponen un tema solicitado por el usuario (light o dark) y el comportamiento de SVG embebido.

Revisado 2026-09-27
MDN Web Docscolor-scheme CSS property ↗

Explica la coordinación del canvas del navegador, controles nativos, barras de desplazamiento y UI relacionada.

Revisado 2026-09-27
MDN Web Docsforced-colors CSS media feature ↗

Detalla las anulaciones del navegador, colores del sistema, sombras, backplates y límites del autor.

Revisado 2026-09-27
Chrome for DevelopersEmulate CSS media features ↗

Da pasos de DevTools para ejercer condiciones light, dark y forced-colors.

Revisado 2026-09-27
W3C Web Accessibility InitiativeEvaluating Web Accessibility Overview ↗

Explica por qué la revisión humana complementa a las herramientas automatizadas de accesibilidad.

Revisado 2026-09-27

Política de fuentes. Este artículo utiliza documentación oficial de W3C, MDN y Chrome consultada en la fecha de acceso. Las referencias WCAG describen criterios técnicos, no constituyen asesoramiento legal ni certificación. Revise el comportamiento del navegador y los resultados con tecnologías asistivas en la experiencia desplegada.

ACLARACIONES RÁPIDAS

Preguntas comunes.

¿Agregar modo oscuro automáticamente hace un sitio web más accesible?

No. El modo oscuro puede mejorar la comodidad para algunas personas, pero también puede introducir texto ilegible, foco invisible y estados poco claros. Trátelo como un tema completo e independiente que debe probarse, no como un atajo de accesibilidad.

¿Es 4.5:1 la única comprobación de contraste necesaria para modo oscuro?

No. El umbral WCAG 4.5:1 se aplica al texto normal y a imágenes de texto. El texto grande tiene un umbral de 3:1, mientras que la información visual requerida de controles y gráficos significativos también necesita 3:1 frente a colores adyacentes. El foco, las imágenes y las señales no basadas en color siguen necesitando revisión.

¿Debería todo sitio web ofrecer un conmutador de modo oscuro?

La preferencia del sistema es una línea base práctica. Un conmutador manual es útil cuando los visitantes necesitan anular ese valor o volver a un tema elegido, pero debe ser accesible, predecible y probado. Es una decisión de producto, no una prueba de accesibilidad por sí misma.

Status Is UP Editorial Team · Editores de Uptime Enablement

Revisado por Revisor frontend con conciencia de accesibilidad y responsabilidad en la gestión de lanzamientos. Publicado 2026-09-27; actualizado 2026-09-30.