El Atributo HIDDEN

Se utiliza para ocultar elementos de la vista del usuario y de tecnologías de asistencia (como lectores de pantalla)
Tutorial: Uso del Atributo hidden
en HTML
El atributo hidden
en HTML se utiliza para ocultar elementos de la vista del usuario y de tecnologías de asistencia (como lectores de pantalla). Indica que el contenido no es relevante en el contexto actual, pero puede mostrarse dinámicamente mediante JavaScript. Aquí un tutorial detallado:
¿Qué hace el atributo hidden
?
Propósito: Oculta un elemento visualmente y lo excluye del árbol de accesibilidad.
Efecto: Aplica display: none
de forma predeterminada, eliminando el elemento del flujo del documento.
Sintaxis: Es un atributo booleano (no necesita valor).
<p hidden>Este texto está oculto.</p>
Casos de Uso
-
Contenido condicional: Mostrar/ocultar secciones basadas en interacciones del usuario (ej: mensajes de error, modales).
-
Evitar desplazamientos de layout (CLS): Ocultar elementos hasta que se cargue contenido crítico.
-
Mejorar la semántica: Indicar que un elemento no es relevante temporalmente.
Ejemplos Prácticos
Ejemplo 1: Mensaje de error oculto
<div id="mensajeError" hidden> ¡Error! Completa todos los campos. </div> <button onclick="document.getElementById('mensajeError').hidden = false"> Mostrar error </button>
Ejemplo 2: Formulario paso a paso
<form> <!-- Paso 1 (visible) --> <div id="paso1"> <input type="text" placeholder="Nombre"> <button type="button" onclick="mostrarPaso2()">Siguiente</button> </div> <!-- Paso 2 (oculto inicialmente) --> <div id="paso2" hidden> <input type="email" placeholder="Correo"> <button type="submit">Enviar</button> </div> </form> <script> function mostrarPaso2() { document.getElementById('paso1').hidden = true; document.getElementById('paso2').hidden = false; } </script>
Diferencias entre hidden
y CSS display: none
Aspecto | Atributo hidden |
CSS display: none |
---|---|---|
Semántica | Indica irrelevancia contextual. | Solo afecta la presentación visual. |
Accesibilidad | Oculta el elemento de lectores. | Puede no ocultarlo si no se usa aria-hidden . |
Mantenimiento | Más simple para mostrar/ocultar. | Requiere manipulación de clases/estilos. |
Buenas Prácticas
No uses hidden
para contenido relevante:
Si el elemento es parte de la experiencia principal, usa CSS en su lugar.
Combina con ARIA para cambios dinámicos:
Si el elemento se muestra/oculta, usa aria-live
para notificar a lectores de pantalla.
<div hidden aria-live="polite">Mensaje importante.</div>
Evita ocultar elementos interactivos:
Si un botón o enlace está oculto, no podrá recibir foco.
JavaScript: Mostrar/Ocultar
Puedes manipular el atributo hidden
directamente:
// Ocultar elemento.hidden = true; // o elemento.setAttribute('hidden', ''); // Mostrar elemento.hidden = false; // o elemento.removeAttribute('hidden');
Accesibilidad
Elementos ocultos:
No son accesibles mediante navegación por teclado o lectores de pantalla.
Alternativas:
Si necesitas ocultar visualmente pero mantener accesibilidad, usa:
.visually-hidden { position: absolute; clip: rect(0 0 0 0); width: 1px; height: 1px; margin: -1px; }
Errores Comunes
Error 1: Usar hidden
con CSS que lo anula
<div hidden style="display: block;"> <!-- ¡Sigue visible! --> </div>
Error 2: Ocultar contenido crítico para SEO
<h1 hidden>Palabras clave importantes</h1> <!-- Puede penalizar SEO -->
Soporte en Navegadores
Todos los navegadores modernos (Chrome, Firefox, Safari, Edge) soportan hidden
.
Polyfill para navegadores antiguos (ej: IE10):
[hidden] { display: none !important; }
Conclusión
El atributo hidden
es una herramienta sencilla y semántica para gestionar la visibilidad de elementos en HTML. Úsalo para ocultar contenido no relevante y mejora la experiencia de usuario combinándolo con JavaScript y buenas prácticas de accesibilidad.