Détecter le changement de focus clavier

Fermé
CoBC - 11 janv. 2023 à 23:52
utub Messages postés 117 Date d'inscription dimanche 29 avril 2012 Statut Membre Dernière intervention 15 janvier 2023 - 14 janv. 2023 à 23:57

Bonjour,

j'ai sur mon site une zone de slider (avec un contenu qui change régulièrement). Pour améliorer l'accessibilité de la chose, j'aimerais que lorsque le focus  entre dans la région (div) du slider le défilement s'arrête.

Actuellement, j'ai fais ça:

document.getElementById("slidershow").addEventListener("focusin", focuspause(true));

Et ma fonction focuspause est la suivante:

function focuspause(slidefocus) {
    slidepause = !slidefocus;
    clickpause();
}

Et ma fonction clickpause:

function clickpause() {
    if(slidepause) {
        slideint = setInterval(slide, 13000);
        $("#slidepause").attr("class", "");
    }
    else {
        clearInterval(slideint);
        $("#slidepause").attr("class", "slidepaused");
    }
    slidepause = !slidepause;
}

Le problème est que, lorsque je navigue au clavier (flèches) jusqu'à la div concernée, le défilement ne s'interrompt pas. Je précise que j'utilise un lecteur d'écran, peut-être celui-ci ne permet pas au navigateur d'émettre les évènements focus habituels et donc est-il la cause du problème, hors c'est précisément aux utilisateurs de lecteurs d'écran que s'adresse tout particulièrement cette fonctionnalité.

Auriez-vous une idée?

Merci.

A voir également:

1 réponse

utub Messages postés 117 Date d'inscription dimanche 29 avril 2012 Statut Membre Dernière intervention 15 janvier 2023 21
14 janv. 2023 à 23:57

Il est possible que le navigateur ne génère pas les événements de focus attendus lorsque vous utilisez un lecteur d'écran. Pour résoudre ce problème, vous pourriez envisager d'utiliser un événement de navigation au clavier plutôt qu'un événement de focus. Par exemple, vous pourriez utiliser l'événement "keydown" pour détecter lorsque l'utilisateur utilise les flèches du clavier pour naviguer vers la zone de slide. Vous pourriez également utiliser l'événement "mouseenter" pour détecter lorsque la souris entre dans la zone de slide et arrêter le défilement. Il est important de tester ces solutions avec différents lecteurs d'écran pour vous assurer qu'ils fonctionnent correctement.

0