diff --git a/src/fr/articles/gestion-dynamique-du-focus/index.njk b/src/fr/articles/gestion-dynamique-du-focus/index.njk index e90a9e6378..2748bcde16 100644 --- a/src/fr/articles/gestion-dynamique-du-focus/index.njk +++ b/src/fr/articles/gestion-dynamique-du-focus/index.njk @@ -3,6 +3,7 @@ title: "Gestion dynamique du focus" abstract: "Gestion du focus des zones qui se mettent à jour dynamiquement dans vos pages." titleBeforeTag: true date: "2018-01-18" +updateDate: "2025-07-16" tags: - component css: @@ -19,54 +20,54 @@ js:
iframes
dynamiques Ce cas, où l’on recharge la page pour modifier une partie du contenu de cette page, est à éviter car, même si c’est une action utilisateur, il y a perte de contexte et dans tous les cas un chargement asynchrone aurait été bien plus efficace.
-Donc, s’il n’y a aucun moyen de faire du chargement asynchrone, il faut pour le moins :
+Ce cas concerne les situations où une action utilisateur entraîne le rechargement complet de la page pour modifier une partie du contenu. Bien que cela puisse sembler simple, cette méthode présente plusieurs inconvénients, notamment la perte de contexte et une expérience moins fluide.
+ +S’il n’y a aucun moyen de faire du chargement asynchrone, il faut au moins :
C’est le cas le plus fréquent : la page n’est pas rechargée, seul le DOM est modifié par addition ou suppression de contenu lors d’une action utilisateur (par exemple, affichage des résultats d’un moteur de recherche, apparition d’une popin…).
-Ce cas est le plus courant : seul le DOM est modifié par addition ou suppression du contenu lors d’une action utilisateur sans recharger la page entière (par exemple, affichage des résultats d’un moteur de recherche, apparition d’une modale).
+aria-haspopup
). Si ce contenu est susceptible de disparaître (popin, par exemple), garder en mémoire l’élément déclenchant l’apparition pour y remettre le focus lors de la disparition.aria-expanded
à "true"). Si ce contenu est susceptible de disparaître (popin, par exemple), garder en mémoire l’élément déclenchant l’apparition pour lui redonner le focus lors de la disparition.Dans tous les cas, s’assurer que le parcours du focus est demeuré logique et séquentiel après apparition/disparition de contenu.
C'est le principal problème posé à tout utilisateur, et en particulier les personnes déficientes visuelles, cognitives ou avec un trouble de l’attention ou sur des petits écrans.
-L'utilisateur doit pouvoir repérer l’apparition ou la disparition de contenu et d’interagir avec ceux-ci, si besoin.
Il faut donc prévenir l’utilisateur, et pour cela, il existe plusieurs solutions en cas de modification de contenu :
C'est une précaution à prendre pour tout utilisateur, et en particulier aux personnes déficientes visuelles, cognitives ou avec un trouble de l’attention.
+L'utilisateur doit pouvoir repérer l’apparition ou la disparition de contenu et d’interagir avec celui-ci, si besoin.
Il faut donc prévenir l’utilisateur, et pour cela, il existe plusieurs solutions :
Voir l’exemple de menu déroulant pour la mise en pratique de l’attribut aria-haspopup
.
Voir l’exemple de menu déroulant pour la mise en pratique de l’attribut aria-expanded
.
Tabindex
Il faut, autant que possible, ne pas redéfinir l'ordre de lecture en utilisant des attributs tabindex
(avec des valeurs positives).
tabindex
Il faut, autant que possible, ne pas redéfinir l'ordre de lecture en utilisant des attributs tabindex
.
-En pratique, l’attribut tabindex
ne devrait être utilisé qu’avec deux valeurs :
Si l’élément auquel vous transférez le focus n’est pas un élément interactif (titre, liste, texte, etc.), vous devrez utiliser l’une de ces deux méthodes :
tabindex="-1"
: pour interdire à un élément de recevoir le focus via la touche TAB et l’autoriser à recevoir le focus via Javascript.tabindex="0"
: pour rendre un élément focusable via la touche TAB et via Javascript.tabindex="-1"
: pour interdire à un élément de recevoir le focus via la touche tab et l’autoriser à recevoir le focus via JavaScript (méthode JavaScript focus()).tabindex="0"
: pour rendre un élément non-focusable nativement focusable via la touche tab et via JavaScript.iframe
Lorsqu’une iframe
est mise à jour dynamiquement par une action utilisateur, il faut :
title
pour informer l’utilisateur de cette mise à jour. iframe
modifié immédiatement après l’action ayant abouti à la mise à jour), il faut mettre le focus sur la balise iframe
.iframe
.title
pour indiquer la modification à l’utilisateur. iframe
modifiée immédiatement après l’action ayant abouti à la mise à jour), il faut mettre le focus sur la balise iframe
.iframe
.