TL;DR (Too Long; Didn’t Read... o básicamente: mucho texto, dame el resumen rápido)
Utilizar etiquetas <th> no es suficiente en tablas de dos dimensiones (donde hay encabezados en columnas y filas). Si no utilizas explícitamente los atributos scope="col" y scope="row", el lector de pantalla podría mezclar los ejes cartesianos al leer los datos.
La matemática relacional de las tablas HTML
Cuando una persona usuaria de JAWS o NVDA navega hacia la derecha (celda por celda) en una tabla de presupuesto, el lector recordará el encabezado superior y lo enunciará antes del número (ej. "Julio, 450.000 pesos"). Si el atributo scope falta, la relación de la WCAG 1.3.1 queda sujeta a la interpretación aleatoria del navegador.
El patrón erróneo: Código Accesible Deficiente
El uso de <th> en las celdas laterales sin indicar su dirección de alcance (scope).
<!-- MAL: Encabezados ambiguos -->
<table>
<tr>
<td></td>
<th>Semestre 1</th>
</tr>
<tr>
<th>Inversión Infraestructura</th>
<td>$1.000M</td>
</tr>
</table>
La Solución Accesible: Código Recomendado
Asignar vectores direccionales (col o row) a absolutamente todos los <th> de la tabla.
<!-- BIEN: Relaciones multidimensionales estrictas -->
<table>
<tr>
<td></td>
<th scope="col">Semestre 1</th>
</tr>
<tr>
<th scope="row">Inversión Infraestructura</th>
<td>$1.000M</td>
</tr>
</table>Metodología de Verificación y Testing
Pruebas Manuales con Lectores de Pantalla
Con NVDA, presionar T para saltar entre tablas. Una vez dentro de la tabla, usar Ctrl+Alt+Flechas para navegar celda por celda. Verificar que al moverse horizontalmente, el lector anuncie primero el encabezado de columna correspondiente y luego el dato de la celda.
Inspección del Árbol de Accesibilidad
En Chrome DevTools, seleccionar el elemento afectado en el panel Elements, luego abrir la pestaña Accessibility. Verificar que las propiedades Role, Name y State reflejen correctamente la intención del componente según el criterio WCAG 1.3.1.
Herramientas Automatizadas
Ejecutar Axe DevTools: las reglas relacionadas con estructura (ej: list, listitem, landmark-*) son altamente confiables para detectar violaciones del Criterio 1.3.1. Complementar con el validador HTML del W3C para errores de modelo de contenido.