O tabindex
atributo define explicitamente a ordem de navegação para elementos focalizáveis (normalmente links e controles de formulário) em uma página. Também pode ser usado para definir se os elementos devem ser focalizáveis ou não.
[Ambos] tabindex="0"
e tabindex="-1"
têm um significado especial e fornecem funcionalidades distintas em HTML. Um valor de 0
indica que o elemento deve ser colocado na ordem de navegação padrão. Isso permite que os elementos que não são nativamente focalizável (tais como <div>
, <span>
, e <p>
) para receber o foco do teclado. É claro que geralmente se deve usar links e controles de formulário para todos os elementos interativos, mas isso permite que outros elementos sejam focalizáveis e acionem a interação.
Um tabindex="-1"
valor remove o elemento do fluxo de navegação padrão (ou seja, um usuário não pode acessá-lo), mas permite que ele receba foco programático , o que significa que o foco pode ser definido a partir de um link ou com script. ** Isso pode ser muito útil para elementos que não devem ser tabulados, mas que podem precisar ter o foco definido para eles .
Um bom exemplo é uma janela de diálogo modal - quando aberta, o foco deve ser definido para o diálogo para que um leitor de tela comece a ler e o teclado comece a navegar dentro do diálogo. Como a caixa de diálogo (provavelmente apenas um <div>
elemento) não tabindex="-1"
pode ser focalizada por padrão, atribuí-la permite que o foco seja definido com o script quando for apresentada.
Um valor de -1
também pode ser útil em widgets e menus complexos que utilizam teclas de seta ou outras teclas de atalho para garantir que apenas um elemento dentro do widget seja navegável com a tecla tab, mas ainda permite que o foco seja definido em outros componentes dentro do widget.