HTML
Semántica
Los elementos HTML deben organizarse en bloques semánticos para:
- Mejorar el indexado de contenidos por parte de los buscadores
- Mejorar la accesibilidad a la web a personas con discapacidad (lectores de pantalla)
- Organizar el código de forma que sea más mantenible.
🔍 Nota: Es importante no confundir la organización del contenido (etiquetas semánticas) con su presentación (CSS). Este error es habitual, y de hecho había etiquetas HTML cuya funcionalidad era dar estilo (
<font>
,<center>
, etc.) y han sido deprecadas. Otro error es abusar de etiquetas de bloque sin semántica (<div>
,<span>
).
A continuación, se muestran diferentes elementos HTML usando etiquetas no semánticas:
<span>Título principal</span>
<div onclick="">Enviar formulario</div>
<b>Este texto es importante resaltarlo</b>
Párrafo 1<br><br>Párrafo 2
Campo: <input type="text">
Más información sobre accesibilidad <a href="">aquí</a>.
❓ Pregunta: ¿Con qué etiquetas semánticas sustituirías los anteriores elementos?
A continuación, se muestra un ejemplo de organización de una web usando los correspondientes bloques semánticos:
<body>
<header>
<h1>Cabecera común a toda la web</h1>
</header>
<nav><!-- Menú de navegación por la web -->
<ul>
<li><a href="#">Menu 1</a></li>
<li><a href="#">Menu 2</a></li>
</ul>
</nav>
<main> <!-- Contenido principal de la página actual-->
<article> <!-- Algo autocontenido, distribuible, reusable de forma independiente -->
<h2>Título del artículo</h2>
<section>
<h3>Título de una sección dentro del artículo</h3>
<p>Contenido de la sección</p>
</section>
<aside>
<h3>Contenido relacionado indirectamente: citas, tabla de contenidos, etc.</h3>
<figure>
<img alt="Imagen con leyenda" src="img">
<figcaption>Leyenda de la imagen</figcaption>
</figure>
</aside>
</article>
</main>
<footer>
<p>Pie de página para toda la web</p>
</footer>
</body>
❓ Ejercicio: Entra en esta página web e identifica cada sección con alguno de los bloques semánticos anteriores.