boolean

inert

Rend un élément et tous ses descendants inactifs : ils ne reçoivent plus d'événements, sont exclus de la navigation au clavier et invisibles aux technologies d'assistance.

Description

L’attribut booléen inert désactive complètement une section du DOM : les éléments inert ne peuvent plus recevoir le focus, ne répondent plus aux événements (clic, clavier…), sont ignorés par les lecteurs d’écran, et exclus de la recherche dans la page. Il est idéal pour bloquer l’interaction avec du contenu en arrière-plan (modales, panneaux désactivés).

Syntaxe

<div inert>
  <button>Ce bouton est inaccessible</button>
  <input type="text" placeholder="Ce champ est inaccessible">
</div>

Exemples

Fenêtre modale bloquant le contenu principal :

<main id="contenu-principal">
  <p>Contenu de la page</p>
</main>

<dialog id="modal" open>
  <h2>Titre de la modale</h2>
  <button type="button" id="fermer">Fermer</button>
</dialog>

<script>
  const main = document.getElementById('contenu-principal');
  const fermer = document.getElementById('fermer');

  // Bloquer l'interaction avec le fond
  main.inert = true;

  fermer.addEventListener('click', () => {
    main.inert = false;
    document.getElementById('modal').close();
  });
</script>

Notes

Meilleure alternative à tabindex="-1" : inert est plus complet que tabindex="-1" car il bloque aussi les clics, les événements et les lecteurs d’écran sur tout le sous-arbre.

Pas de style visuel par défaut : inert ne modifie pas l’apparence. Ajouter [inert] { opacity: 0.5; pointer-events: none; } pour signaler visuellement l’état inactif.

<dialog> gère inert automatiquement : quand un <dialog> est ouvert avec showModal(), le navigateur pose automatiquement inert sur le reste du document — pas besoin de le gérer manuellement.

Support navigateurs

Chrome102+ · Firefox112+ · Safari15.5+ · Edge102+