EniunEniunEniunEniun
  • Inicio
  • Blog
  • Cursos
  • Contactar
  • DTD
✕
            Sin resultados Ver todos los resultados

            Cómo hacer tablas accesibles

            • Inicio
            • Diseño y Usabilidad Accesibilildad
            • Cómo hacer tablas accesibles
            27/07/2023
            tablas accesibles

            como hacer tablas accesibles

            La importancia de hacer tablas accesibles radica en garantizar que todas las personas puedan acceder y comprender la información presentada en las tablas de un sitio web.

            Contenidos del artículo

            Toggle
            • 5. Cómo hacer tablas accesibles
              • 5.1. Utilizar encabezados de tabla
              • 5.2. Proporcionar una descripción
              • 5.3. Utilizar un diseño claro y sencillo
              • 5.4. Usar el atributo headers
              • 5.5. Agregar etiquetas <thead>, <tbody> y <tfoot>
              • 5.6. Evitar celdas vacías o duplicadas
              • 5.7. Proporcionar información adicional con <abbr> y el atributo title
              • 5.8. Hacer que la tabla sea responsive

            Por ejemplo, una persona con una barrera visual, como ceguera o baja visión, no puede leer correctamente una tabla si esta carece de etiquetas semánticas como <table>, <th>, y <td>, las cuales son esenciales para que los lectores de pantalla identifiquen cabeceras y celdas de datos. Además, la ausencia de descripciones o resúmenes que proporcionen un contexto general del contenido de la tabla, así como una estructura compleja sin un etiquetado adecuado, dificulta la interpretación correcta de la información.

            Por ello, una buena creación de tablas, además de mejorar la experiencia de usuario, fomenta la inclusión y cumple con los estándares de accesibilidad web, promoviendo un entorno digital más igualitario y accesible. Aparte, las tablas accesibles también benefician a los motores de búsqueda, ya que facilitan la indexación y comprensión del contenido, mejorando el posicionamiento en los resultados de búsqueda.

            5. Cómo hacer tablas accesibles

            Las tablas son una herramienta útil para presentar datos en un formato estructurado y fácil de entender. Sin embargo, para asegurarnos de que nuestras tablas sean accesibles para todos los usuarios, es importante seguir las siguientes pautas de accesibilidad.

            5.1. Utilizar encabezados de tabla

            Los encabezados de tabla ayudan a los usuarios a entender la estructura y el contenido de la tabla. Asegúrate de utilizar la etiqueta <th> para los encabezados de tabla y de incluir un atributo scope para indicar si el encabezado se aplica a una columna (scope="col") o a una fila (scope="row"). Esto mejorará la interpretación de la tabla por parte de los lectores de pantalla.

            Ejemplo 1 (Tabla de encabezados de columnas):

            <table>
              <tr>
                <th scope="col">Lenguaje</th>
                <th scope="col">Uso</th>
                <th scope="col">Popularidad</th>
              </tr>
              <tr>
                <td>Python</td>
                <td>Desarrollo web, ciencia de datos, IA</td>
                <td>Muy alta</td>
              </tr>
              <tr>
                <td>Java</td>
                <td>Aplicaciones empresariales, móviles</td>
                <td>Alta</td>
              </tr>
              <tr>
                <td>JavaScript</td>
                <td>Desarrollo frontend y backend</td>
                <td>Muy alta</td>
              </tr>
            </table>

            En esta tabla, los encabezados de columna (Lenguaje, Uso, Popularidad) organizan los datos por categorías relacionadas con lenguajes de programación, su uso principal y su nivel de popularidad.

            Ejemplo 2 (tabla de encabezados de columnas y filas):

            <table>
              <tr>
                <th scope="col">Área</th>
                <th scope="col">Herramienta</th>
                <th scope="col">Descripción</th>
              </tr>
              <tr>
                <th scope="row">Desarrollo Frontend</th>
                <td>React</td>
                <td>Biblioteca para construir interfaces de usuario dinámicas.</td>
              </tr>
              <tr>
                <th scope="row">Desarrollo Backend</th>
                <td>Node.js</td>
                <td>Entorno de ejecución para crear aplicaciones en JavaScript del lado del servidor.</td>
              </tr>
              <tr>
                <th scope="row">Diseño UI</th>
                <td>Figma</td>
                <td>Herramienta para diseñar interfaces de usuario de manera colaborativa.</td>
              </tr>
              <tr>
                <th scope="row">Accesibilidad</th>
                <td>AXE</td>
                <td>Extensión para analizar y mejorar la accesibilidad web.</td>
              </tr>
            </table>

            En este ejemplo, los encabezados de columna (Área, Herramienta, Descripción) organizan la tabla indicando la categoría general, la herramienta asociada y su descripción. Los encabezados de fila, definidos con <th scope="row">, describen cada fila completa, como «Desarrollo Frontend»

            5.2. Proporcionar una descripción

            Si tu tabla es compleja o contiene una gran cantidad de información, puede ser útil proporcionar una descripción para ayudar a los usuarios a entender su contenido. Puedes utilizar la etiqueta <caption> dentro de la etiqueta <table> para agregar una descripción a tu tabla.

            <table>
              <caption>Lista de participantes</caption>
              <tr>
                <th scope="col">Nombre</th>
                <th scope="col">Edad</th>
                <th scope="col">Ciudad</th>
              </tr>
              <tr>
                <td>Juan</td>
                <td>32</td>
                <td>Madrid</td>
              </tr>
              <tr>
                <td>Andrea</td>
                <td>27</td>
                <td>Elche</td>
              </tr>
            </table>

            El atributo summary se utilizaba en el elemento <table> para proporcionar una descripción de la tabla, pensada especialmente para lectores de pantalla. Sin embargo, ya está obsoleto en HTML5 y no se recomienda su uso, porque los usuarios sin discapacidad visual no pueden verlo, ya que no se muestra en la página. En su lugar, es mejor usar el elemento <caption>, que permite incluir un título o descripción visible de la tabla, accesible para todos los usuarios.

            5.3. Utilizar un diseño claro y sencillo

            Un diseño claro y sencillo ayuda a los usuarios a entender el contenido de la tabla. Evita utilizar colores o fuentes que puedan dificultar la lectura y asegúrate de que el contenido esté bien organizado y sea fácil de seguir.

            5.4. Usar el atributo headers

            El atributo headers se puede utilizar para asociar celdas de datos con celdas de encabezado en tablas complejas. Para ello, debemos asociar las celdas de datos (<td>) con los encabezados (<th>) mediante el atributo headers. Esto puede ayudar a mejorar la accesibilidad para usuarios que utilizan lectores de pantalla.

            <table>
              <tr>
                <th id="nombre">Nombre</th>
                <th id="edad">Edad</th>
                <th id="ciudad">Ciudad</th>
              </tr>
              <tr>
                <td headers="nombre">Juan</td>
                <td headers="edad">32</td>
                <td headers="ciudad">Madrid</td>
              </tr>
              <tr>
                <td headers="nombre">Andrea</td>
                <td headers="edad">27</td>
                <td headers="ciudad">Elche</td>
              </tr>
            </table>

            En este ejemplo, hemos utilizado el atributo headers para asociar cada celda de datos con su celda de encabezado correspondiente. Esto puede ayudar a los usuarios que utilizan lectores de pantalla a entender mejor la estructura y el contenido de la tabla.

            5.5. Agregar etiquetas <thead>, <tbody> y <tfoot>

            Las etiquetas <thead>, <tbody> y <tfoot> se pueden utilizar para mejorar la estructura y la accesibilidad de tus tablas. La etiqueta <thead> se utiliza para agrupar el contenido del encabezado de la tabla, la etiqueta <tbody> se utiliza para agrupar el contenido principal de la tabla y la etiqueta <tfoot> se utiliza para agrupar el contenido del pie de la tabla.

            <table>
              <thead>
                <tr>
                  <th>Nombre</th>
                  <th>Edad</th>
                  <th>Ciudad</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td>Juan</td>
                  <td>32</td>
                  <td>Madrid</td>
                </tr>
                <tr>
                  <td>Andrea</td>
                  <td>27</td>
                  <td>Elche</td>
                </tr>
              </tbody>
              <tfoot>
                <tr>
                  <td colspan="3">Total: 2 participantes</td>
                </tr>
              </tfoot>
            </table>

            En este ejemplo, hemos utilizado las etiquetas <thead>, <tbody> y <tfoot> para mejorar la estructura y la compatibilidad con lectores de pantalla.

            5.6. Evitar celdas vacías o duplicadas

            Las celdas vacías o duplicadas pueden dificultar la comprensión de la tabla para los usuarios, especialmente para aquellos que utilizan lectores de pantalla. Asegúrate de que todas las celdas de tu tabla contengan contenido relevante y evita duplicar información.

            Si necesitas fusionar celdas en una fila o columna, puedes utilizar los atributos colspan y rowspan para hacerlo. Estos atributos te permiten especificar cuántas columnas o filas debe ocupar una celda.

            <table>
              <tr>
                <th>Nombre</th>
                <th>Edad</th>
                <th>Ciudad</th>
              </tr>
              <tr>
                <td>Juan</td>
                <td>32</td>
                <td>Madrid</td>
              </tr>
              <tr>
                <td>Andrea</td>
                <td>27</td>
                <td>Elche</td>
              </tr>
              <tr>
                <td colspan="3">Total: 2 participantes</td>
              </tr>
            </table>

            En este ejemplo, hemos utilizado el atributo colspan para fusionar las tres celdas de la última fila en una sola celda. Esto nos permite mostrar un resumen del contenido de la tabla sin dejar celdas vacías o duplicar información.

            5.7. Proporcionar información adicional con <abbr> y el atributo title

            La etiqueta <abbr> se utiliza para indicar una abreviatura y el atributo title se utiliza para proporcionar información adicional sobre el contenido de la etiqueta.

            <table>
              <tr>
                <th>Nombre</th>
                <th>Edad</th>
                <th><abbr title="Ciudad de residencia">Ciudad</abbr></th>
              </tr>
              <tr>
                <td>Juan</td>
                <td>32</td>
                <td>Madrid</td>
              </tr>
              <tr>
                <td>María</td>
                <td>27</td>
                <td>Barcelona</td>
              </tr>
            </table>

            En este ejemplo, hemos utilizado la etiqueta <abbr> para indicar que la palabra «Ciudad» es una abreviatura de «Ciudad de residencia». También hemos utilizado el atributo title para proporcionar información adicional sobre el contenido de la celda.

            5.8. Hacer que la tabla sea responsive

            Hacer que tu tabla sea responsive, es decir, que se adapte al tamaño de la pantalla del dispositivo del usuario, puede mejorar significativamente su accesibilidad. Una tabla responsive se ajusta automáticamente para mostrar su contenido de manera clara y legible en pantallas de diferentes tamaños, lo que facilita su uso para todos los usuarios.

            Hay varias técnicas que puedes utilizar para hacer que tus tablas sean responsive. Una opción es utilizar consultas de medios para aplicar diferentes estilos a tu tabla según el tamaño de la pantalla del dispositivo. Otra opción es utilizar un diseño de cuadrícula flexible para permitir que las celdas de la tabla se ajusten automáticamente al tamaño de la pantalla. También puedes utilizar la propiedad overflow-x: auto; para permitir el desplazamiento horizontal en tablas grandes en dispositivos pequeños.

            Ejemplo 1: Tabla accesible responsive

            Esta tabla representa una lista de productos con sus precios y disponibilidad en euros. Cada columna está correctamente etiquetada con el atributo scope="col", y se han añadido los atributos id en las celdas de cabecera correspondientes. Las celdas de datos están etiquetadas con el atributo scope="row" para asociarlas con la cabecera de la columna correspondiente. Además, se ha añadido un pie de tabla (<tfoot>) que indica que los precios están expresados en euros.

            <table>
              <caption>Tabla de precios de productos</caption>
              <thead>
                <tr>
                  <th scope="col">Producto</th>
                  <th scope="col" id="precio-producto">Precio</th>
                  <th scope="col" id="disponibilidad-producto">Disponibilidad</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <th scope="row">Producto 1</th>
                  <td headers="precio-producto">20,00 €</td>
                  <td headers="disponibilidad-producto">En stock</td>
                </tr>
                <tr>
                  <th scope="row">Producto 2</th>
                  <td headers="precio-producto">25,00 €</td>
                  <td headers="disponibilidad-producto">Agotado</td>
                </tr>
              </tbody>
              <tfoot>
                <tr>
                  <td colspan="3">Precios en euros.</td>
                </tr>
              </tfoot>
            </table>


            Ejemplo en CodePen con estilos

            Ejemplo 2: Tabla accesible responsive

            En este ejemplo, la tabla muestra información sobre tres estudiantes y sus calificaciones en diferentes asignaturas. Los estilos aplicados son similares al ejemplo anterior, con bordes y relleno en las celdas para mejorar la legibilidad. Además, se utiliza el atributo scope para indicar el alcance de las celdas de encabezado y se agrega un pie de tabla para proporcionar información adicional sobre las calificaciones.

            Además, se utilizan los elementos y atributos HTML adecuados, como caption, thead, tbody, tfoot, th, y scope, para mejorar la estructura y la navegación para usuarios con discapacidades visuales o que utilizan lectores de pantalla.

            <table>
              <caption>Tabla de calificaciones de estudiantes</caption>
              <thead>
                <tr>
                  <th scope="col">Nombre</th>
                  <th scope="col">Asignatura</th>
                  <th scope="col">Calificación</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <th scope="row">Juan Pérez</th>
                  <td>Lengua y Literatura</td>
                  <td>8.5</td>
                </tr>
                <tr>
                  <th scope="row">María Gómez</th>
                  <td>Matemáticas</td>
                  <td>9.2</td>
                </tr>
                <tr>
                  <th scope="row">Carlos López</th>
                  <td>Ciencias Sociales</td>
                  <td>7.8</td>
                </tr>
              </tbody>
              <tfoot>
                <tr>
                  <td colspan="3">Calificaciones en escala de 0 a 10.</td>
                </tr>
              </tfoot>
            </table>


            Ejemplo en CodePen con estilos

            Siguiendo estas pautas, podrás hacer que tus tablas sean accesibles y ofrecer una mejor experiencia a todos los usuarios. Además, no te olvides de revisar el contraste entre el texto y el fondo y de realizar pruebas de accesibilidad para asegurarte de que la tabla sea accesible.

            Navegación de entradas

            ← Cómo hacer enlaces accesibles
            Cómo hacer formularios accesibles →

            Curso Accesibilidad

            • 1. Concepto accesibilidad web
            • 2. Pautas de accesibilidad WCAG
            • 3. Imágenes accesibles
            • 4. Enlaces accesibles
            • 5. Tablas accesibles
            • 6. Cómo hacer formularios accesibles
            • 7. Herramientas de análisis de accesibilidad web
            • 8. Ejercicios sobre accesibilidad web
            • 9. Mejores libros de accesibilidad web
            Ver más cursos

            ¡Invítanos a un café!

            ¿Cómo donar?
            Ayúdanos a seguir creando contenido relacionado con la informática y el diseño y desarrollo web en Eniun. ¡Gracias por tu apoyo!
            Eniun

            info@eniun.com
            Reportar un error

            Servicios

            Desarrollo Web
            Diseño Web
            Marketing Digital
            Social Media
            Experiencia de Usuario
            Cursos formativos

            Suscríbete a la newsletter

            Únete a nuestra comunidad para recibir contenido exclusivo y relevante para diseñadores y desarrolladores web.

            Apuntarme

            © 2026 Eniun | Política de privacidad y cookies

                      Sin resultados Ver todos los resultados