Aller au contenu
SkillCodex
Menu

Spinner

Indicateur d'attente

Un indicateur animé compact pour un travail dont l'avancement est inconnu, accompagné d'un état d'attente explicite.

Essayer le composant
Repères, sources et actions
Sources et révision
Mis à jour le
Version
v1.0.26 · r2
Sources
5 sources
Statut
Publié
Consulter les sources

Tu as peut-être cherché : un symbole qui tourne pendant le chargementmontrer que le bouton travaille encoreune attente inconnue sans pourcentage

Toutes les formulations
Enregistrer et partager

Reconnaître

Attendre et suivre une progression

Essayer

La durée est-elle inconnue, mesurable ou faut-il préserver la forme du contenu ?

Indicateur d'attente

Contexte commun aux essais

Un espace de travail attend la fin d'un contenu ou d'une opération et ne communique que la progression qu'il peut mesurer honnêtement.

Indicateur d'attente

Mission

Indicateur d'attente - Spinner

Lance l’enregistrement, vérifie qu’une double activation est bloquée, lis l’état d’attente et attends l’état final.

Le document est prêt à être enregistré.

Résultat de l’essai

Le document est prêt à être enregistré.

Étape 1 sur 3

Essayer

Manipule le composant. Le résultat de ton essai apparaît juste au-dessus. Avance à ton rythme.

Comportement et cas limite
À observer
Le bouton expose Enregistrement, empêche une double requête et montre un indicateur animé redondant.
Cas limite
Après un seuil long, l'interface ajoute une explication et une action annuler ou réessayer au lieu de tourner sans fin.

Ce que cet essai montre

Spinner communique une attente indéterminée ; Progress bar montre un avancement mesurable, tandis que Skeleton préfigure le contenu en chargement.

Lequel convient à ton besoin ?

Indicateur d'attente

Une courte opération n'a pas de valeur d'avancement utile

Barre de progression

Envoyer un fichier avec un avancement fiable en octets

Quel composant utilises-tu ici ?
Différence et sources

Spinner communique une attente indéterminée ; Progress bar montre un avancement mesurable, tandis que Skeleton préfigure le contenu en chargement.

Consulter les sources

    Parties du spécimen

    Sélectionne un repère numéroté sur le schéma, ou utilise la liste ci-dessous, pour afficher son rôle. Le schéma montre l'état représentatif du concept.

    Icône d'état

    Un repère visuel redondant pour le type de message, jamais le seul indice.

    Position dans l’atlas

    Carte relationnelle

    Repère le chapitre, les concepts proches et la prochaine décision utile.

    • Chapitre

      Attendre et suivre une progression

      Indicateur d'attente appartient à ce groupe de concepts comparés.

    • Ne pas confondre

      Barre de progression

      Choisis Indicateur d’attente si l’opération est courte et sans valeur d’avancement utile. Choisis Barre de progression si tu connais une valeur fiable, comme des octets envoyés ou des étapes terminées.

      Comparer cette paire
    • Ne pas confondre

      Squelette de chargement

      Choisis Indicateur d’attente si l’attente est courte ou la zone petite, comme à l’intérieur d’un bouton. Choisis Squelette de chargement si la zone en chargement est grande et que sa forme finale est prévisible, comme une carte ou un article.

      Comparer cette paire
    • Prochaine étape

      Compare les concepts du chapitre avant de retenir une implémentation.

      Ouvrir le chapitre

    Avec tes mots

    Comprendre

    Ce que les gens décrivent

    Alias documentés : roue de chargement, indicateur d'activité, indicateur occupé

    • un symbole qui tourne pendant le chargement
    • montrer que le bouton travaille encore
    • une attente inconnue sans pourcentage
    • un petit chargement près du texte d'état
    • indiquer un travail de fond en cours
    • un symbole occupé quand la durée est incertaine

    Choisir

    À utiliser quand

    • Une courte opération n'a pas de valeur d'avancement utile
    • Un bouton doit montrer qu'une requête est en attente

    À éviter quand

    • Un pourcentage connu peut être affiché
    • L'attente est assez longue pour exiger détail ou annulation

    Comparer

    Comparer les concepts proches

    Checklist de vérification

    Essaie ces gestes dans le lab, puis vérifie les mêmes comportements dans le résultat de ton agent. Adapte les noms d’exemple à ton interface.

    1. 1. À faire

      Lance l’opération en attente et essaie de réactiver son bouton de départ.

      Résultat attendu

      L’opération est indiquée comme occupée, les envois en double sont empêchés et aucun pourcentage inventé n’est affiché.

    2. 2. À faire

      Garde le focus sur le bouton de départ pendant l’apparition de l’indicateur, puis termine l’opération.

      Résultat attendu

      Le focus n’est pas déplacé vers l’indicateur décoratif ; la réussite ou l’échec remplace l’attente par un résultat clair.

    3. 3. À faire

      Essaie le cas d’attente prolongée ou d’échec prévu par ton exemple d’essai.

      Résultat attendu

      Un texte explique la situation et propose une issue adaptée, comme réessayer ou annuler, au lieu de tourner indéfiniment.

    Contrat complet
    1. 1L'attente est réellement indéterminée
    2. 2Un état textuel accompagne le visuel
    3. 3Les doubles actions sont empêchées
    4. 4L’attente longue propose une explication et une récupération

    Comprendre → Reconnaître → Choisir → Comparer

    Pack pour ton agent

    Instructions pré-écrites à coller dans ton agent. Copier n’exécute rien.

    Implémenter correctement

    Construis Indicateur d’attente sans casser son comportement

    # Implémenter Indicateur d’attente dans ton agent
    
    ## Objectif
    Implémente Indicateur d’attente pour ce comportement vérifié : Un indicateur animé compact pour un travail dont l’avancement est inconnu, accompagné d’un état d’attente explicite.
    
    ## Prérequis
    - Inspecte d’abord le dépôt, le design system et les tests existants.
    - Préserve les changements sans rapport et borne les fichiers modifiés.
    - Confirme qu’Indicateur d’attente répond au besoin avant de coder.
    
    ## Comportement requis
    - La région de contenu expose son état occupé tandis que l’indicateur visuel reste redondant.
    - Une région live annonce un nouvel état seulement si la mise à jour est importante et n’a pas déjà le focus.
    
    ## États à couvrir
    - Tâche au repos
    - Tâche en chargement
    - Tâche plus longue que prévu
    - Tâche annulée
    - Tâche terminée
    
    ## Accessibilité
    - Rôle ARIA : status + [aria-busy=true]
    - Le contrôle principal ou la région nommée pour Indicateur d’attente possède un nom accessible stable issu d’un texte visible ou d’un libellé programmatique explicite ; le placeholder et l’infobulle ne servent pas de nom.
    - Le focus reste sur le contrôle initiateur sauf si une transition documentée remplace toute la vue.
    - L’indicateur s’arrête lorsque le travail se termine ou est annulé ; il n’est jamais un message à fermer manuellement.
    - Un statut concis annonce le début et le résultat final, tandis que le visuel reste masqué aux technologies d’assistance.
    - Tab atteint le contrôle initiateur
    - Le contrôle en attente bloque la double activation
    - Annuler reste accessible au clavier lorsque proposé
    
    ## Quand ne pas utiliser
    - Un pourcentage connu peut être affiché
    - L’attente est assez longue pour exiger détail ou annulation
    
    ## Critères d’acceptation
    - L’attente est réellement indéterminée
    - Un état textuel accompagne le visuel
    - Les doubles actions sont empêchées
    - L’attente longue propose une explication et une récupération
    
    ## Garde-fous
    - Montre d’abord les changements envisagés avant toute action externe.
    - Ne publie, n’envoie, ne supprime, ne paie et ne modifie aucun état distant sans autorisation explicite.
    - Préserve les changements sans rapport et arrête-toi si le périmètre devient ambigu.
    
    ## Format de sortie
    - Résultat obtenu ou verdict.
    - Fichiers ou actions concernés.
    - Vérifications exécutées et preuves observables.
    - Blocages ou limites restantes.
    
    • Web platform
    • Prérequis · Accès au dépôt, au design system et aux tests
    Pourquoi ça marche
    • Le besoin est relié au comportement canonique avant toute décision technique.
    • Les états, l’accessibilité et les non-objectifs empêchent une implémentation seulement visuelle.
    • Les critères d’acceptation et le format de sortie rendent la vérification observable.

    À essayer ensuite

    Vérifie Indicateur d’attente sur un parcours réel

    # Vérifier Indicateur d’attente après l’implémentation
    
    ## Objectif
    Audite l’implémentation d’Indicateur d’attente au regard de son comportement, de ses états et de ses exigences d’accessibilité sans la modifier automatiquement.
    
    ## Contrôles
    - Rejoue le plus petit parcours représentatif.
    - Contrôle le clavier, le focus, le nom accessible et les annonces.
    - Relie chaque écart à un critère d’acceptation précis.
    
    ## Garde-fous
    - Montre d’abord les changements envisagés avant toute action externe.
    - Ne publie, n’envoie, ne supprime, ne paie et ne modifie aucun état distant sans autorisation explicite.
    - Préserve les changements sans rapport et arrête-toi si le périmètre devient ambigu.
    
    ## Format de sortie
    - Résultat obtenu ou verdict.
    - Fichiers ou actions concernés.
    - Vérifications exécutées et preuves observables.
    - Blocages ou limites restantes.
    

    sha256:5427c6ad7fa42a3c607f9c0d93901eaf8f48f60244116311136832d96881966a

    Diagnostiquer un problème

    Trouve et corrige le défaut d’Indicateur d’attente

    # Déboguer Indicateur d’attente dans ton agent
    
    ## Symptôme observé
    [DÉCRIS ICI LE SYMPTÔME]
    
    ## Contrôles observables
    - Reproduis le problème avec le plus petit parcours pertinent.
    - Compare le comportement aux états et transitions documentés d’Indicateur d’attente.
    - Vérifie le clavier, le focus, le nom accessible et les annonces.
    
    ## Causes possibles
    - La primitive employée ne correspond pas au comportement attendu.
    - Un état, une transition ou un retour de focus manque.
    - Le composant voisin capture un événement ou masque un signal accessible.
    
    ## Corrections bornées
    - Corrige la cause reproduite sans recréer les composants voisins.
    - Conserve le contrat public et ajoute un test ciblé de non-régression.
    - N’installe aucune dépendance et ne modifie aucun état distant sans autorisation.
    
    ## Vérification finale
    - L’attente est réellement indéterminée
    - Un état textuel accompagne le visuel
    - Les doubles actions sont empêchées
    - L’attente longue propose une explication et une récupération
    
    ## Garde-fous
    - Montre d’abord les changements envisagés avant toute action externe.
    - Ne publie, n’envoie, ne supprime, ne paie et ne modifie aucun état distant sans autorisation explicite.
    - Préserve les changements sans rapport et arrête-toi si le périmètre devient ambigu.
    
    ## Format de sortie
    - Résultat obtenu ou verdict.
    - Fichiers ou actions concernés.
    - Vérifications exécutées et preuves observables.
    - Blocages ou limites restantes.
    
    • Web platform
    • Prérequis · Accès au dépôt, au design system et aux tests
    Pourquoi ça marche
    • Le symptôme explicite évite de partir d’une correction supposée.
    • Les contrôles séparent comportement, accessibilité et interférences voisines.
    • La correction reste bornée et doit produire une preuve de non-régression.

    À essayer ensuite

    Verrouille la correction d’Indicateur d’attente

    # Empêcher la régression d’Indicateur d’attente
    
    ## Objectif
    Transforme la cause reproduite en test de non-régression ciblé et compare Indicateur d’attente aux concepts voisins avant d’élargir la correction.
    
    ## Contrôles
    - Prouve que le test échoue avant la correction.
    - Prouve qu’il passe après la correction bornée.
    - Vérifie qu’aucun composant voisin n’a changé de comportement.
    
    ## Garde-fous
    - Montre d’abord les changements envisagés avant toute action externe.
    - Ne publie, n’envoie, ne supprime, ne paie et ne modifie aucun état distant sans autorisation explicite.
    - Préserve les changements sans rapport et arrête-toi si le périmètre devient ambigu.
    
    ## Format de sortie
    - Résultat obtenu ou verdict.
    - Fichiers ou actions concernés.
    - Vérifications exécutées et preuves observables.
    - Blocages ou limites restantes.
    

    sha256:80ee0197c6c68a48720d242a9b98a1d9b2ade80cd9d476ade61dcfaf3bcc6225

    Fiche complète, enregistrement et provenance

    Instruction pré-écrite par SkillCodex — ta demande n’est ni envoyée ni utilisée pour adapter ce texte ; aucun contenu n’est généré et copier n’exécute rien.

    Digest du Pack: sha256:9ae2d1ddd05856e2fea6d2c39f74c1b94fafe40f4bde1b0d70b0b8a0ad5c9589

    Dans le code

    TechnologiePrimitiveVersionLimite
    Web platform

    status text plus decorative indicator

    NatifLa marque animée est seulement visuelle. La région occupée et un texte d’état pertinent portent l’état accessible.

    Détails techniques

    Comportements

    • Marquer la région occupée

      La région de contenu expose son état occupé tandis que l'indicateur visuel reste redondant.

    • Annoncer les changements utiles

      Une région live annonce un nouvel état seulement si la mise à jour est importante et n'a pas déjà le focus.

    États

    • Tâche au repos

      Tâche au repos

    • Tâche en chargement

      Tâche en chargement

    • Tâche plus longue que prévu

      Tâche plus longue que prévu

    • Tâche annulée

      Tâche annulée

    • Tâche terminée

      Tâche terminée

    Transitions d’état

    • Tâche au repos → Tâche en chargement

      Une opération de durée restante inconnue démarre et marque sa région comme occupée.

    • Tâche en chargement → Tâche plus longue que prévu

      Après le seuil d’attente longue, une explication et l’action Annuler apparaissent pendant que l’enregistrement continue.

    • Tâche plus longue que prévu → Tâche terminée

      L’enregistrement se termine, retire le spinner et affiche l’état final Enregistré sans nouvelle activation.

    • Tâche plus longue que prévu → Tâche annulée

      L’activation d’Annuler arrête l’enregistrement en attente et affiche Réessayer sans perdre le document.

    • Tâche annulée → Tâche en chargement

      L’activation de Réessayer lance un nouvel enregistrement et masque l’ancien état d’annulation.

    • Tâche terminée → Tâche au repos

      Réinitialiser restaure l’exemple rejouable d’enregistrement dans son état initial prêt.

    Scénarios de test

    Contexte
    Un bouton Enregistrer envoie une courte requête dont la durée serveur est inconnue.
    Mission
    Lance l’enregistrement, vérifie qu’une double activation est bloquée, lis l’état d’attente et attends l’état final.
    État principal
    Le bouton expose Enregistrement, empêche une double requête et montre un indicateur animé redondant.
    Cas limite
    Après un seuil long, l'interface ajoute une explication et une action annuler ou réessayer au lieu de tourner sans fin.

    Signaux visuels

    • Petit mouvement répété
    • Aucune piste de progression mesurable
    • Placé près du contrôle ou de la région occupée

    Signaux comportementaux

    • Fonctionne seulement pendant l'attente
    • N'implique aucun pourcentage
    • Un état pertinent reste disponible indépendamment de l’animation

    Accessibilité

    Rôle
    status + [aria-busy=true]
    Nom accessible
    Le contrôle principal ou la région nommée pour Indicateur d'attente possède un nom accessible stable issu d’un texte visible ou d’un libellé programmatique explicite ; le placeholder et l’infobulle ne servent pas de nom.
    Focus clavier
    Le focus reste sur le contrôle initiateur sauf si une transition documentée remplace toute la vue.
    Fermeture
    L'indicateur s'arrête lorsque le travail se termine ou est annulé ; il n'est jamais un message à fermer manuellement.
    Défilement
    Le chargement et le contenu de remplacement réservent assez d'espace pour éviter les sauts de mise en page et conserver la position de défilement.
    Annonce
    Un statut concis annonce le début et le résultat final, tandis que le visuel reste masqué aux technologies d'assistance.
    Clavier
    • Tab atteint le contrôle initiateur
    • Le contrôle en attente bloque la double activation
    • Annuler reste accessible au clavier lorsque proposé

    Implémentations

    Ouvrir la matrice HTML, ARIA, Radix et shadcn
    • status text plus decorative indicator

      implementationKind
      custom
      nativeElement
      status text plus decorative indicator
      ariaPattern
      status and aria-busy on the updated region
      radixPrimitive
      Non applicable
      shadcnRecipe
      Non applicable
      runtimeDependency
      Non applicable
      packageName
      Non applicable
      exportName
      Non applicable
      exactVersion
      Non applicable
      status
      exception
      sourceId
      source-ui-wai-aria-busy
      deprecationStatus
      active
      replacement
      Non applicable
      validFrom
      Non applicable
      validUntil
      Non applicable

      Limite d’équivalence : La marque animée est seulement visuelle. La région occupée et un texte d’état pertinent portent l’état accessible.

      Vérifier la source du binding

    Sources

    • shadcn/ui: Spinner
      sourceId
      source-ui-shadcn-spinner
      kind
      documentation
      canonicalUrl
      https://ui.shadcn.com/docs/components/radix/spinner
      publisher
      shadcn/ui
      sourceRevision
      http-etag:W/"sxjtkvu3hcht66"
      consultedAt
      2026-07-19
      license
      Non indiquée
      contentDigest
      sha256:79edfe5c0250aa78f2981bf6dbac2ca680d76d0b783d8df02ecaabca098fc9d3
      status
      verified

      Affirmation couverte : Indicateur d'attente : parties, API d'état, interactions et limites d'implémentation documentées pour shadcn Spinner.

    • WAI-ARIA 1.2: aria-busy
      sourceId
      source-ui-wai-aria-busy
      kind
      standard
      canonicalUrl
      https://www.w3.org/TR/wai-aria-1.2/#aria-busy
      publisher
      W3C WAI
      sourceRevision
      W3C-REC-wai-aria-1.2-20230606
      consultedAt
      2026-07-19
      license
      Non indiquée
      contentDigest
      sha256:c0fea16fc747779569ab754d2d25bca3e2b7e8a673b8ef5362aeb9ebc73a4849
      status
      verified

      Affirmation couverte : Indicateur d'attente : l'état normatif aria-busy pour exposer une région pendant la mise à jour de son contenu.

    • WCAG 2.2: Status Messages
      sourceId
      source-ui-wcag-understanding-status-messages
      kind
      documentation
      canonicalUrl
      https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html
      publisher
      W3C WAI
      sourceRevision
      http-last-modified:2026-07-02T10:07:49Z
      consultedAt
      2026-07-19
      license
      Non indiquée
      contentDigest
      sha256:cf2a8c16b20c1a94164c9a37e2b3f15d9a7d3f47d88385d47432d6a29655609e
      status
      verified

      Affirmation couverte : Indicateur d'attente : guide WCAG informatif sur les messages d'état annoncés sans déplacer le focus.

    • WAI-ARIA 1.2: Live Region Attributes
      sourceId
      source-ui-wai-aria-live-regions
      kind
      standard
      canonicalUrl
      https://www.w3.org/TR/wai-aria-1.2/#attrs_liveregions
      publisher
      W3C WAI
      sourceRevision
      W3C-REC-wai-aria-1.2-20230606
      consultedAt
      2026-07-19
      license
      Non indiquée
      contentDigest
      sha256:c0fea16fc747779569ab754d2d25bca3e2b7e8a673b8ef5362aeb9ebc73a4849
      status
      verified

      Affirmation couverte : Indicateur d'attente : propriétés normatives des régions live pour le comportement d'annonce d'état.

    • WAI-ARIA 1.2: Roles Model
      sourceId
      source-ui-wai-aria-roles
      kind
      standard
      canonicalUrl
      https://www.w3.org/TR/wai-aria-1.2/#roles
      publisher
      W3C WAI
      sourceRevision
      W3C-REC-wai-aria-1.2-20230606
      consultedAt
      2026-07-19
      license
      Non indiquée
      contentDigest
      sha256:c0fea16fc747779569ab754d2d25bca3e2b7e8a673b8ef5362aeb9ebc73a4849
      status
      verified

      Affirmation couverte : Indicateur d'attente : définitions normatives des rôles ARIA et contraintes du rôle accessible indiqué.