inert attribute

Baseline 2023 (Chrome 102, Safari 15.5, Firefox 112); amplamente disponível.

Chrome 102Edge 102Safari 15.5Firefox 112

Remove uma subárvore do foco, dos cliques e da árvore de acessibilidade com um único atributo. Use para painéis off-canvas, etapas desabilitadas de um wizard, ou conteúdo atrás de um overlay customizado.

Step 1 (done)

Step 2

CSS
.fx-015 {
  display: grid;
  gap: 12px;
  font-family: system-ui
}
.fx-015-step {
  padding: 12px;
  border: 1px solid #ddd;
  border-radius: 8px
}
.fx-015-step[inert] {
  opacity: .5;
  filter: grayscale(1)
}
.fx-015 :is(a,button,input,select,textarea):focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
HTML
<section class="fx-015">
  <div inert class="fx-015-step"><h4>Step 1 (done)</h4><button>Edit</button></div>
  <div class="fx-015-step"><h4>Step 2</h4><button>Continue</button></div>
</section>

Fallback: Todos os navegadores evergreen suportam; os mais antigos deixariam o conteúdo focável, então defina também `aria-hidden` se você mirar neles.

Fonte: developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inert

Prompt

Use o atributo `inert` (não loops de `tabindex=-1` nem `pointer-events:none`) para desabilitar regiões inteiras: drawers fechados, etapas inativas de wizard, conteúdo da página atrás de um overlay não nativo. Estilize `[inert]` visualmente para os usuários verem que está indisponível, e remova o atributo quando a região voltar a ficar ativa.