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.