IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Focus par l'utilisateur(rice) : ACCESSKEY vs tabulation


Sujet :

JavaScript

  1. #1
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut Focus par l'utilisateur(rice) : ACCESSKEY vs tabulation
    Hi, it's me again, spamming this forum with stupide questions again

    La question du jour est : est-il possible de distinguer l'origine du focus, entre celui provoqué par ACCESSKEY et les autres cas (tabulation surtout).

    Petite info pour les curieux(ses) qui ne connaissent pas ACCESSKEY (et pour être plus clair aussi) : ACCESSKEY est un attribut HTML, qui est aussi accessible en JavaScript via la propriété accessKey, et qui assigne un raccourci clavier à un élément.

    Ex: si je donne à l'attribut MACHIN (pas HTML standard celui-là) ACCESSKEY="B", alors lorsque je fait au clavier la combinaison de touche Alt-B, l'élément MACHIN recevra le focus.

    Le comportement produit par ACCESSKEY est variable : pour les bouton, l'occurence du raccourci indiqué produit l'événement onclick, et sur les autres éléments, il produit l'événement onfocus (ou donne le focus, ce qui est le comportement par défaut en dehors de tout gestionnaire d'événement).

    Mais voilà, j'en veux trop, et je voudrais que cela fonctionne pour tout les éléments comme ça fonctionne comme pour les bouton. Mais si je donne à tous les éléments concerné le même gestionnaire pour onfocus que pour onclick, ça ne conviendra pas, parce que je ne veux pas que la commande soit déclenchée par une simple arrivé sur l'élément par la touche de tabulation.

    Quelqu'un(e) a une idée de la manière dont on peut tester l'origine du focus ?

    Je n'ai malhreusement rien trouvé dans l'objet event, qui pourrait aider à cela.

    Heuuuu... bah marci encore

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    accesskey n'est pas une combinaison avec alt ?

    peut être avec une focntion en arrrière plan qui loggue les touches ...
    mais super lourd ...

  3. #3
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par SpaceFrog
    accesskey n'est pas une combinaison avec alt ?
    Ouk, c'est bien ça Mais on ne donne pas le Alt dans l'attribut. C'est-à-dire que si tu donne à l'attribut la valeur "X", alors la combinaison de touche est Alt+X (ou Alt-X, je ne sais plus comment on le note). Le Alt est implicite, et ne peut d'ailleurs pas être explicite.

    peut être avec une focntion en arrrière plan qui loggue les touches ...
    mais super lourd ...
    J'avais pensé à quelque chose de ce genre, mais moin lourd justement : tester la touche Alt au moment de l'événement focus, vu que l'access-key fonctionne avec Alt. Mais ça ne me parrait pas trés fiable.
    • La touche Alt peut déjà ne plus être enfoncée au moment de l'événement.
    • La touche Alt peut avoir été enfoncé pour autre chose qu'une combinaison access-key.
    • Même si la touche Alt est enfoncé au moment de l'événement, si aucune autre touche n'est enfoncée avec, rien ne garentie que Alt puisse être tester (c'est du javaScript, pas de la programmation système)

    Mais s'il n'y a pas d'autres solution, c'est celle-ci que j'envisage le plus... ou alors une autre peut-être encore, qui serait de mettre en place un autre gestionnaire de raccourci ne passant pas par access-key (mais j'aimerais mieux, parce que c'est standard)

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    La touche Alt peut déjà ne plus être enfoncée au moment de l'événement.
    j'ai mentionné un log (historique) des touches enfoncées ..;

  5. #5
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par SpaceFrog
    j'ai mentionné un log (historique) des touches enfoncées ..;
    Oui, excuse moi, mais je ne parlais pas de faire un log justement. Désolé si je me suis mal exprimé.

    Sinon à part ça, je viens de prendre le temps de faire des testes, et j'ai la certitude qu'il est pertinent de tester la touche Alt au moment de la prise de focus.

    Explications :

    La touche Alt est obligatoirement enfoncé au moment de la prise de focus par un access-key, car on doit abligatoirement relever la touche alphabétique avant la touche Alt, et c'est le fait de revelever la touche alphabétique pendant que la touche Alt est toujours enfoncée, qui valide l'occurence d'une access-key. Donc, la touche la touche Alt est obligatoirement enfoncée au moment de l'événement focus, et on peut donc la tester.

    J'ai fait les testes suivants :
    • Alt down, lettre down, lettre up, déclenchement focus, alt up (Ok)
    • Alt down, lettre down, alt up, lettre up - aucun événement focus, access key non validée
    • Alt down, lettre down, lettre up + alt up (relevées en même temps) - aucun événement focus, access key non-validée


    Maintenant, il s'agissait de savoir si la touche Alt ne risque pas d'être enfoncé pour une autre raison. Mais il n'y a aucune chance qu'une autre combinaison de touche impliquant Alt ne produise un focus que l'élément, parce que Alt est toujours utilisée pour les raccourcis ou la navigation, et un élément ne peut avoir qu'un seul raccourci.

    Donc on peut tester Alt sans risque d'erreur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. creation d'une fonction par l'utilisateur
    Par michelk dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 15/03/2005, 09h53
  2. SQL Server / Fonction définie par l'utilisateur
    Par borgfabr dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/03/2005, 15h14
  3. Modifier un type défini par l'utilisateur
    Par soazig dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/08/2004, 12h47
  4. Réponses: 10
    Dernier message: 18/11/2003, 18h01
  5. Fonctions définies par l'utilisateur
    Par DiGueDao dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/06/2003, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo