| Elemento | Colores | Ratio | Estado |
|---|---|---|---|
|
Texto principal home
#1C1C1E sobre #FFFFFF
|
→
|
17.01 | ✓ PASS |
|
Caption secundario
#8E8E93 sobre #FFFFFF · Captions & labels de datos
|
→
|
3.26 | ✗ FAIL |
|
Etiqueta éxito verde
#FFFFFF sobre #34C759 · Chips y badges de logro
|
→
|
2.22 | ✗ FAIL |
|
Texto glass card
#6E6E73 sobre #F2F2F7 · Dashboard cards
|
→
|
4.54 | ✓ PASS |
|
Texto de error
#FF3B30 sobre #FFFFFF · Mensajes de validación
|
→
|
3.55 | ✗ FAIL |
Añadir VoiceOver labels a todos los elementos interactivos Manual
Qué: Chips de filtro, celdas de lista y botones de acción no tienen .accessibilityLabel(). Por qué: Sin etiquetas, VoiceOver lee el tipo de elemento genérico — inutilizable para usuarios con discapacidad visual. Cómo: Añadir .accessibilityLabel("Filtrar por cardio") y .accessibilityHint("Toca dos veces para activar") en cada elemento interactivo.
Corregir contraste caption secundario (3.26 → ≥4.5) 🟢 Tool-verified
Qué: #8E8E93 sobre fondo blanco falla WCAG AA (3.26 < 4.5). Afecta a todos los captions del dashboard. Por qué: Ilegible en condiciones de luz solar y para usuarios con baja visión. Cómo: Reemplazar con .secondary (color semántico SwiftUI) o usar #6E6E73 como mínimo — ratio 4.54 verificado.
Corregir contraste etiqueta verde éxito (2.22 → ≥4.5) 🟢 Tool-verified
Qué: Texto blanco sobre #34C759 tiene ratio 2.22 — el peor de la auditoría. Afecta chips de logro y badges. Por qué: Falla gravemente WCAG AA. Cómo: Cambiar texto a #1C1C1E (ratio 5.84 sobre verde) o usar un verde más oscuro #1A7A3D sobre fondo claro.
Expandir 4 tap targets al mínimo 44×44 pt 🟢 Tool-verified
Qué: Botón cerrar (28×28), chip filtro (80×32), icono perfil (32×32) y compartir (40×40) están por debajo del mínimo HIG. Por qué: Dificulta la interacción en uso con una mano y para usuarios con movilidad reducida. Cómo: Aplicar .frame(width: 44, height: 44) o padding invisible con .contentShape(Rectangle()) en SwiftUI — el glifo visual puede mantenerse pequeño.
Extender Dynamic Type a captions y labels de datos 🟡 Requiere dispositivo
Qué: Los labels de datos y captions usan tamaños de fuente hardcoded. Por qué: En configuración XXXL de accesibilidad, el texto se cortará. Cómo: Usar .font(.caption) y .font(.footnote) de SF Pro escalable en lugar de .font(.system(size: 12)).
Corregir contraste texto de error (3.55 → ≥4.5) 🟢 Tool-verified
Qué: #FF3B30 (.red system) sobre blanco da ratio 3.55. Por qué: Los mensajes de error son información crítica. Cómo: Usar .systemRed en dark mode (ajuste automático) o añadir un icono de error para no depender solo del color.
Completar Dark Mode con colores semánticos Manual
Qué: Pantalla de perfil usa colores hardcoded que no adaptan a modo oscuro. Cómo: Migrar a .label, .secondaryLabel, .systemBackground de UIColor — garantizan adaptación automática en Light/Dark/High Contrast.