Cumplimiento axe nielsen prototipo cliente - martin-hendricks/MISO-PROYECTO-FINAL-SOLVENTA GitHub Wiki

Cumplimiento Axe y Nielsen · prototipo cliente

Auditoría de accesibilidad (WCAG 2.2 niveles A y AA, criterios que se pueden inspeccionar en diseño) y de usabilidad (10 heurísticas de Nielsen) sobre el prototipo Figma del cliente asegurado, después de la validación del 18 sep 2026.

Fuentes: Resultado de validación usabilidad de usuario · Vistas a actualizar · Arquitectura de información · Cliente L1 · Prototipo web/móvil

Figma S7 (páginas nuevas, no pisan el prototipo S6): Screens · S7 validación · Android · Screens · S7 validación · web

Figma Play S7 (navegable, para presentar):

Canal Flujo Arranca en
Android S7 · Solventa app splash-solventa → idioma → onboarding / login → habeas data → Inicio
Android S7 · i18n primer arranque idioma-region (paso 1 de 3)
Android S7 · Ubicación JIT permiso-ubicacion con diálogo del sistema
Web S7 · Web customer L1 login → registro → habeas data → Inicio
Web S7 · i18n primer arranque idioma-region (paso 1 de 3)
Web S7 · Ubicación evidencia evidencia-siniestro con permiso del navegador

Los flujos S7 llevan prefijo S7 · para no confundirlos con los de S6, que siguen intactos. Al clonar las pantallas, las interacciones heredadas apuntaban a los frames S6; se remapearon 166 destinos en Android y 123 en web a los clones S7. El único destino que sigue fuera de la página es intencional: el CHANGE_TO del Select de nueva-cotizacion, que apunta a la variante del componente en el Design System.


1. Qué se puede auditar y qué no

El prototipo a presentar es Figma Play sobre las páginas S7. axe-core necesita un DOM: un archivo Figma no se le puede pasar. La certificación WCAG del canal (axe + teclado + TalkBack / VoiceOver) queda para PF2, cuando exista código.

Superficie Herramienta Qué valida Qué no
Prototipo Figma S7 (esta auditoría) Inspección de tokens, tamaños, nombres de capa y orden; Options → Adapt content for screen readers en Play de escritorio Contraste de pares Light/Dark, hit targets, estado con texto y no solo color, labels de capa = nombre que lee el lector, orden de capas = tab axe no corre; TalkBack / VoiceOver iOS no leen prototipos Figma en el teléfono
Canal en código (PF2) axe-core + TalkBack / teclado sobre la app real WCAG 2.2 A–AA en ejecución Fuera de este avance

No se usa HTML auxiliar ni capturas Stitch como evidencia: esas vistas ya no forman parte del entregable.

Tableros de referencia del DS: Web a11y 60:2 · Android a11y 126:2. Los hallazgos S7 están al pie de cada página nueva, en A11Y + NIELSEN — S7.


2. Inspección WCAG en Figma S7 (20 sep 2026)

Contraste calculado sobre los fills de las capas (WCAG 2.2 1.4.3 AA: 4.5:1 texto normal, 3:1 texto grande).

Par (token) Ratio 1.4.3 AA Dónde se ve en S7
on-surface #181c1c / surface #f7faf9 16.4:1 cumple Títulos, valores, TopAppBar
on-surface-variant #3e4948 / surface #f7faf9 8.9:1 cumple Apoyos, stepper, cuerpo de cards
on-primary #ffffff / primary #005050 9.3:1 cumple CTA filled, splash Solventa
on-primary-container #97e7e6 / primary #005050 6.6:1 cumple Splash Aseguradora digital, panel de marca web
primary #005050 / surface #f7faf9 8.8:1 cumple CTA outlined, links
Helper de TextField #6e7979 / surface #f7faf9 4.28:1 no a 12 px “Como aparece en tu documento”, “Mínimo 8 caracteres”

Ninguna pantalla S7 baja el contraste con opacity sobre el texto: emision-progreso, poliza-emitida y parametrico usan on-surface-variant al 100 %.

Condición Web S7 Móvil S7 Nota
Pares Light/Dark del DS (primary → on-primary) cumple cumple Nunca texto primary sobre fill primary
Estado nunca solo por color cumple cumple Cada fila y cada card dicen el estado en texto (Vigente, Por vencer · en 7 días, Pago automático · pagado)
Locale seleccionado = borde + check + texto cumple cumple No se cambió
Nombres de capa = lo que pronuncia el lector cumple cumple Los textos nuevos se nombran con su contenido (Paso 3 de 3 · Tratamiento de datos)
Orden de capas = orden de tab cumple cumple Los nodos añadidos se insertaron en el índice correcto del auto-layout
Hit targets ≥ 48 dp cumple cumple Botones 49–52 px; BottomNav 80 px de alto
Contraste de helpers de campo (1.4.3) parcial parcial Token helper #6e7979 a 4.28:1; subir a on-surface-variant o oscurecer el helper
Etiquetas BottomNav (Material 12 sp) n/a parcial Labels a 10 px; el tab cumple hit target, el label no el tamaño del DS Material

Regla para PF2: no atenuar pasos pendientes con opacidad; usar el token de color. Sustituir el helper #6e7979 por on-surface-variant #3e4948 (8.9:1) o un gris que llegue a 4.5:1.


3. Matriz Nielsen · Web | Móvil

cumple / parcial / no es el estado en S6 (lo que vio Karen) frente a S7 (páginas nuevas de Figma ya editadas).

Heurística Hallazgo de la sesión Web S6 Móvil S6 S7 Qué se cambió
H1 Visibilidad del estado Éxito sin ramo; Aceptar → Ver mi póliza opaco; stepper del onboarding mal numerado parcial no cumple Stepper real: paso 1–3 en el alta y paso 1–4 en cotizar → oferta → emitir → pagar. poliza-emitida dice ramo y que la prima quedó pagada
H2 Lenguaje del usuario “paramétrico”; copy de marketing genérico; términos que no son de ley colombiana parcial parcial cumple Pago automático en ambos canales; habeas data con Ley 1581 de 2012; póliza, ramo, prima, siniestro
H3 Control y libertad Volver / Ahora no / Cancelar presentes en todos los flujos cumple cumple cumple Sin cambios
H4 Consistencia y estándares Web mostraba SOAT y Hogar; móvil mostraba dispositivo. Navegación mezcla cards y tabs no parcial cumple Web pasa a ramos L1 (Protección de dispositivo, Microseguro de vida, Clima y vuelos, Vida hipotecario). Un flujo = pasos dentro del tab; el salto a otro destino queda como atajo explícito
H5 Prevención de errores suscripcion-rechazada con motivo; login-error como variante cumple cumple cumple El motivo del rechazo ahora nombra el ramo
H6 Reconocer antes que recordar Inicio sin contexto; Nueva cotización invisible; cards sin ramo ni estado parcial no cumple Inicio agrupado por objeto (cotización / pólizas / siniestros / Vida hipotecario / Cotizar). Toda card y toda fila llevan ramo + estado. Columna Ramo en las tablas web
H7 Flexibilidad y eficiencia FAB en Android, Nueva cotización en Inicio y Pólizas (web), atajo Ir a siniestros cumple cumple cumple Cotizar entra desde Inicio y Pólizas, no desde el TopNav; no es un quinto destino
H8 Diseño minimalista Inicio con demasiados CTA del mismo peso parcial no cumple Los CTA quedan bajo el objeto al que pertenecen; reportar siniestro deja de competir con cotizar
H9 Recuperación de errores Estados denegados de permisos son la misma ruta con otra UI + Abrir ajustes cumple cumple cumple Sin cambios
H10 Ayuda y documentación Jerga de seguros sin glosario; consentimientos solo con switch no no parcial Ayuda in situ (“¿qué es la prima?”, guía de evidencia por ramo) y enlace al documento legal en cada consentimiento. Queda parcial: el glosario completo es contenido, no pantalla

4. Fuera de alcance

Navegación por teclado en Figma Play, mapa de asistencia y abogado en sitio (G-07), configuración de renovación automática como autoservicio (HU-66 / HU-67), ramos SOAT y Hogar en el cliente S6, rediseño de los cuatro destinos del asegurado. El prototipo back-office se audita aparte: Cumplimiento Axe y Nielsen · prototipo back-office. La validación con axe y TalkBack sobre el canal implementado es de PF2: aquí se inspecciona el prototipo Figma S7 del cliente.