XG-Proyect-v3.x.x
XG-Proyect-v3.x.x copied to clipboard
Problemas de accesibilidad con lectores de pantalla
A pesar de que la interfaz es perfectamente manejable, hay varios aspectos de accesibilidad que se podrían mejorar para que una persona ciega que usa un lector de pantalla tenga una experiencia de juego óptima y pueda desplazarse por las distintas áreas con rapidez. Voy a enumerar algunos fallos que he encontrado, aunque estoy seguro de que no son todos:
- Imágenes sin texto alternativo: se pueden encontrar en los logotipos del comandante, almirante, tecnócrata, geólogo e ingeniero en la página principal. En el área de tecnologías, la primera columna de la tabla contiene también imágenes sin atributo alt, o con un atributo alt cuyo texto no es una alternativa a la imagen.
- Ausencia de puntos de navegación: no existen etiquetas semánticas que describan el propósito de las distintas secciones de cada página (main, header, footer, nav, listas con los enlaces de los menús...), y no hay encabezados que indiquen el título de la página o sus secciones. Los usuarios de lectores de pantalla podemos pulsar atajos de teclado para saltar rápidamente de una sección a otra. Esto puede ser crucial, por ejemplo, para coordinarse en una batalla.
- Las tablas entremezclan cabeceras de tabla (th) y celdas normales (td). Como consecuencia, si trabajamos en la última fila de una tabla, oímos el contenido de todas aquellas celdas que se consideran cabeceras. Por ejemplo, al construir un acorazado o una estrella de la muerte y situarnos para escribir en el cuadro donde se indica la cantidad, escuchamos algo como "0 0 0 0 0 0 0 0 0 0 0 0 0 0", haciendo referencia a los cuadros anteriores que no hemos rellenado.
Pruebas hechas con Mozilla Firefox y Google Chrome en Windows 10, lector de pantalla NVDA. Estoy ejecutando la aplicación en un Apache con PHP 8.0.2 y MariaDB 10.5.
Voy a intentar corregir algunos de los errores mediante pull requests. Trabajaré especialmente en aquellos que no impliquen un cambio en la apariencia visual. No obstante, prefiero abrir esta incidencia antes, ya que pueden aparecer más problemas y puede ser un buen lugar para debatir sobre ellos. Si prefieres que escriba en inglés, dímelo y lo haré, aunque me expreso peor.
CC @hxebolax
Se corrigen los textos alternativos del comandante, el almirante, el ingeniero, el geólogo y el tecnócrata en la pull request #492. Faltaban las 5 cadenas en los archivos de idioma, así que la plantilla renderizaba el nombre de las variables directamente.
Agrego en #494 varias correcciones de accesibilidad. Entre ellas:
- Texto alternativo en todas las imágenes. Hay algunas en las que está muy claro que se puede referenciar alguna variable. Otras tienen atributo title y no hacía falta tocarlas. Y en otras, simplemente se deja vacío.
- Regiones Aria mediante roles en algunos elementos div: ahora, las páginas del juego tienen 3 secciones claramente diferenciadas: cabecera, navegación y principal. No es lo ideal para los que nos dedicamos a saltar por encabezados, pero es la única manera de no dañar en modo alguno el aspecto visual. También se ha introducido el rol formulario en los elementos form.
- Atributo lang en el documento HTML. Es importante indicar al navegador en qué idioma está, y antes no se hacía o se hacía incorrectamente (lang="en" aunque la página estuviera en español).
- Otras correcciones menores.
Todavía hay un asunto pendiente con las tablas: se usan indistintamente elementos td y th con propósitos de maquetación. Los elementos th actúan como cabeceras, bombardeando al lector con información repetitiva y confusa. Puesto que cambiar todo a td afectaría a la apariencia, seguiré recurriendo a roles ARIA. Como estoy haciendo las pruebas con PHP 8.1, he aprovechado para corregir cosas en #491. También he encontrado alguna cadena más sin traducir, que he dejado en la pull request correspondiente.
The PR has been applied to XGP 4