• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
FORMACIÓN SAP

Cómo hacer que las tablas web sean accesibles para todos

By s4pcademy 


Básicamente, los elementos HTML disponibles para definir tablas son elementos semánticos.

Así, por ejemplo, los navegadores (y otros agentes de usuario, como los lectores de pantalla) reconocerán directamente por el elemento que un elemento

es en realidad una tabla. Del mismo modo reconocen el encabezado de una tabla por el elemento

. Sin embargo, incluso con tablas, además del correcto uso de las correspondientes HTML elementos, conviene considerar algunos aspectos adicionales en materia de accesibilidad.

La estructura básica de la tabla

Primero, debe encerrar los encabezados de las tablas en un elemento

circundante (una excepción se discutirá en breve) y rodear las filas individuales (los registros de datos representados en el cuerpo de la tabla) con un elemento

. Además, opcionalmente puede agregar un pie de página a la tabla usando el elemento

.

Visualización de la tabla (ajustada con algo de CSS)

A continuación se muestra código HTML para definir una tabla accesible. Esto incluye el elemento

, no se pueden “agrupar” usando un elemento

. Entonces, en este caso, omitir el elemento

está bien (la excepción mencionada anteriormente).

información adicional

Puede encontrar más información sobre la construcción accesible de mesas en el sitio web WAI del W3C, específicamente en https://www.w3.org/WAI/tutorials/tables/. También encontrará información útil sobre lo que debe considerar con los encabezados de tablas anidadas.

Nota del editor: esta publicación ha sido adaptada de una sección del libro. Desarrollo web Full Stack: la guía completa por Philip Ackermann.




Cálculo de la huella de carbono organizacional utilizando SAP Product Footprint Management (Parte 2)
Previo
Adoptando una nueva era de datos e inteligencia artificial empresarial
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.

y una fila de una tabla por el elemento

, que agrega una breve descripción a una tabla. Esta información es particularmente útil para los usuarios que desean tener una idea rápida del contenido que representa la tabla. Si faltara este elemento, a los usuarios de lectores de pantalla, por ejemplo, se les leería primero el contenido de algunas celdas para determinar por sí mismos el significado de la tabla.

<!DOCTYPE html>

<html lang="en">

   <head>

       <title>Users</title>

       <meta charset="utf-8">

   </head>

   <body>

       <h1>Users</h1>

       <table>

           <caption>Users</caption>

           <thead>

               <tr>

                   <th>First Name</th>

                       <th>Last Name</th>

                   <th>Title</th>

               </tr>

           </thead>

           <tbody>

               <tr>

                    <td>Riana</td>

                   <td>Fresh</td>

                   <td>District Assurance Producer</td>

               </tr>

               <tr>

                   <td>Oscar</td>

                   <td>Spielvogel</td>

                   <td>Product Optimization Analyst</td>

               </tr>

               <tr>

                   <td>Lynn</td>

                   <td>Berning</td>

                   <td>Lead Accountability Administrator</td>

               </tr>

               <tr>

                   <td>Carolin</td>

                   <td>Plass</td>

                   <td>Investor Usability Strategist</td>

               </tr>

               <tr>

                   <td>Claas</td>

                   <td>Plotzitzka</td>

                   <td>Chief Implementation Analyst</td>

               </tr>

           </tbody>

           <tfoot>

               <tr>

                   <th>First Name</th>

                   <th>Last Name</th>

                   <th>Title</th>

               </tr>

           </tfoot>

       </table>

   </body>

</html>

Encabezados de tablas verticales y horizontales

El atributo de alcance, que se puede asignar a

elementos, especifica si el encabezado de la tabla respectiva se refiere a la columna asociada o a la fila asociada (es decir, si el encabezado es un encabezado vertical u horizontal).

De forma predeterminada, el encabezado de una tabla hace referencia a la columna asociada (por lo que el encabezado es vertical), lo que significa que, en este caso, el atributo de alcance es opcional. Sin embargo, como se muestra a continuación, un mejor enfoque es especificar explícitamente el valor de col de todos modos para adaptarse a los lectores de pantalla y acostumbrarse directamente al uso correcto.

<!DOCTYPE html>

<html lang="en">

   <head>

       <title>Users</title>

       <meta charset="utf-8">

   </head>

   <body>

       <h1>Users</h1>

       <table>

           <thead>

               <tr>

                   <th scope="col">First Name</th>

                   <th scope="col">Last Name</th>

                   <th scope="col">Title</th>

               </tr>

           </thead>

           <tbody>

                 ...

           </tbody>

           <tfoot>

                 ...

           <table/tfoot

       </table>

   </body>

</html>

Sin embargo, si la estructura de una tabla requiere la definición de encabezados de tabla que hacen referencia a las filas de la tabla correspondiente (como el calendario que se muestra en la siguiente figura), debe usar el valor de fila para el atributo de alcance de los encabezados de tabla correspondientes.

Tabla con encabezados de tabla verticales y horizontales

La siguiente lista muestra el código fuente correspondiente. Observe cómo en este ejemplo se utilizan encabezados horizontales (para definir las horas) y verticales (para definir los días de la semana).

<!DOCTYPE html>

<html lang="en">

<head>

   <title>Timetable</title>

   <link rel="stylesheet" href="https://blog.sap-press.com/styles.css">

   <meta charset="utf-8">

</head>

<body>

   <table>

       <caption>Timetable</caption>

       <tr>

           <td></td>

           <th scope="col">Monday</th>

           <th scope="col">Tuesday</th>

           <th scope="col">Wednesday</th>

           <th scope="col">Thursday</th>

           <th scope="col">Friday</th>

       </tr>

       <tr>

            <th scope="row">7.55 - 8.40</th>

           <td>English</td>

           <td>Music</td>

           <td>German</td>

             <td>Math</td>

           <td>PE</td>

       </tr>

       <tr>

           <th scope="row">8.45 - 9.30</th>

           <td>English</td>

           <td>German</td>

           <td>German</td>

           <td>Math</td>

           <td>PE</td>

       </tr>

       <tr>

           <th scope="row">9.30 - 9.50</th>

           <td>Recess</td>

           <td>Recess</td>

           <td>Recess</td>

           <td>Recess</td>

           <td>Recess</td>

       </tr>

       ...

   </table>

</body>

</html>

Nota: Dado que en los encabezados de tablas horizontales los elementos

están dentro de diferentes elementos