Maison interface Web tutoriel CSS Comprendre la différence entre `:focus` et `:focus-visible` en CSS

Comprendre la différence entre `:focus` et `:focus-visible` en CSS

Nov 24, 2024 am 07:59 AM

Understanding the Difference Between `:focus` and `:focus-visible` in CSS

Comprendre la différence entre :focus et :focus-visible en CSS

J'ai beaucoup appris sur l'importance de l'accessibilité du clavier, je sais donc que l'indication visuelle de l'élément ciblé est très importante. Mais la pseudo-classe bien connue :focus n’est pas toujours la meilleure solution pour ce travail. C'est là qu'intervient :focus-visible. Examinons les différences entre ces deux pseudo-classes et explorons les meilleures pratiques pour les utiliser efficacement.

Qu'est-ce que la pseudo-classe :focus ?

La pseudo-classe :focus est un sélecteur CSS qui applique des styles à tout élément qui reçoit le focus, quelle que soit la manière dont ce focus a été déclenché. Cela inclut les événements de focus liés à la navigation au clavier, aux clics de souris et aux interactions tactiles.

Exemple d'utilisation de :focus

button:focus {
  outline: 2px solid blue;
}
Copier après la connexion
Copier après la connexion

Dans cet exemple, le bouton affichera un contour bleu chaque fois qu'il est mis au point, que l'utilisateur clique dessus avec une souris, l'appuie sur un écran tactile ou y accède à l'aide du clavier.

Qu'est-ce que la pseudo-classe :focus-visible ?

La pseudo-classe :focus-visible est plus spécialisée. Il n'applique des styles à un élément que lorsque le navigateur détermine que le focus doit être visible. Cela se produit généralement lorsque l'utilisateur navigue via le clavier ou des technologies d'assistance plutôt que via la souris ou la saisie tactile.

Exemple d'utilisation de :focus-visible

button:focus-visible {
  outline: 2px solid blue;
}
Copier après la connexion

Ici, le bouton n'affichera qu'un contour bleu lorsqu'il sera mis au point via la navigation au clavier ou une autre méthode de saisie qui nécessite généralement des indicateurs de mise au point visibles.

Principales différences entre :focus et :focus-visible

:se concentrer

  • Comportement : S'applique à tout élément qui reçoit le focus, quelle que soit la méthode de saisie.
  • Cas d'utilisation : Garantit que toutes les interactions avec l'élément sont visuellement indiquées, que ce soit par la souris, le clavier ou le toucher.

:focus-visible

  • Comportement : applique les styles uniquement lorsque le focus doit être visible, par exemple lors de l'utilisation d'un clavier ou d'une technologie d'assistance.
  • Cas d'utilisation : Idéal pour les scénarios dans lesquels vous souhaitez fournir des indicateurs de concentration uniquement aux utilisateurs de clavier et de technologies d'assistance tout en évitant les contours inutiles pour les utilisateurs de souris et de touches tactiles, généralement requis par la conception.

Implications en matière d'accessibilité

:se concentrer

  • Avantages :
  • Garantit que tous les utilisateurs peuvent voir quand un élément est ciblé, ce qui est essentiel pour l'accessibilité.
  • Inconvénients :
  • Peut conduire à une expérience sous-optimale pour les utilisateurs de souris, car les styles de focus peuvent apparaître inutilement lors des interactions avec la souris.

:focus-visible

  • Avantages :
  • Améliore l'expérience utilisateur en affichant les indicateurs de mise au point uniquement lorsque cela est nécessaire, gardant ainsi l'interface propre pour les utilisateurs de souris et de touches tactiles.
  • Adapte l'expérience aux utilisateurs de clavier et de technologies d'assistance, en leur fournissant des repères visuels clairs.
  • Inconvénients :
  • Des considérations supplémentaires peuvent être nécessaires pour garantir que les indicateurs de focus ne sont pas accidentellement omis, en particulier dans les navigateurs plus anciens qui ne prennent pas en charge :focus-visible.
    • Il peut y avoir des cas où vous souhaitez afficher des indicateurs de focus pour tous les utilisateurs, quelle que soit la méthode de saisie.

Meilleures pratiques d'utilisation de :focus et :focus-visible

Pour obtenir la meilleure accessibilité et expérience utilisateur, combiner à la fois :focus et :focus-visible dans votre CSS est souvent une bonne idée.

Combinaison de :focus et :focus-visible

button:focus {
  outline: 2px solid blue;
}
Copier après la connexion
Copier après la connexion

Voici un exemple Stackblitz de ce à quoi un tel style pourrait ressembler pour que vous puissiez l'essayer et jouer avec :

Conseils supplémentaires

  • Test avec le clavier et la technologie d'assistance : Assurez-vous que votre application Web est navigable à l'aide d'un clavier (Tab, Shift Tab, etc.) et que les indicateurs de focus sont visibles pour ceux qui s'en servent. Ce n'est jamais une mauvaise idée d'inclure des tests d'accessibilité dans votre suite de tests e2e.
  • Fournissez des indicateurs de concentration clairs : Assurez-vous que les indicateurs de concentration sont bien visibles et faciles à voir. Un indicateur de mise au point subtil ou difficile à repérer peut avoir de graves conséquences sur l'accessibilité pour les utilisateurs qui comptent sur la navigation au clavier.

Conclusion

La pseudo-classe :focus-visible offre une manière plus raffinée de gérer les indicateurs de focus, améliorant ainsi l'accessibilité et l'expérience utilisateur, en particulier pour les utilisateurs de clavier et de technologies d'assistance. En comprenant les différences entre :focus et :focus-visible et en appliquant les meilleures pratiques dans votre CSS, vous pouvez créer des applications Web plus accessibles et conviviales.

N'oubliez pas que l'accessibilité ne doit jamais être une réflexion après coup. En appliquant judicieusement les styles de focus, vous garantissez que tous les utilisateurs, quelle que soit la manière dont ils interagissent avec votre site, peuvent facilement naviguer et interagir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Il est sorti! Félicitations à l'équipe Vue pour l'avoir fait, je sais que ce fut un effort massif et une longue période à venir. Tous les nouveaux documents aussi.

Pouvez-vous obtenir des valeurs de propriété CSS valides du navigateur? Pouvez-vous obtenir des valeurs de propriété CSS valides du navigateur? Apr 02, 2025 pm 06:17 PM

J'ai eu quelqu'un qui écrivait avec cette question très légitime. Lea vient de bloguer sur la façon dont vous pouvez obtenir les propriétés CSS valides elles-mêmes du navigateur. C'est comme ça.

Un peu sur CI / CD Un peu sur CI / CD Apr 02, 2025 pm 06:21 PM

Je dirais que "Site Web" correspond mieux que "Application mobile" mais j'aime ce cadrage de Max Lynch:

Cartes empilées avec un positionnement collant et une pincée de sass Cartes empilées avec un positionnement collant et une pincée de sass Apr 03, 2025 am 10:30 AM

L'autre jour, j'ai repéré ce morceau particulièrement charmant sur le site Web de Corey Ginnivan où une collection de cartes se cassent les uns sur les autres pendant que vous faites défiler.

Utilisation de Markdown et de la localisation dans l'éditeur de blocs WordPress Utilisation de Markdown et de la localisation dans l'éditeur de blocs WordPress Apr 02, 2025 am 04:27 AM

Si nous devons afficher la documentation à l'utilisateur directement dans l'éditeur WordPress, quelle est la meilleure façon de le faire?

Comparaison des navigateurs pour une conception réactive Comparaison des navigateurs pour une conception réactive Apr 02, 2025 pm 06:25 PM

Il existe un certain nombre de ces applications de bureau où l'objectif montre votre site à différentes dimensions en même temps. Vous pouvez donc, par exemple, écrire

Comment utiliser la grille CSS pour les en-têtes et pieds de page collants Comment utiliser la grille CSS pour les en-têtes et pieds de page collants Apr 02, 2025 pm 06:29 PM

CSS Grid est une collection de propriétés conçues pour faciliter la mise en page qu'elle ne l'a jamais été. Comme tout, il y a un peu une courbe d'apprentissage, mais Grid est

Fontes variables de polices Google Fontes variables de polices Google Apr 09, 2025 am 10:42 AM

Je vois que Google Fonts a déployé un nouveau design (tweet). Comparé à la dernière grande refonte, cela semble beaucoup plus itératif. Je peux à peine faire la différence

See all articles