0Pricing
React Academy · Leçon

Architecture de dnd-kit et conception axée sur l’accessibilité

Comprenez le modèle de capteurs de dnd-kit, les annonces d’accessibilité et ses différences avec react-beautiful-dnd

Architecture de dnd-kit et conception axée sur l’accessibilité est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.

Pourquoi dnd-kit a remplacé react-beautiful-dnd

react-beautiful-dnd était la bibliothèque de glisser-déposer de référence pour React, mais elle a été officiellement archivée en 2023 et n'est plus maintenue. La communauté s'est rapidement tournée vers dnd-kit comme remplacement recommandé, conçu depuis zéro pour React moderne et l'accessibilité.

Architecture principale de dnd-kit

dnd-kit repose sur trois concepts architecturaux clés : DndContext gère tout l'état du glissement et coordonne les éléments déplaçables et les zones de dépôt, les capteurs abstraient les modes de saisie afin que la même logique de glissement fonctionne avec la souris, le tactile et le clavier, et les modificateurs permettent d'aligner, de restreindre ou de transformer le mouvement du glissement.

Capteurs : abstraction de la saisie

dnd-kit fournit trois capteurs intégrés. PointerSensor gère les saisies à la souris et tactiles via l'API unifiée des événements de pointeur. KeyboardSensor permet le glisser-déposer entièrement au clavier. TouchSensor gère les anciens événements tactiles. Vous configurez les capteurs via la propriété sensors de DndContext.

Instructions pour le glisser-déposer au clavier

dnd-kit intègre une navigation au clavier pour l'accessibilité. Les utilisateurs appuient sur Espace pour saisir un élément, sur les touches fléchées pour le déplacer vers une nouvelle position, de nouveau sur Espace pour le déposer et sur Échap pour annuler le glissement sans effectuer de modification. Ces interactions sont annoncées automatiquement aux lecteurs d'écran.

ARIA et prise en charge des lecteurs d'écran

dnd-kit applique automatiquement aria-grabbed aux éléments déplaçables pour indiquer leur état de saisie aux technologies d'assistance. Il utilise aria-dropeffect sur les zones de dépôt pour communiquer ce qui se produira lorsqu'un élément sera déposé. Une région dynamique annonce les mises à jour d'état afin que les utilisateurs de lecteurs d'écran entendent des confirmations comme « Élément saisi » ou « Élément déposé avec succès ».

Conception optimisable par élagage et sans CSS

dnd-kit est conçu pour permettre l'élagage des dépendances : vous n'importez que les éléments réellement utilisés. Aucun CSS n'est fourni : c'est à vous de définir tous les styles visuels, ce qui vous donne un contrôle total sur l'apparence des éléments déplaçables, des superpositions et des zones de dépôt. Cette approche réduit au minimum la taille des paquets.

Fonctions de rappel des événements de DndContext

DndContext fournit trois principales fonctions de rappel pour suivre le cycle de vie du glissement. onDragStart est déclenchée lorsque l'utilisateur commence à déplacer un élément et reçoit l'ID de l'élément actif. onDragOver est déclenchée en continu lorsque l'élément déplacé passe au-dessus des cibles de dépôt. onDragEnd est déclenchée lorsque le glissement se termine et vous fournit l'élément actif ainsi que la cible de dépôt.

Configurer les capteurs sur DndContext

Vous transmettez un tableau de configurations de capteurs à DndContext à l'aide de la propriété sensors combinée au hook useSensors. Chaque capteur est initialisé avec useSensor(SensorClass, options). Par exemple, vous pouvez configurer PointerSensor avec une distance minimale de déplacement afin d'éviter les glissements accidentels lors d'un clic.

Modificateurs pour restreindre les mouvements

Les modificateurs transforment les coordonnées du glissement avant leur application à l'élément déplacé. restrictToVerticalAxis verrouille le mouvement dans une seule direction. restrictToParentElement maintient l'élément déplacé à l'intérieur de son conteneur. snapCenterToCursor aligne l'élément afin que son centre suive le curseur. Vous combinez plusieurs modificateurs dans un tableau.

Système d'identifiants des éléments déplaçables et des zones de dépôt

Chaque élément déplaçable ou zone de dépôt doit avoir un ID unique, sous forme de chaîne ou de nombre. Ces ID constituent le principal moyen utilisé par dnd-kit pour suivre ce qui est déplacé et l'endroit où l'élément est déposé. Dans onDragEnd, vous lisez event.active.id pour l'élément déplacé et event.over?.id pour la cible de dépôt afin de mettre à jour l'état de votre application.

Une philosophie axée d'abord sur l'accessibilité

Contrairement à de nombreuses bibliothèques de glisser-déposer qui considèrent la prise en charge du clavier comme secondaire, dnd-kit place l'accessibilité au cœur de sa conception. KeyboardSensor est un élément de premier ordre doté des mêmes capacités que PointerSensor. Tous les attributs ARIA sont gérés automatiquement et des annonces personnalisées peuvent être configurées via la propriété accessibility de DndContext.

Vérification du capteur clavier

Quelle touche dnd-kit utilise-t-il pour annuler un glissement au clavier en cours sans effectuer de modification ?

Récapitulatif de la leçon : fondamentaux de dnd-kit

dnd-kit a remplacé react-beautiful-dnd, désormais archivé, comme norme communautaire pour le glisser-déposer dans React. Son architecture s'articule autour de DndContext pour l'état, des capteurs pour l'abstraction des entrées (pointeur, clavier et tactile) et des modificateurs pour les contraintes de mouvement. L'accessibilité est prioritaire : les attributs ARIA, les annonces dans une région dynamique et la navigation complète au clavier sont intégrés.

Questions Fréquemment Posées

La leçon « Architecture de dnd-kit et conception axée sur l’accessibilité » est-elle gratuite ?

Oui — le texte complet de « Architecture de dnd-kit et conception axée sur l’accessibilité » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Architecture de dnd-kit et conception axée sur l’accessibilité » ?

Comprenez le modèle de capteurs de dnd-kit, les annonces d’accessibilité et ses différences avec react-beautiful-dnd Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer React Academy ?

Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Architecture de dnd-kit et conception axée sur l’accessibilité » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon React Academy ?

Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Architecture de dnd-kit et conception axée sur l’accessibilité
  2. DndContext, useDraggable et useDroppable
  3. SortableContext pour les listes réordonnables
  4. Aperçus personnalisés du glisser-déposer et DnD multi-conteneurs
← Retour à React Academy