75 votes

Comment interdire le vol de raccourcis clavier par les sites Web dans Firefox ?

De nombreux sites web, en particulier tout ce qui implique l'édition de texte riche (ce site est également coupable), volent les raccourcis clavier normalement utilisés pour contrôler Firefox et leur font faire autre chose à la place. C'est totalement exaspérant lorsque j'appuie sur quelque chose comme Cmd-number, Cmd-L, Cmd-T, ou Cmd-K et que cela ne fait pas ce que je veux. Est-ce que je peux l'arrêter ?

En fait, ce serait probablement mieux si je pouvais interdire le vol de tous les raccourcis Cmd-*. Je ne les ai jamais vus utilisés pour quoi que ce soit d'utile. Est-ce possible ?

29voto

Lambart Points 1032

Onze ans après le signalement du bogue, Mozilla s'est finalement penché sur cette demande de fonctionnalité populaire, et il semble que cela fonctionne bien maintenant (testé dans Firefox 66.0.3/Ubuntu).

(Merci à @PerJohansson d'avoir signalé qu'ils ont rendu le décor beaucoup plus difficile à trouver depuis FF 59).

Je viens de mettre à jour cette réponse avec des étapes plus simples, testées avec Firefox 75.

REMARQUE : si vous souhaitez désactiver les raccourcis pour les éléments suivants todo par défaut, naviguez vers about:config et de fixer la valeur de permissions.default.shortcuts à 2. Merci à @inetknght pour cette astuce, qui est également documentée ici : https://support.mozilla.org/en-US/questions/1241294#answer-1175070

Pour désactiver les raccourcis par site, vous trouverez des captures d'écran pour chaque étape ci-dessous.

  1. Appuyez sur Ctrl-I (si vous le pouvez) pour afficher la fenêtre Page Info ; ou bien cliquez avec le bouton droit de la souris sur une partie vide de la page web, et sélectionnez View Page Info dans le menu contextuel.
  2. Sélectionnez le Permissions onglet
  3. Ajustez le Override Keyboard Shortcuts réglage.

Voici quelques captures d'écran récentes (avril 2020) pour chaque étape.

  1. Si vous utilisez la souris pour ouvrir la fenêtre Page Info :

Firefox context menu

  1. Sélectionnez le Permissions onglet :

Firefox Page Info window

  1. Adaptez les autorisations en conséquence :

Firefox Permissions tab

Mozilla a plus d'informations sur le Page Info fenêtre ici :

https://support.mozilla.org/en-US/kb/firefox-page-info-window

Et si vous êtes intéressé par l'historique de ce correctif, voici les tickets Mozilla correspondants : https://bugzilla.mozilla.org/show_bug.cgi?id=380637 et https://bugzilla.mozilla.org/show_bug.cgi?id=1445942

26voto

Martin J.H. Points 489

Grâce à la nouvelle fonction Greasemonkey @run-at propriété, c'est désormais possible !

Je me suis inspiré de ce script y ce script pour les combiner dans un Userscript qui intercepte avec succès les raccourcis clavier. Ctrl + T y Ctrl + S . Je l'ai testé dans Firefox 17 ESR et Firefox 25.

// ==UserScript==
// @name           Disable Ctrl+s and Ctrl+t interceptions
// @description    Stop websites from highjacking keyboard shortcuts
//
// @run-at         document-start
// @include        *
// @grant          none
// ==/UserScript==

// Keycode for 's' and 't'. Add more to disable other ctrl+X interceptions
keycodes = [83, 84];  

(window.opera ? document.body : document).addEventListener('keydown', function(e) {
    // alert(e.keyCode ); //uncomment to find more keyCodes
    if (keycodes.indexOf(e.keyCode) != -1 && e.ctrlKey) {
        e.cancelBubble = true;
        e.stopImmediatePropagation();
    // alert("Gotcha!"); //ucomment to check if it's seeing the combo
    }
    return false;
}, !window.opera);

5voto

d34dh0r53 Points 1651

Des recherches approfondies montrent qu'à partir de la version actuelle de Firefox (3.6.x), c'est impossible - tous les conflits de liens clés sont résolus avec des priorités : Système > Site Web > Firefox - un ordre plutôt stupide. Aucun des modules complémentaires que j'ai essayés ne semble pouvoir résoudre ce problème.

Il est possible que cela devienne réalisable dans les prochaines versions, mais pour l'instant, la réponse est : impossible.

5voto

DMA57361 Points 18266

Puisque les problèmes semblent être des événements de clavier JavaScript qui volent les pressions de touche, ne serait-il pas possible de construire un script JavaScript (à utiliser via Greasemonkey) qui délier ces événements clavier, renvoyant ainsi au navigateur l'utilisation correcte de chaque raccourci ?

Je ne suis pas sûr que cela soit réalisable, mais quelqu'un ayant plus d'expérience en JavaScript / Greasemonkey pourrait être en mesure de vous aider (cela pourrait valoir la peine de demander sur SO).

4voto

njd Points 10568

Le problème est que n'importe quelle page peut exécuter un Javascript qui met en place un gestionnaire d'événements pour saisir les événements de pression sur le clavier, et les contrôles Javascript de Firefox ne sont pas suffisamment fins pour l'arrêter sans casser d'autres fonctionnalités Javascript.

La seule façon d'éviter ce problème est de désactiver le Javascript (Outils -> Options, onglet [Contenu], décochez l'option "Javascript"). Activer JavaScript ). Vous pouvez également désactiver Javascript sur une base individuelle avec une extension comme NoScript.

Firefox vous permet d'éviter certains Mais rien n'empêche les sites web d'intercepter les événements clavier.

Il existe peut-être une extension qui donne ce niveau de contrôle - je n'en ai pas connaissance.
Il y a Options Javascript mais cette extension n'est plus mise à jour.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X