mejoras de accesibilidad - jcrinconv/MISW4203-2026-12-ing-sw-apps-moviles GitHub Wiki

Para obtener sugerencias sobre cómo la app podría ser más accesible, se realizó un análisis con Accesibility Scanner, el cual puede ver a continuación:

Basado en estas sugerencias, se realizaron las mejoras listadas abajo. Si desea consultar los cambios en el código fuente, puede dirigirse al PR #107 Cambios para corregir sugerencias de accesibilidad.


1. Optimización de Áreas Táctiles (Touch Targets)

Se identificaron múltiples elementos con áreas de interacción por debajo del estándar recomendado de 48x48dp, lo que dificultaba la navegación para usuarios con movilidad reducida.

Intervención: Se eliminaron alturas fijas restrictivas y se implementó el uso de android:minHeight="48dp" junto con padding vertical interno.

Elementos afectados:

  • buttonCreate (Botón de creación en Toolbar): Incrementado de 27dp a 48dp.
  • etSearchAlbum / etSearch (Barras de búsqueda): Optimizadas para garantizar 48dp de altura interactiva.
  • btnAssociateTracks (Botón FAB en Detalle de Álbum): Incrementado de 36dp a 48dp.btn_cancel y btn_create (Formularios): Ajustados con wrap_content y padding para permitir crecimiento dinámico.

2. Contraste Cromático y Visibilidad

Se corrigieron ratios de contraste críticos en texto e iconografía que impedían la legibilidad a usuarios con baja visión o en condiciones de alta luminosidad.

Ajuste de Paleta: Se actualizó el color institucional wild_strawberry a #D81B60, logrando un ratio superior a 4.5:1 sobre texto blanco.

Texto sobre Fondo:

  • En la lista de Coleccionistas y Álbumes, se cambió el color de los subtítulos (emails, géneros, fechas) de gris a blanco, elevando el ratio de contraste a niveles óptimos (>7:1).
  • En el botón de Asociar Canción, se cambió el texto de blanco a negro sobre el fondo degradado claro para maximizar la legibilidad.

Iconografía: Se aplicó app:tint="@color/white" a iconos de navegación (chevrons), calendarios y categorías, eliminando la ambigüedad visual contra fondos oscuros.

Separación Visual: Se modificó el fondo de las tarjetas (CardView) de #1E1E1E a #2A2A2A para mejorar la definición de los componentes sobre el fondo negro (#0E0E0E).


3. Escalabilidad de Texto (Text Scaling)

Se resolvieron errores de "Ajuste de Texto" donde elementos con alturas rígidas provocaban el recorte (clipping) del contenido al aumentar el tamaño de fuente del sistema.

Layouts Flexibles: Se reemplazaron atributos layout_height con valores fijos por wrap_content.

Campos de Texto Multilínea: En el campo de descripción del álbum, se sustituyó la altura fija de 120dp por android:minLines="5", permitiendo que el contenedor se expanda fluidamente según el volumen de texto y la escala del sistema.

Spinners y Menús: Se añadió android:dropDownHeight="wrap_content" y se rediseñó item_spinner.xml con paddings dinámicos para evitar que las opciones de selección quedaran ocultas al escalar el texto.


4. Exposición de Contenido (Screen Readers)

Se corrigieron advertencias de "Texto no expuesto" para asegurar que los servicios de asistencia (TalkBack) transmitan toda la información relevante.

Descripciones Dinámicas: Se implementó el atributo contentDescription dinámico en los Adapters (CollectorAdapter, CollectorDetailAdapter):

  • Ahora las tarjetas de coleccionistas anuncian: "Coleccionista: [Nombre], Correo: [Email]".
  • Las tarjetas de álbumes en detalle anuncian: "[Título], [Artista], [Descripción], calificación [X] de 5 estrellas".

Jerarquía de Nodos: Se agruparon elementos informativos para que el foco de accesibilidad lea el contexto completo del componente en una sola interacción, mejorando la velocidad de navegación.

⚠️ **GitHub.com Fallback** ⚠️