Quel est le tabindex
à quoi sert cet attribut en HTML ?
J'ai découvert que <div tabindex>
fonctionne également. Y a-t-il une raison de ne pas l'utiliser ?
tabindex
est un attribut global responsable de deux choses :
À mon avis, la deuxième chose est encore plus importante que la première. Il y a très peu d'éléments qui sont focalisables par défaut (par exemple, les <a> et les contrôles de formulaire). Les développeurs ajoutent très souvent certains gestionnaires d'événements JavaScript (comme 'onclick') sur les éléments non focalisables (<div>, <span> et ainsi de suite), et le moyen de rendre votre interface réactive non seulement aux événements de la souris mais aussi aux événements du clavier (par exemple 'onkeypress') est de rendre ces éléments focalisables. Enfin, si vous ne souhaitez pas définir l'ordre mais simplement rendre votre élément focalisable, utilisez la commande tabindex="0"
sur tous ces éléments :
<div tabindex="0"></div>
De plus, si vous ne voulez pas qu'il soit possible de le mettre en évidence à l'aide de la touche de tabulation, utilisez l'option tabindex="-1"
. Par exemple, le lien ci-dessous ne sera pas mis en évidence si vous utilisez les touches de tabulation pour naviguer.
<a href="#" tabindex="-1">Tab key cannot reach here!</a>
J'ai découvert que <div tabindex>
fonctionne également. Y a-t-il une raison de ne pas l'utiliser ?
L'utilisation de tabindex de -1 est pratique pour des choses comme les liens de saut. Vous pouvez faire en sorte qu'un élément soit lié à un élément situé juste au-dessus du contenu vers lequel vous essayez de diriger l'utilisateur sans que l'élément lié soit lui-même accessible.
Il convient de noter -- et la réponse devrait probablement être corrigée -- que la valeur -1
ne convient pas lorsque vous "ne voulez pas qu'il soit ciblé", mais plutôt lorsque vous voulez empêcher la focalisation en raison de la navigation au clavier. L'élément peut toujours être ciblé, mais pas par le clavier.
Contrôle de l'ordre de tabulation (en appuyant sur la touche tab pour déplacer le focus) dans la page.
Référence : http://www.w3.org/TR/html401/interact/forms.html#h-17.11.1
De plus, le fait d'avoir un index de tabulation permet de sélectionner un élément par un clic de souris. (Ajoute des contours en pointillés, peut être stylisé à l'aide de la fonction :focus
)
@Pumbaa80 Vous pouvez de toute façon sélectionner n'importe quel élément d'entrée par un clic de souris, et il en va de même pour l'utilisation du CSS ":focus". L'attribut tabindex est facultatif.
Cela ne vaut que pour les éléments de saisie. Mon commentaire s'applique à tout type d'élément. Voir jsfiddle.net/XsYCj pour un exemple.
Les valeurs que vous définissez déterminent l'ordre dans lequel le focus du clavier se déplacera entre les éléments du site Web.
Dans l'exemple suivant, la première fois que vous appuyez sur la touche tabulation, votre curseur se déplacera vers #foo, puis #awesome, puis #bar.
<input id="foo" tabindex="1" />
<input id="bar" tabindex="3" />
<input id="awesome" tabindex="2" />
Si vous n'avez défini d'index de tabulation nulle part, le focus du clavier suivra les balises HTML de votre page dans l'ordre dans lequel elles sont définies dans le document HTML.
Si vous utilisez la tabulation plus de fois que vous n'avez spécifié d'index de tabulation, le focus se déplacera comme s'il n'y avait pas d'index de tabulation, c'est-à-dire dans l'ordre d'apparition des balises HTML.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.