Tabs
Onglets horizontaux in-page — chaque onglet affiche un panneau de contenu associé. Pattern ARIA tablist/tab/tabpanel conforme W3C APG, activation automatique au focus.
Horizontal in-page tabs — each tab reveals an associated content panel. W3C APG-compliant tablist/tab/tabpanel ARIA pattern, automatic activation on focus.
Aperçu Preview
Aperçu Overview
Tokens
Accessibilité Accessibility
Contenu du panneau « Aperçu ». Panel content for "Overview".
Quand l'utiliser When to use
Composant Component Usage Usage
agtc-tabsNavigation in-page avec panneau — tablist/tab/tabpanel (ARIA) In-page navigation with panel — tablist/tab/tabpanel (ARIA)
agtc-segmentedRéglage à effet immédiat sans panneau (langue, densité, vue) Immediate-effect setting without panel (language, density, view)
Règles absolues Absolute rules
Toujours un label sur le tablist (pour les AT) Always a label on the tablist (for AT)
Minimum 2 onglets — un seul onglet = pas de tabs Minimum 2 tabs — a single tab is not tabs
Tablist positionné au-dessus du panneau (jamais à droite) Tablist positioned above the panel (never to the right)
Labels en casse naturelle (jamais ALL-CAPS) Labels in natural case (never ALL-CAPS)
Jamais pour un réglage sans panneau (→ agtc-segmented) Never for a setting without panel (→ agtc-segmented)
Jamais de valeur en dur — toujours via var(--agtc-…) Never hardcoded values — always via var(--agtc-…)
Clavier Keyboard
Touche Key Effet Effect
← → Focus + activation onglet précédent/suivant (circulaire) — mode auto Focus + activate previous/next tab (circular) — auto mode
Home End Focus premier / dernier onglet Focus first / last tab
Enter Space Active l'onglet focusé (toujours, y compris mode manual) Activate focused tab (always, including manual mode)
Tab Sort du groupe vers le panneau actif Exits group to the active panel
Tokens de composant Component tokens
Token CSS Référence Reference Valeur Value
--agtc-component-tabs-default-tab-textsemantic.color.text.secondary#646464 --agtc-component-tabs-default-tab-text-hoversemantic.color.text.primary#202020 --agtc-component-tabs-default-tab-text-activesemantic.color.action.primary#007a68 --agtc-component-tabs-default-indicatorsemantic.color.action.primary#007a68 --agtc-component-tabs-default-bordersemantic.color.border.default#e8e8e8 --agtc-component-tabs-default-border-focussemantic.color.border.focus#007a68 --agtc-component-tabs-default-padding-xsemantic.space.control.padding-x16px --agtc-component-tabs-default-padding-ysemantic.space.control.padding-y8px
Accessibilité Accessibility
role="tablist" + aria-label sur le conteneurrole="tablist" + aria-label on the container
role="tab" + aria-selected + aria-controls sur chaque ongletrole="tab" + aria-selected + aria-controls on each tab
role="tabpanel" + aria-labelledby sur chaque panneaurole="tabpanel" + aria-labelledby on each panel
Roving tabindex : onglet actif tabindex="0", les autres -1 Roving tabindex: active tab tabindex="0", others -1
:focus-visible tokenisé · :visited neutralisé (ADR-047)Tokenized :focus-visible · neutralized :visited (ADR-047)
Contraste texte actif (teal sur blanc) : 5.14:1 ✅ WCAG AA Active text contrast (teal on white): 5.14:1 ✅ WCAG AA
Implémentation Implementation
<agtc-tabs label="Documentation Button" selected="overview">
<div slot="overview">Overview content</div>
<div slot="tokens">Tokens content</div>
</agtc-tabs>
<script type="module" src="../components/agtc-tabs.js"></script>
<script>
document.querySelector('agtc-tabs').tabs = [
{ value: 'overview', label: 'Overview' },
{ value: 'tokens', label: 'Tokens' },
];
</script>
DOs et DON'Ts DOs and DON'Ts
À faire Do
Nommer le tablist avec label="…" Name the tablist with label="…"
Positionner le tablist au-dessus du panneau Position the tablist above the panel
Labels concis en casse naturelle Concise labels in natural case
À éviter Don't
Utiliser pour un réglage sans panneau (→ agtc-segmented) Use for a setting without panel (→ agtc-segmented)
Libellés en MAJUSCULES ALL-CAPS labels
Un seul onglet (pas de tabs) A single tab (not tabs)
UX Patterns Reference
Pattern Source (link) Applied Justification Tablist above the panel NN/g — Tabs Used Right ✅ Maximum content discoverability In-page tabs (instant change) NN/g ✅ Keeps the user in place Automatic activation on focus W3C APG ✅ Preloaded content — APG recommends auto ARIA tablist/tab/tabpanel W3C APG ✅ Standard accessibility pattern Arrows + Home/End + roving tabindex W3C APG ✅ Compliant keyboard navigation Labels in natural case NN/g ✅ Readability — never ALL-CAPS :visited neutralizedADR-047 ✅ System rule — navigation Optional href (navigation tabs) NN/g ✅ Mixed in-page + external link tabs
Contribuer à ce projet
Contribute to this project
Ce système est ouvert aux contributions — tokens, composants, décisions architecturales, corrections d'accessibilité ou documentation. Toute amélioration est bienvenue.
This system welcomes contributions — tokens, components, architectural decisions, accessibility fixes, or documentation. Every improvement counts.
Voir sur GitHub
View on GitHub
Haut Top