La Etiqueta MAIN

Es un elemento semántico que representa el contenido principal único de una página web. Su propósito es agrupar el contenido central.
La etiqueta <main> es un elemento semántico que representa el contenido principal único de una página web. Su propósito es agrupar el contenido central (como artículos, formularios o secciones clave) y mejorar la accesibilidad, permitiendo que tecnologías como lectores de pantalla identifiquen rápidamente el contenido relevante.
Características clave:
-
Debe haber solo un
<main>por página. -
No debe incluir contenido repetitivo (como menús de navegación o pies de página).
-
Es parte de los elementos de landmark (puntos de referencia para accesibilidad).
Sintaxis básica
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <title>Ejemplo de <main></title> </head> <body> <header> <h1>Mi Sitio Web</h1> <nav>...</nav> </header> <main> <h2>Contenido Principal</h2> <p>Este es el contenido central de la página.</p> <!-- Artículos, secciones, formularios, etc. --> </main> <footer>...</footer> </body> </html>
Importancia para la accesibilidad
-
Los lectores de pantalla (como JAWS o NVDA) saltan directamente al
<main>para que los usuarios accedan al contenido relevante sin navegar por elementos repetitivos. -
Mejora el SEO, ya que los motores de búsqueda priorizan el contenido dentro de
<main>.
Casos de uso comunes
Página de blog
<main>
<article>
<h1>Título del artículo</h1>
<p>Contenido del artículo...</p>
</article>
<section class="comentarios">
<h2>Comentarios</h2>
<!-- Formulario y lista de comentarios -->
</section>
</main>
Tienda en línea
<main>
<h1>Productos destacados</h1>
<div class="productos">
<!-- Tarjetas de productos -->
</div>
</main>
Página de contacto
<main>
<h1>Contáctanos</h1>
<form>
<!-- Campos del formulario -->
</form>
</main>
Mejores prácticas
Úsalo una sola vez: Evita múltiples etiquetas <main> en una misma página.
Excluye contenido repetido: No incluyas headers, footers o sidebars dentro de <main>.
Combínalo con otros elementos semánticos:
<body>
<header>...</header>
<main>
<article>...</article>
<aside>...</aside> <!-- Solo si es parte del contenido principal -->
</main>
<footer>...</footer>
</body>
Jerarquiza el contenido: Usa encabezados (<h1>, <h2>) dentro de <main> para estructurar la información.
Errores comunes
Múltiples <main> en una página:
<!-- Incorrecto --> <main>...</main> <main>...</main>
Anidar <main> dentro de secciones repetitivas:
<!-- Incorrecto --> <header> <main>...</main> </header>
Usar <main> como contenedor genérico:
<!-- Incorrecto --> <main> <nav>...</nav> <!-- El menú no es contenido principal --> </main>
Estilización con CSS
Aunque <main> no tiene estilos por defecto, puedes personalizarlo:
main {
max-width: 1200px;
margin: 20px auto;
padding: 20px;
background: #fff;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
/* Para móviles */
@media (max-width: 768px) {
main {
padding: 10px;
}
}
Compatibilidad con navegadores
Soporte universal: Funciona en todos los navegadores modernos (Chrome, Firefox, Safari, Edge).
Fallback para navegadores antiguos:
Si necesitas soporte para IE11, agrega este script en el <head>:
<!--[if lt IE 9]>
<script>
document.createElement('main');
</script>
<![endif]-->
Ejemplo avanzado: Estructura completa
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Blog Semántico</title>
<style>
main {
background: #f9f9f9;
padding: 2rem;
}
</style>
</head>
<body>
<header>
<h1>Mi Blog</h1>
<nav>
<a href="/">Inicio</a>
<a href="/contacto">Contacto</a>
</nav>
</header>
<main>
<article>
<h2>Cómo usar HTML semántico</h2>
<p>Guía práctica para mejorar la accesibilidad...</p>
</article>
<section aria-label="Comentarios">
<h3>Deja tu comentario</h3>
<form>...</form>
</section>
</main>
<footer>
<p>© 2024 Mi Blog. Todos los derechos reservados.</p>
</footer>
</body>
</html>
Conclusión
La etiqueta <main> es esencial para crear páginas web accesibles, bien estructuradas y SEO-friendly. Al usarla correctamente, no solo mejoras la experiencia del usuario, sino que también facilitas el mantenimiento de tu código. ¡Inclúyela siempre en tus proyectos!