Index d’ancrage
Un index d’ancrage est une rangée de liens compacts avec libellé qui mène aux sections répétées de la page courante. C’est courant sur les pages de référence pilotées par des données où chaque section a un nombre : lettres, catégories, régions, zones ou groupes similaires.
Exemple#
Variantes#
Le partial offre un seul motif visuel. L’appelant peut omettre le nombre, omettre le libellé visible d’introduction ou ajouter un labelClass au libellé d’un élément. Ce sont des variations de contenu, pas des composants distincts. Utilisez une rangée de filtres lorsque les contrôles modifient le jeu de données.
Quand l’utiliser#
- La page contient des sections répétées et les lecteurs doivent pouvoir accéder directement à l’une d’elles.
- C’est courant sur les pages de référence pilotées par des données où chaque section porte un nombre : lettres, catégories, régions, zones.
- Jamais pour des filtres actifs.
- Un filtre change ce qui est visible; un index d’ancrage déplace seulement le lecteur vers une section existante. Ce rôle revient à la rangée de filtres.
- Le libellé visible nomme à la fois la destination et la signification du nombre, par exemple « Aller à la région (nombre de pays ou zones) : »
Implémentation#
{{ partial "data-page/anchor-index.html" (dict "items" $anchorItems "ariaLabelKey" "m49Regions" "labelKey" "geographicRegionsAnchorIndexLabel") }}Chaque item fournit label, href et, optionnellement, count :
dict "label" "Europe" "href" "#m49-region-150" "count" 52<div class="not-prose flow-section">
<p class="meta mb-[var(--space-2xs)]">Aller à la région (nombre de pays ou zones) :</p>
<nav class="anchor-index-list" aria-label="Régions M49">
<a class="anchor-index-link" href="#m49-region-150"><span>Europe</span> <span class="anchor-index-count">52</span></a>
</nav>
</div>- La page ou le layout construit une liste
itemsaveclabel,hrefet uncountoptionnel. - Le partial ne rend rien quand
itemsest vide. - Le partial résout le libellé visible et le
aria-labeldepuis les fichiers i18n quand les options*Keysont utilisées. - Le partial émet de simples liens de fragment. Il n’y a pas de JavaScript.
- Le CSS du composant compose les jetons Style Dictionary de couleur, d’espacement et de typographie pour la disposition et les états des liens.
Options#
| Option | Rôle |
|---|---|
items | Liste de dicts, chacun avec label, href et, optionnellement, count et labelClass (requis; rien ne s’affiche si vide) |
labelKey / label | Libellé visible d’introduction; utilisez labelKey pour les pages publiées et label seulement pour les prototypes locaux |
ariaLabelKey / ariaLabel | Nom accessible obligatoire du nav; utilisez ariaLabelKey pour les pages publiées et ariaLabel seulement en prototype |
class | Remplace la classe par défaut anchor-index-list du nav |
Les appelants publiés doivent fournir labelKey lorsqu’ils ont besoin d’un libellé visible d’introduction et doivent fournir ariaLabelKey pour le nom du point de repère. Utilisez une clé propre à la page, basée sur le nom de fichier de la page ou des données, par exemple airlineCodesAnchorIndexLabel, workforceFrameworksAnchorIndexLabel, geographicRegionsAnchorIndexLabel ou internationalCountryCallingCodesAnchorIndexLabel, pour que le texte soit explicite sans obliger le partial à deviner le contexte.
Manifeste d’interface
- Nature
- Composant
- Catégorie
- Navigation
- Statut
- Implémenté
- Implémentation
- Partial:
layouts/partials/data-page/anchor-index.htmlCSS:assets/css/site.cssi18n:alphabeticalIndexcategoriescallingCodeZonesm49RegionsairlineCodesAnchorIndexLabelworkforceFrameworksAnchorIndexLabelgeographicRegionsAnchorIndexLabelinternationalCountryCallingCodesAnchorIndexLabelphoneticAlphabetAnchorIndexLabelusesCategoriesusesCategoryAnchorIndexLabel
Accessibilité#
- La rangée est un point de repère
<nav>fait de simples liens de fragment.- Le libellé visible est un
<p>distinct placé avant lenav, pas le nom du point de repère.
- Le libellé visible est un
- Le nom accessible vient de
ariaLabelou deariaLabelKey, rendu commearia-labelsur le<nav>.- Fournissez-en toujours un pour que la rangée se distingue des autres points de repère de navigation de la page. Le partial émet un avertissement pendant la génération Hugo s’il est absent.
- Chaque lien garde le nom de la section comme texte visible, avec le nombre optionnel dans son propre span
anchor-index-countcomme texte d’appoint - Clavier : Tab atteint chaque lien et Entrée suit le fragment jusqu’à sa section
- Évitez un lien réduit au nombre. Le nombre complète le libellé et ne doit jamais être le seul texte d’un lien.