Sur cette page

Accessibilité

#Lien direct vers cette section

Pris en charge automatiquement

#Lien direct vers cette section
  • role="alert" (interruption immédiate) ou role="status" (annonce polie) écrit par le composant sur l’élément selon variant — error/warning → alert, success/info → status, tout variant custom non reconnu → status (défaut sûr) — conforme WCAG 4.1.3 (ouvre dans un nouvel onglet)Status Messages : les messages de statut doivent être annoncés aux technologies d'assistance sans déplacer le focus.
  • Pour remplacer ce rôle, écrire l’attribut role : <ar-alert variant="error" role="status"> rend une erreur annoncée poliment.
  • without-notification retire le rôle écrit par le composant : aucune annonce.
  • L’icône est masquée aux lecteurs d’écran (aria-hidden). L’information de sévérité est portée par le role, pas par l’icône.
  • Une icône par défaut est fournie pour les 4 variants connus (error, warning, success, info). Elle peut être remplacée via le slot icon, mais il est déconseillé de la supprimer : elle constitue un repère visuel non colorimétrique, important pour les utilisateurs daltoniens ou en environnement à faible contraste. Un variant custom non reconnu par le composant n’affiche aucune icône par défaut (un avertissement en console le rappelle en dev) — fournissez slot="icon" dans ce cas.
  • Le focus est reporté sur l’élément cible (next-focus) à la fermeture — l’utilisateur clavier ne se retrouve pas désorienté.

À votre charge

#Lien direct vers cette section
  • Message compréhensible hors contexte visuel. Le contenu est lu dès l’apparition de l’alerte. Évitez les messages vagues (“Une erreur s’est produite”) — préférez (“Le formulaire n’a pas pu être soumis : champ email manquant”).
  • Niveau de sévérité cohérent. error pour les erreurs bloquantes, warning pour les situations qui méritent attention sans bloquer, success pour les confirmations, info pour les informations neutres.
  • Styliser un variant custom. Au-delà des 4 variantes prévues (error/warning/success/info), tout autre variant doit définir lui-même --ar-alert-bg, --ar-alert-border et --ar-alert-icon (ex. ar-alert[variant='promo'] { --ar-alert-bg: ...; }) et fournir une icône via slot="icon".
  • next-focus obligatoire sur les alertes dismissibles. Un bouton de fermeture sans destination de focus laisse l’utilisateur clavier sans repère.

Utilisation

#Lien direct vers cette section

Fermeture et cycle de vie

#Lien direct vers cette section

À la fermeture, ar-alert se retire du DOM (this.remove()) une fois la transition terminée — l’alerte n’est pas simplement masquée, elle disparaît définitivement de la page. Toute référence conservée à l’élément pointe alors vers un noeud détaché ; il n’existe pas de méthode pour la réafficher.

ar-alert-close (detail : { id }, l’attribut id de l’alerte, undefined s’il n’en a pas) est émis à ce moment-là, après la fin de la transition et juste avant le retrait du DOM :

document.querySelector('ar-alert').addEventListener('ar-alert-close', () => {
    console.log('Alerte fermée et retirée du DOM');
});

Le bouton de fermeture n’est rendu que si next-focus est défini et non vide (canBeHidden) : sans next-focus, l’alerte n’a pas de bouton de fermeture et reste donc affichée en permanence — c’est voulu, pour éviter de fermer une alerte sans savoir où renvoyer le focus clavier.

Exemples

#Lien direct vers cette section

Les exemples de cette page sont affichés avec le thème neutre du starter-kit.

Défaut

#Lien direct vers cette section

Alerte sans variant explicite (erreur par défaut), avec titre et corps.

Titre de l'alerte
Je suis une alerte par defaut (erreur).
Voir le code
<ar-alert>
    <strong>Titre de l'alerte</strong><br>
    Je suis une alerte par defaut (erreur).
</ar-alert>

Succès

#Lien direct vers cette section

Rendu en mode succès.

Succès de l'opération
Je suis une alerte de succès.
Voir le code
<ar-alert variant="success">
    <strong>Succès de l'opération</strong><br>
    Je suis une alerte de succès.
</ar-alert>

Dismissible

#Lien direct vers cette section

Rendu d'une alerte qui peut être fermée. L'ID fourni doit être un élément existant dans la page qui recevra le focus à la fermeture du composant.

Alerte supprimable
Je suis une alerte qui peut être fermée.
Voir le code
<div>
    <button style="margin-bottom: 10px" type="button" id="idBoutonFocused">Test focus</button>
    <ar-alert next-focus="idBoutonFocused">
        <strong>Alerte supprimable</strong><br>
        Je suis une alerte qui peut être fermée.
    </ar-alert>
</div>

Démo interactive

#Lien direct vers cette section

Manipulez les attributs pour voir le code et la preview se mettre à jour.

Titre de l'alerte
Je suis une alerte par defaut (erreur).
<ar-alert>
    <strong>Titre de l'alerte</strong><br>
    Je suis une alerte par defaut (erreur).
</ar-alert>

Référence API

#Lien direct vers cette section

Import

#Lien direct vers cette section

Si vous utilisez l'autoloader, les composants détectés dans la pages sont chargés automatiquement, donc pas besoin de les importer individuellement.
Pour un import manuel, voici comment vous y prendre.

CDNnpm

Importez ce composant depuis le CDN.

<script type="module" src="https://unpkg.com/@ariane-ui/core/dist/components/alert/index.js"></script>

Après avoir installé le paquet via npm, vous pouvez importer le composant ainsi :

import '@ariane-ui/core/dist/components/alert/index.js';

Configuration

#Lien direct vers cette section
Attributs et propriétés 3Slots 3Événements 1

Attributs et propriétés

1 sur 3
nextFocusreflètenext-focus

ID de l'élément à focus après la fermeture de l'alerte. Quand défini, affiche le bouton de fermeture.

Type string | undefined

2 sur 3
withoutNotificationreflètewithout-notification

Désactive la notification ARIA lors de l'apparition de l'alerte. Par défaut, les lecteurs d'écran sont notifiés via `role="alert"` ou `role="status"`.

Type booleanDéfaut false

3 sur 3
variantreflète

Type d'alerte. Détermine la couleur et l'icône affichées.

Type 'success' | 'warning' | 'error' | 'info'Défaut 'error'

Slots

1 sur 3(default)

Contenu de l'alerte (texte, titre, liens…).

2 sur 3icon

Icône de l'alerte. Remplace l'icône par défaut si fourni.

3 sur 3close-icon

Icône du bouton de fermeture. Remplace le SVG "×" par défaut.

Événements

1 sur 1
ar-alert-closedetail : { id: string | undefined }

Émis après la fermeture de l'alerte (fin de transition).

Personnalisation

#Lien direct vers cette section
CSS Parts 5CSS Custom States 1CSS Custom Properties 7

CSS Parts

Utilisez ::part(name) pour styler ces éléments depuis l'extérieur.
Certaines parts indiquent un rôle transverse, partagé avec d'autres composants — voir Personnalisation avancée.

1 sur 5icon

Le conteneur de l'icône de variant.

2 sur 5icon-svg

Le SVG de l'icône de variant par défaut (absent si le slot `icon` est utilisé).

3 sur 5body

Le conteneur du titre et du contenu.

4 sur 5close-button

Le bouton de fermeture (présent uniquement si `next-focus` est défini).

5 sur 5action-button

Porté par `close-button` : bouton qui déclenche une action ponctuelle.

CSS Custom States

Utilisez le sélecteur :state(name) sur le tag pour styler ce composant en fonction de son état.
Composable avec ::part() pour cibler un élément interne (ar-alert:state(name)::part(x)).
Sous Chrome et Edge 125, l'état est exposé avec le préfixe -- (:--name) : voir Compatibilité.

1 sur 1:state(hiding)

L'alerte est en cours de fermeture (animation de sortie).

CSS Custom Properties

1 sur 7--ar-alert-bg

Fond de l'alerte.

2 sur 7--ar-alert-border

Bordure de l'alerte.

3 sur 7--ar-alert-icon

Couleur de l'icône de variant.

4 sur 7--ar-alert-color

Couleur du texte de l'alerte.

5 sur 7--ar-alert-close-size

Taille (width/height) du bouton de fermeture.

6 sur 7--ar-alert-close-transition-duration

Durée de la transition (opacity/background-color) du bouton de fermeture au survol/focus.

7 sur 7--ar-alert-hide-transition-duration

Durée de la transition de sortie (opacity/transform) à la fermeture.

Traduction

#Lien direct vers cette section

La langue de ce composant suit l'attribut lang de la page (<html lang>).
Vous pouvez appliquer une langue différente à une instance donnée en posant l'attribut lang directement dessus.
Voir la page Traductions pour le détail du mécanisme et la liste des traductions disponibles.

lang étant un attribut HTML natif, il n'apparaît pas dans le tableau « Attributs & Propriétés ».