0Pricing
HTML Academy · Leçon

L’attribut hidden

Basculez la visibilité d’un élément avec l’attribut booléen hidden.

L’attribut hidden est une leçon HTML Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage HTML Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours HTML Academy comprend 4 leçons au total.

Qu’est-ce que l’attribut hidden ?

L’attribut hidden rend un élément invisible et le retire de l’arbre d’accessibilité :

<p hidden>This paragraph is hidden.</p>
<!-- Equivalent to: display: none in CSS -->
<!-- The element is in the DOM but not rendered -->
<!-- Screen readers do not announce hidden elements -->

hidden est un attribut booléen

Les attributs booléens sont soit présents (vrai), soit absents (faux) — aucune valeur n’est nécessaire :

<!-- All of these are equivalent: -->
<div hidden>Content</div>
<div hidden="">Content</div>
<div hidden="hidden">Content</div>

<!-- Remove with JavaScript: -->
element.removeAttribute('hidden');

<!-- Or set: -->
element.setAttribute('hidden', '');

hidden, display:none et visibility:hidden

Trois façons de masquer des éléments :

/* hidden attribute = display:none */
/* Element is removed from flow, invisible to AT */

/* visibility: hidden */
/* Element occupies space but is invisible */
/* Still read by some screen readers */

/* opacity: 0 */
/* Element occupies space, invisible, still interactive */
/* Still read by screen readers */

/* Hidden attribute is the simplest for fully hiding content */

Modifier la visibilité avec JavaScript

Contrôlez la visibilité en ajoutant ou en supprimant l’attribut hidden :

const modal = document.getElementById('modal');

// Show:
modal.removeAttribute('hidden');
// or:
modal.hidden = false;

// Hide:
modal.setAttribute('hidden', '');
// or:
modal.hidden = true;

// Toggle:
modal.toggleAttribute('hidden');

CSS peut remplacer hidden

CSS display peut remplacer l’attribut hidden — soyez prudent :

/* This makes hidden elements visible again: */
[hidden] {
  display: block !important;
}

/* Do not do this unless you have a very specific reason */

/* The hidden attribute should be trusted as the source of truth for visibility */

hidden et aria-hidden

Deux types de masquage différents :

  • hidden — masqué visuellement AND retiré de l’arbre d’accessibilité
  • aria-hidden="true" — masqué uniquement de l’arbre d’accessibilité, mais toujours rendu visuellement
<!-- hidden: nothing sees it -->
<div hidden>Completely hidden</div>

<!-- aria-hidden: visual users see it, screen readers skip it -->
<span aria-hidden="true">★★★★☆</span>
<span class="sr-only">4 out of 5 stars</span>

Modèle d’affichage et de masquage

Bascule classique d’affichage et de masquage avec hidden :

<button
  aria-expanded="false"
  aria-controls="menu"
  id="menu-btn"
>Menu</button>

<ul id="menu" hidden>
  <li><a href="/">Home</a></li>
  <li><a href="/about">About</a></li>
</ul>

<script>
document.getElementById('menu-btn').addEventListener('click', function() {
  const menu = document.getElementById('menu');
  const expanded = this.getAttribute('aria-expanded') === 'true';
  menu.hidden = expanded;
  this.setAttribute('aria-expanded', !expanded);
});
</script>

Valeur until-found (nouveauté)

HTML 5.1+ a introduit hidden="until-found" pour le contenu consultable par recherche mais replié :

<details>
  <summary>Read More</summary>
  <div hidden="until-found" id="more-content">
    <p>This content is collapsed but findable by Ctrl+F.</p>
  </div>
</details>
<!-- hidden="until-found" hides visually but allows browser Ctrl+F to find and reveal it -->
<!-- Only supported in Chromium-based browsers currently -->

Comportement des lecteurs d’écran

L’attribut hidden masque complètement le contenu aux technologies d’assistance :

  • Les lecteurs d’écran ignorent les éléments masqués
  • Le focus avec Tab n’entre pas dans les éléments masqués
  • C’est le comportement correct pour les modales, les menus hors écran et les panneaux conditionnels qui ne doivent pas être parcourus lorsqu’ils sont masqués

Cas d’utilisation courants

Quand utiliser l’attribut hidden :

  • Boîtes de dialogue modales avant leur ouverture
  • Contenu des panneaux d’onglets (afficher le panneau de l’onglet actif et masquer les autres)
  • Assistants étape par étape (afficher l’étape actuelle)
  • Affichage progressif (révéler plus d’informations au clic)
  • États de chargement (remplacer l’indicateur de chargement par le contenu)

Conserver l’état masqué

Utilisez localStorage pour mémoriser l’état de visibilité entre les chargements de page :

const panel = document.getElementById('info-panel');
const key = 'info-panel-visible';

// Restore state:
if (localStorage.getItem(key) === 'false') {
  panel.hidden = true;
}

// On toggle:
document.getElementById('toggle-btn').addEventListener('click', () => {
  panel.hidden = !panel.hidden;
  localStorage.setItem(key, !panel.hidden);
});

Vérification rapide

Quelle différence y a-t-il entre l’attribut hidden et aria-hidden ?

Récapitulatif : attribut hidden

Points essentiels de l’attribut hidden :

  • hidden — équivalent à display: none
  • Booléen : présent = masqué, absent = visible
  • Retiré de l’arbre d’accessibilité (contrairement à visibility: hidden)
  • À basculer avec element.hidden = true/false
  • aria-hidden="true" masque uniquement pour AT, tout en conservant le rendu visuel

Questions Fréquemment Posées

La leçon « L’attribut hidden » est-elle gratuite ?

Oui — le texte complet de « L’attribut hidden » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours HTML Academy, passe à CoddyKit PRO. Le cours HTML Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « L’attribut hidden » ?

Basculez la visibilité d’un élément avec l’attribut booléen hidden. Tu pratiques HTML Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer HTML Academy ?

Aucune expérience préalable n'est requise. HTML Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « L’attribut hidden » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon HTML Academy ?

Oui. Chaque leçon HTML Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. id, class, style et title
  2. L’attribut hidden
  3. tabindex et accesskey
  4. Attributs de données personnalisés data-*
← Retour à HTML Academy