Un buen HTML semántico es, sin duda, uno de los pilares fundamentales para construir un sitio web accesible (a11y).
Cuando utilizas las etiquetas HTML de acuerdo con su significado o propósito real (por ejemplo, <nav> para la navegación, <article> para un artículo autocontenido, <h1> para el encabezado principal), proporcionas una estructura clara y rica en información que las tecnologías de asistencia (AT), como los lectores de pantalla que utilizan las personas con discapacidad visual, pueden interpretar y transmitir de manera efectiva a sus usuarios.
<header> (cabecera), <nav> (navegación), <main> (contenido principal), <aside> (contenido complementario) y <footer> (pie de página) definen regiones o «hitos» clave. Los usuarios de lectores de pantalla pueden listar estos hitos y navegar directamente a la sección que les interesa, lo que facilita enormemente la exploración de páginas complejas. Sin estos, la página podría parecer un bloque indiferenciado de contenido. <body> <header>...</header> <nav>...</nav> <main>...</main> <aside>...</aside> <footer>...</footer> </body><h1> a <h6>) crea un esquema del documento. Los usuarios de AT pueden listar los encabezados o navegar de uno a otro para entender la estructura del contenido y encontrar rápidamente la información que buscan.<button> es anunciado como «botón» por un lector de pantalla y es operable por teclado (con Enter y Espacio) por defecto. Si intentaras crear un botón visualmente con un <div> y CSS, un lector de pantalla solo lo vería como un div genérico, a menos que añadieras atributos ARIA (role="button", tabindex="0") y gestionaras los eventos de teclado con JavaScript. El HTML semántico te da esto «gratis». <button onclick="realizarAccion()">Comprar Ahora</button> <div class="mi-boton-falso" onclick="realizarAccion()">Comprar Ahora</div><label> asociado correctamente con sus controles <input>, <select>, etc. (mediante el atributo for y el id del control) es vital. Permite que los lectores de pantalla anuncien la etiqueta descriptiva cuando el usuario enfoca el control del formulario.<ul> (no ordenada), <ol> (ordenada) y <dl> (de descripción), junto con <li>, <dt> y <dd>, informan a las AT sobre la estructura de la lista y el número de elementos, ayudando al usuario a entender el contexto.<table> con <caption>, <thead>, <tbody>, <tfoot>, <th> (con atributos scope para indicar si son cabeceras de fila o columna) permite a los usuarios de AT navegar y comprender las relaciones complejas entre los datos de una tabla.En conclusión, el HTML semántico es la base sobre la cual se construye una web accesible. Al describir el «qué» y el «por qué» de tu contenido, en lugar de solo el «cómo se ve», permites que una gama más amplia de usuarios y tecnologías puedan acceder y comprender tu información de manera efectiva.