Aller au contenu principal

Navigation tertiaire (Tabnav)

Utilisez la navigation tertiaire pour naviguer entre des sous-pages proches.

attention

Ce composant nécessite une licence Pro valide en production.

InformationValeur
NiveauPro
Composants Twigdsfr:tabnav

Usage

  • Indiquez la page active.
  • Gardez un nombre raisonnable d’onglets.

Modes d'utilisation

Navigation tertiaire · exemple principal
<twig:dsfr:tabnav ariaLabel="Navigation du dossier" :items="[
{label: 'Synthèse', href: '/dossier/synthese', active: true},
{label: 'Documents', href: '/dossier/documents'},
{label: 'Historique', href: '/dossier/historique'}
]" />

API publique

ComposantRôle
dsfr:tabnavComposant principal de cette page.

Configuration

OptionTypeDéfaut / requisValeurs et usage
ariaLabelstringNavigation tertiaireLibellé accessible.
itemsarray|string[]Items { label, href, active? }.

Guide d'intégration

QuestionRéponse
Famille DSFRNavigation
Quand l'utiliserQuand l’usager doit se repérer, changer de section ou parcourir une liste de pages.
Quand éviterPour déclencher une action métier immédiate : utilisez plutôt un bouton.
API publiqueUtilisez uniquement les composants Twig listés sur cette page : dsfr:tabnav.
Documentation DSFRConsultez aussi la bibliothèque officielle : Système de Design de l'État.
Navigation tertiaire : données typées via items

Variantes de navigation tertiaire

  • navigation tertiaire avec attributs HTML pass-through pour id, class, data-* et aria-* quand le template le permet.

Points de contrôle propres à ce composant

  • Indiquez la page active.
  • Gardez un nombre raisonnable d’onglets.
  • Vérifiez un cas vide, un cas avec plusieurs entrées et un cas avec données dynamiques pour items.

Accessibilité navigation

  • Le libellé de navigation doit être explicite avec ariaLabel ou un titre visible.
  • La page courante doit être indiquée avec active, current ou aria-current selon le composant.
  • Les panneaux contrôlés par JavaScript DSFR doivent avoir des id uniques et stables.

Intégration Symfony/Twig pour dsfr:tabnav

  • Passez items avec la syntaxe : pour conserver le type tableau : :items="items".
  • Ajoutez vos attributs applicatifs (data-controller, data-action, aria-*, class) sur dsfr:tabnav quand ils concernent son nœud racine.

Checklist de recette

  • navigation clavier complète
  • état actif visible
  • liaison aria-controls vers un élément existant
  • rendu vérifié en thème clair et sombre ;
  • rendu vérifié sur mobile, tablette et desktop ;
  • aucune erreur dans le profiler DSFR ni dans l'inspecteur d'accessibilité du navigateur.

Erreurs fréquentes

SymptômeCorrection
Les données items ne sont pas prises en compteAjoutez : devant la prop Twig : :items.
Les classes DSFR semblent incomplètesUtilisez les props du composant plutôt que des classes ajoutées à la main.
Le composant rend en local mais pas en productionVérifiez la licence avec php bin/console dsfr:license:validate.