Problème de lecture
Cette vidéo ne semble pas disponible
00:00
00:00
Sous-titres non disponibles

Créer un menu à onglet accessible en HTML, CSS et JavaScript (ARIA, RGAA)

Vente flash ! -39% Jusqu'au 14 juillet, 14:41
7,95€12,95€
klarna-condensed
Acheter maintenant, payer plus tard. En savoir plus

Téléchargement & visionnage illimité

Satisfait ou remboursé

Paiement 100% sécurisé

La plupart des systèmes d'onglets que l'on trouve en ligne fonctionnent parfaitement... à la souris. Branchez un clavier ou un lecteur d'écran, et tout s'effondre : impossible de naviguer entre les onglets, focus perdu, contenu invisible pour les technologies d'assistance. Dans ce tuto pratique, vous allez coder un composant « Tabs » de niveau professionnel, à la fois moderne visuellement et parfaitement conforme aux normes RGAA et WAI-ARIA. Le tout en JavaScript vanilla, sans aucune dépendance.
Ce cours est le 6e volet de la série Frontend moderne de Carl Brison, dans laquelle vous construisez, un par un, les composants interactifs incontournables du web accessible. Ici, place aux onglets : un motif d'interface omniprésent pour organiser beaucoup de contenu dans un espace réduit, et l'un des plus délicats à rendre réellement accessible.

Pourquoi tant de menus à onglets sont inaccessibles

Un onglet, ce n'est pas un simple bloc que l'on affiche ou que l'on masque au clic. Pour une personne qui navigue au clavier, l'enjeu est double : ne pas la forcer à tabuler à travers chaque onglet, et lui permettre de circuler avec les flèches directionnelles, exactement comme le prévoit le motif « tabs » du WAI-ARIA. C'est cette logique, souvent oubliée par les scripts tout faits, que vous allez implémenter proprement, avec la gestion du focus et du tabindex qui va avec.

Ce que vous allez coder, étape par étape

Vous partez d'une structure claire avec la balise section et un titre relié via aria-labelledby, puis vous attribuez les bons rôles à chaque élément : tablist pour la barre, tab pour les boutons, tabpanel pour les contenus. Vous créez ensuite les liaisons invisibles mais essentielles entre onglets et panneaux grâce à aria-controls et aria-labelledby, et vous gérez les états avec aria-selected et l'attribut hidden.

Côté style, vous utilisez Flexbox et la fameuse propriété flex: 1 pour une barre d'onglets parfaitement équilibrée et responsive. Le point clé : votre CSS réagit directement au code d'accessibilité, avec une stylisation basée sur [aria-selected="true"]. Vous ajoutez aussi une animation d'entrée douce sur les panneaux et un état de focus visible aux petits oignons pour la navigation clavier.

Vient enfin le cœur du tuto, en JavaScript vanilla. Vous bouclez sur les onglets pour identifier le panneau cible, vous mettez à jour dynamiquement tous les états ARIA, puis vous implémentez le « focus rover » : un seul onglet reste focusable à la fois via le tabindex, et les flèches gauche et droite déplacent le focus d'onglet en onglet, avec retour au début ou à la fin en boucle. Chaque ligne est décomposée et expliquée, y compris la logique mathématique de la navigation.

À qui s'adresse ce tuto ?

Ce cours est fait pour les développeurs front-end qui veulent monter en gamme sur l'accessibilité, les intégrateurs qui souhaitent créer des composants interactifs robustes, et plus largement toute personne qui veut comprendre comment un site web se pilote entièrement au clavier. Une connaissance de base du HTML, du CSS et du JavaScript est recommandée pour suivre confortablement. Vous repartez avec un modèle de code propre, commenté et réutilisable dans vos futurs projets clients.

Votre formateur

Ce tuto est animé par Carl Brison, technicien supérieur en multimédia depuis le début des années 2000, créateur de nombreux sites professionnels et auteur d'ouvrages informatiques publiés aux Éditions Ellipses. Formateur front-end de référence sur Tuto.com, il est aussi le mentor de la formation Développeur Web Front-End éligible au CPF. Son approche : décortiquer chaque notion pour que vous compreniez le « pourquoi » derrière le code, pas seulement le « comment ».

Poursuivez votre montée en compétences

Ce composant fait partie d'une série cohérente d'exercices accessibles. Retrouvez les épisodes complémentaires signés Carl Brison : créer un menu burger accessible, un menu accordéon FAQ accessible et une fenêtre modale accessible. Pour consolider les bases théoriques, appuyez-vous sur les tutos Maîtriser les attributs ARIA. Envie d'aller au bout de la démarche accessibilité ? Explorez le Bundle RGAA formation complète, ou l'ensemble du channel tutos HTML.

Qu’allez-vous apprendre dans ce cours ?

Plan de cours
Leçon 1
Penser et créer la base HTML
Leçon 2
Mettre en place les ARIA
Leçon 3
Mise en forme de base
Leçon 4
Mise en forme des onglets
Leçon 5
On boucle sur les onglets
Leçon 6
Mise à jour des états
Leçon 7
Animation des panels

Table des matières

Leçon 1Penser et créer la base HTML
04m38
Leçon 2Mettre en place les ARIA
10m35
Leçon 3Mise en forme de base
07m24
Leçon 4Mise en forme des onglets
06m50
Leçon 5On boucle sur les onglets
05m39
Leçon 6Mise à jour des états
07m55
Leçon 7Animation des panels
03m02
Leçon 8Trouver l'onglet activé
05m44
Leçon 9On rend l'onglet actuel NON focusable
03m06
Leçon 10On écoute quelle flèche a été enfoncée
04m28
Leçon 11On donne le focus au nouvel onglet
02m01
Leçon 12Pour la prochaine fois
52s

Aperçus

Vos questions sur le cours

Que contient le fichier source ?

Le code source complet de ce tuto.

Après avoir suivi ce tutoriel, serai-je en mesure de concevoir un menu à onglets accessible respectant les standards HTML, ARIA et RGAA ?

Oui, ce cours détaille la création d’un menu à onglets structuré de façon sémantique, en mettant en œuvre les rôles ARIA adaptés et les exigences d’accessibilité du RGAA. Vous repartirez avec le code fonctionnel de ce type de composant, ainsi que la compréhension des liaisons nécessaires entre onglets et contenus.

Ce tutoriel montre-t-il comment rendre un menu à onglets totalement navigable au clavier, avec gestion des focus et des états actifs/interactifs ?

Le cheminement inclut la configuration de la navigation clavier : seuls les onglets actifs sont accessibles par tabulation, et la gestion au clavier se fait via les touches fléchées. Tous les comportements de focus, d’activation et de masquage de contenu sont codés étape par étape en JavaScript natif.

Est-ce que la méthode enseignée permet d’intégrer ce menu à onglets dans tout type de projet web, sans dépendances ni frameworks ?

La réalisation ne fait appel à aucune bibliothèque externe : le code repose exclusivement sur HTML5, CSS3 et JavaScript natif. Vous pouvez donc réutiliser ou adapter le composant dans la plupart des contextes où ces technologies modernes sont disponibles.

Ai-je besoin d’avoir des connaissances approfondies sur l’accessibilité ou sur les attributs ARIA pour suivre le tutoriel ?

Il n’est pas nécessaire d’être déjà familiarisé avec l’accessibilité ou les attributs ARIA pour profiter du contenu. Toutes les notions fondamentales d’accessibilité nécessaires à la réalisation sont expliquées et appliquées de façon progressive.

Vais-je pouvoir appliquer cette méthode avec n’importe quel framework frontend (React, Vue, etc.) ?

Le tutoriel enseigne une implémentation strictement en code natif, sans extension spécifique à un framework. Les principes de structuration et d’accessibilité peuvent inspirer des adaptations, mais l’intégration à un environnement framework n’est pas abordée ni garantie.

Puis-je acheter ce tutoriel sans risque, et que faire si le contenu ne correspond finalement pas à mes attentes ?

Ce tutoriel est payant. En cas d’insatisfaction, vous pouvez vous référer à la politique générale « satisfait ou remboursé » de tuto.com, selon les conditions précisées sur la plateforme.

Payer plus tard

Prix d'achat : 7,95 €
Pour payer plus tard, sélectionnez Klarna comme moyen de paiement lors du règlement.

Ajoutez des articles à votre panier

Sélectionnez Klarna lors du règlement

Recevez une autorisation

Payez dans 30 jours

Klarna : conditions d'utilisation du paiement différé.

Attendez ! 🤗

Accédez à plus de 1402 tutos gratuits

Notre politique de protection des données