inert attribute
Baseline 2023 (Chrome 102, Safari 15.5, Firefox 112); amplamente disponível.
Chrome 102
Edge 102
Safari 15.5
Firefox 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.