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.