tabindex en CSS
est-il possible de contrôler tabindex avec CSS et si oui, quels navigateurs le supportent et sur quels éléments?
EDIT
je devrais dire, mon but est de rattraper les évènements de keydown sur un div. J'ai vu cette page http://www.quirksmode.org/js/events/keys.html# qui teste les évènements du clavier et montre que le seul moyen pour que keydown tire sur autre chose que le document et le corps ou une sorte d'élément de forme ou de lien est de faire déclarer tabindex dessus. Mais J'ai lu sur le site du W3C:
les éléments suivants soutiennent attribut tabindex: A, zone, bouton, INPUT, OBJECT, SELECT, and TEXTAREA.
alors je suis un peu confus, que faire pour être compatible avec standarts et faire fonctionner mon use case?
EDIT2
tout mon cas d'utilisation est une div avec beaucoup de contenu avec une barre de défilement artificielle. Je suis capable de le faire défiler avec les évènements de la souris mais pas de chance avec le clavier donc loin.
2 réponses
mise à Jour de 2017
comme le souligne @Wallop dans les commentaires, le nav-index
propriété passé de la spec en 2015 en raison du"manque d'intérêt pour la mise en œuvre".
regardez nav-index
propriété introduite par W3C dans CSS3-UI.
Cette propriété a exactement le même comportement qu'un tabindex
et s'applique à n'importe quel élément.
le " nav-index’ la propriété est une façon neutre de spécifier l'ordre de navigation séquentiel (aussi appelé "tabbing order"). Cette propriété remplace l'attribut HTML4 / XHTML1 "tabindex"
étant probablement la meilleure solution conforme aux normes pour le cas d'utilisation,nav-index
est interprété uniquement par Opera jusqu'à présent (à partir de juin 2012) et est également marqué comme "caractéristique à risque" par W3C, donc peut être abandonné à tout moment.
autres solutions de navigation croisée sont:
non conforme aux normes: définissez le
tabindex
attributDIV
. Cela fonctionnera dans tous les navigateurs courants.conforme aux normes: remplacez
DIV
par un élément d'ancrage (A
sanshref
ensemble d'attributs de style avecdisplay: block
tabindex
l'attribut.
en ce qui concerne BoltClocks point, je suis d'accord que l'ordre de tabbing est très logique (à la fois l'ordre de sélection de texte et l'ordre des onglets est étroitement lié à la séquence dans laquelle les éléments sont enchevêtrés dans le document). D'un autre côté, la SSC a aujourd'hui un objectif plus vaste. Il peut manipuler non seulement le contenu d'un document (content
propriété) mais aussi le comportement quand et si des événements doivent être lancés: i.e. en utilisant pointer-events
,display
ou z-index
l'ordre de l'événement pointeur va changer. Si ce sont des propriétés CSS très basiques, pourquoi ne devriez-vous pas être en mesure d'influencer KeyBoardEvents, aussi?
c'est un peu vieux mais maintenant il y a des options css comme-moz-user-focus. Je suis sûr qu'il y a un équivalent de webkit.
https://developer.mozilla.org/en-US/docs/CSS/-moz-user-focus