Elementos semánticos en HTML
Los elementos semánticos de HTML son aquellos que aportan significado al contenido, indicando al navegador y a los desarrolladores cuál es el propósito o función de cada parte de la página. Mejoran la accesibilidad, la estructura lógica del documento y el posicionamiento SEO.
Estructura del documento
- <html>: Elemento raíz del documento.
- <head>: Contiene metadatos y configuraciones.
- <body>: Contiene el contenido visible.
- <header>: Encabezado de página o sección.
- <nav>: Bloque de enlaces de navegación.
- <main>: Contenido principal del documento.
- <section>: Sección temática del contenido.
- <article>: Contenido independiente o autónomo.
- <aside>: Contenido complementario o lateral.
- <footer>: Pie de página o cierre de una sección.
- <address>: Información de contacto o autoría.
Texto y contenido
- <h1>...<h6>: Encabezados jerárquicos.
- <p>: Párrafo de texto.
- <blockquote>: Cita larga.
- <q>: Cita corta.
- <abbr>: Abreviatura.
- <cite>: Referencia a una fuente o obra.
- <dfn>: Definición de un término.
- <time>: Fecha u hora.
- <code>: Fragmento de código.
- <var>: Variable.
- <samp>: Resultado de un programa.
- <kbd>: Entrada de teclado.
- <pre>: Texto preformateado.
- <em>: Énfasis semántico.
- <strong>: Énfasis importante.
- <mark>: Texto resaltado.
- <small>: Texto menos relevante.
- <del>: Texto eliminado.
- <ins>: Texto insertado.
- <hgroup>: agrupa un conjunto de encabezados (por ejemplo, título y subtítulo).
- <sub>: muestra texto en subíndice.
- <sup>: muestra texto en superíndice.
Listas y definiciones
- <ul>: lista no ordenada.
- <ol>: lista ordenada.
- <li>: elemento de lista dentro de- <ul>o- <ol>.
- <dl>: lista de definiciones.
- <dt>: término que se define dentro de un- <dl>.
- <dd>: descripción o definición asociada al- <dt>.
Tablas
- <table>: Tabla de datos.
- <caption>: Título o descripción de la tabla.
- <thead>: Encabezado de la tabla.
- <tbody>: Cuerpo principal de la tabla.
- <tfoot>: Pie de tabla.
- <tr>: Fila de tabla.
- <th>: Celda de encabezado.
- <td>: Celda de datos.
- <col>: Define una columna.
- <colgroup>: Agrupa columnas.
Formularios e interacción
- <form>: Contenedor de campos de entrada.
- <label>: Etiqueta asociada a un campo.
- <input>: Campo de entrada.
- <textarea>: Área de texto multilínea.
- <select>: Lista desplegable.
- <option>: Opción de selección.
- <optgroup>: Grupo de opciones.
- <button>: Botón interactivo.
- <fieldset>: Agrupa controles relacionados.
- <legend>: Título del- <fieldset>.
- <output>: Resultado calculado.
- <meter>: Medición dentro de un rango.
- <progress>: Progreso de una tarea.
- <datalist>: Lista de sugerencias para- <input>.
- <data>: Vincula texto visible con un valor de datos.
Multimedia
- <figure>: Contenedor independiente (imagen, código, diagrama…).
- <figcaption>: Leyenda o descripción de una figura.
- <picture>: Imagen adaptable.
- <img>: Imagen descriptiva.
- <audio>: Contenido de audio.
- <video>: Contenido de video.
- <track>: Subtítulos o descripciones.
- <map>: Mapa de imagen.
- <area>: Área clicable dentro de un mapa.
- <source>: Fuente alternativa para medios.
- <canvas>: Dibujo dinámico mediante JavaScript.
- <embed>: Inserta contenido externo.
- <object>: Incrusta recursos externos.
- <param>: Parámetro para- <object>.
- <iframe>: Documento embebido.
Secciones interactivas
- <details>: Contenedor desplegable.
- <summary>: Encabezado visible de- <details>.
- <dialog>: define un cuadro de diálogo o ventana modal.
- <menu>: representa un menú de comandos o contexto.
Metadatos y configuración
- <title>: Título del documento (pestaña del navegador).
- <meta>: Metadatos del documento.
- <link>: Relación con recursos externos.
- <style>: Reglas CSS embebidas.
- <script>: Código JavaScript.
- <noscript>: Contenido alternativo cuando JS está desactivado.
- <base>: URL base del documento.
<header>
    <h1>Mi sitio web</h1>
    <nav>
        <ul>
            <li><a href="#inicio">Inicio</a></li>
            <li><a href="#contacto">Contacto</a></li>
        </ul>
    </nav>
</header>
<main>
    <article>
        <h2>Nuevo artículo</h2>
        <p>Contenido principal del artículo.</p>
    </article>
    <aside>
        <h3>Notas</h3>
        <p>Información adicional relacionada.</p>
    </aside>
    <figure>
        <img src="foto.jpg" alt="Descripción de la foto">
        <figcaption>Una imagen con su descripción.</figcaption>
    </figure>
    <details>
        <summary>Leer más</summary>
        <p>Este texto se muestra al expandir.</p>
    </details>
    <p>Publicado el <time datetime="2025-01-01">1 de enero de 2025</time>.</p>
</main>
<footer>
    <address>Contacto: info@ejemplo.com</address>
    <p>Derechos reservados</p>
</footer>
Beneficios de usar elementos semánticos
- Accesibilidad: Los lectores de pantalla pueden interpretar mejor el contenido.
- SEO: Los motores de búsqueda comprenden mejor el contenido de la página, lo que mejora su clasificación.
- Mantenibilidad: El código es más fácil de leer y mantener.
Conclusión
El uso de elementos semánticos ayuda a crear páginas estructuradas, accesibles y comprensibles, tanto para los usuarios como para las máquinas.