Comportements
Actions data-aubNouveau
Afficher, masquer, copier, fermer, confirmer : les gestes de tous les jours se déclarent dans le HTML. Aucun JavaScript métier à écrire, une seule délégation globale.
Essayer
Je suis un panneau.
hidden est simplement posé ou retiré.Astuce : ce bandeau se ferme avec le bouton à droite.
<button type="button" data-aub-action="toggle" data-aub-target="#filtres"
aria-expanded="false" aria-controls="filtres">Filtres</button>
<div id="filtres" hidden>…</div>
<input id="lien" value="https://…" readonly>
<button type="button" data-aub-action="copy" data-aub-copy-from="#lien">Copier</button>
<div class="aub-alert aub-alert--info" data-aub-dismissible>
Astuce… <button type="button" data-aub-action="dismiss" aria-label="Fermer">×</button>
</div>Installer
Inclus dans aubui.js (complet et léger) et dans aubui.light.js. Seul :
<script src="https://ui.aubota.xyz/js/actions.js" defer></script>Chargé seul, actions.js va chercher dialog.js à côté de lui (même dossier, même ?v=) pour que data-aub-confirm ouvre toujours une lightbox.
Référence
| Attribut | Complément | Effet |
|---|---|---|
data-aub-action="toggle" | data-aub-target="#id" | Bascule hidden sur la cible et met à jour aria-expanded du bouton. |
data-aub-action="show" | data-aub-target | Retire hidden. |
data-aub-action="hide" | data-aub-target | Pose hidden. |
data-aub-action="copy" | data-aub-copy="texte" ou data-aub-copy-from="#champ" | Copie dans le presse-papiers (valeur d’un champ ou texte d’un élément). Le bouton affiche « Copié » 1,2 s. |
data-aub-action="dismiss" | ancêtre [data-aub-dismissible] | Masque le conteneur le plus proche. |
data-aub-confirm="…" | -title, -ok, data-aub-danger | Lightbox avant clic/envoi : voir Dialogues. |
data-aub-theme-toggle · data-accent-set | — | Laissés à theme.js / accent.js : voir Thème & accent. |
- La cible est un sélecteur CSS (
querySelector) : un sélecteur invalide est ignoré sans erreur. - La délégation est posée sur
document: les éléments injectés plus tard fonctionnent sans rien rappeler. - La copie utilise
navigator.clipboard(HTTPS) ; si l’API refuse, un repliexecCommand('copy')est tenté.
Accessibilité
- Utilise un vrai
<button type="button">: clavier et lecteurs d’écran gratuits. - Pour
toggle, posearia-expanded="false"etaria-controlsau départ : Aubui le tient ensuite à jour. - Un bouton « × » a toujours un
aria-label(« Fermer l’astuce »). - Le retour « Copié » remplace le texte du bouton, donc il est lu par les lecteurs d’écran qui suivent le focus.