Accesibilidad y modo oscuro

Corrección del modo oscuro y verificación de accesibilidad en el flujo de Registro.

11.1 Decisiones de accesibilidad

El modo oscuro no es un simple invertido del claro: Theme.kt define un DarkColorScheme y un LightColorScheme independientes, cada uno con su propio fondo, color de tarjetas (surfaceVariant) y variante de azul (AzulOscuroPrincipal / AzulOscuroSecundario), para mantener el contraste de la marca en vez de degradarlo. La app sigue automáticamente el tema del sistema con isSystemInDarkTheme(); no hay selector manual dentro de la app, coherente con P-4 (nada bloquea el arranque). El color dinámico de Material You (dynamicColor) está deshabilitado a propósito: la paleta de marca (azul #053394, verde #0EAF70, rojo #C42830) se mantiene fija sin importar el fondo de pantalla del dispositivo.

Tabla 11.1 · Decisiones de accesibilidad aplicadas
DecisiónDónde se implementa
Lectores de pantalla (TalkBack)Los íconos con función propia declaran contentDescription (p. ej. "Volver", "Borrar", la etiqueta de cada destino de la barra inferior); los decorativos —logos, íconos de fondo— usan contentDescription = null a propósito para que TalkBack no los anuncie dos veces.
Teclado numérico propioTecladoNumerico.kt anuncia cada tecla con Modifier.semantics { contentDescription = descripcion }, ya que al no ser el teclado del sistema no trae su propia semántica accesible.
Área táctil mínima56 dp en las acciones del flujo de registro (definido en la tabla 4.3 de wireframes, ítem A-1).
Texto mínimo legible20 sp para las cifras de la pantalla principal, para que se lean a un metro de distancia (principio P-3, §3.1).
Contraste de colorVerde/rojo para ingresos y gastos se refuerzan siempre con texto ("+"/"−" y la etiqueta), nunca dependen solo del color.

11.2 Capturas: claro y oscuro

Las mismas pantallas en la paleta clara y en la paleta oscura de DarkColorScheme, como evidencia visual de que el modo oscuro usa colores propios (fondo, tarjetas y acentos) y no un simple invertido del claro.

Resumen · claro
Pantalla Resumen con datos en modo claro
Resumen · oscuro
Pantalla Resumen con datos en modo oscuro
Registro, paso monto · claro
Paso de monto del registro en modo claro
Registro, paso monto · oscuro
Paso de monto del registro en modo oscuro
Registro, paso categoría · claro
Paso de categoría del registro en modo claro
Registro, paso categoría · oscuro
Paso de categoría del registro en modo oscuro
Historial · claro
Pantalla Historial en modo claro
Historial · oscuro
Pantalla Historial en modo oscuro