DevPath · Aprende a programar ESPTEN

HTML semántico, multimedia y tablas

Tablas accesibles para datos

¿Cuándo usar una tabla?

Las tablas son para datos tabulares: información que solo cobra sentido cruzando filas y columnas (un horario, una comparativa de precios, una tabla de clasificación). Si quitas las líneas y los datos se desordenan, era una tabla.

⚠️ Trampa clásica: usar tablas para maquetar el diseño de la página. Eso era de los 2000; hoy para colocar cosas en pantalla están CSS Grid y Flexbox. La tabla es para datos, no para el layout.

La anatomía de una tabla

<table>
  <caption>Notas del primer trimestre</caption>
  <thead>
    <tr>
      <th scope="col">Alumno</th>
      <th scope="col">Matemáticas</th>
      <th scope="col">Lengua</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Ana</th>
      <td>9</td>
      <td>8</td>
    </tr>
    <tr>
      <th scope="row">Luis</th>
      <td>7</td>
      <td>9</td>
    </tr>
  </tbody>
</table>

Pieza a pieza:

scope: el atributo que hace la tabla accesible

El atributo scope en un <th> indica a qué se aplica ese encabezado:

Esto es clave para la accesibilidad: cuando alguien con lector de pantalla está en la celda "9", el lector puede anunciar "Ana, Matemáticas: 9" porque sabe que "Ana" es el encabezado de su fila y "Matemáticas" el de su columna. Sin scope, solo oiría "9", sin contexto.

Una tabla bien marcada (con caption, thead/tbody y th scope) se entiende aunque la escuches a ciegas. Si pasa esa prueba, la tienes bien. Ese es el objetivo.

Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
← Multimedia: imágenes responsive, audio y vídeoVer el módulo →