Description
La plupart des extensions de carrousel WordPress chargent des bibliothèques lourdes (Slick, Swiper, jQuery) et échouent aux vérifications de base en matière d’accessibilité. Les lecteurs d’écran ne peuvent pas les parcourir, les utilisateurs au clavier sont bloqués, et les audits WCAG les signalent systématiquement.
Snap Carousel adopte une approche différente : CSS scroll-snap gère le défilement, les attributs ARIA appropriés font le reste. Pas de bibliothèque JavaScript, pas de panneau de configuration, pas de courbe d’apprentissage — juste un style de bloc à appliquer en un clic.
Développé par WeAre[WP], une agence WordPress spécialisée dans les sites web accessibles et les audits RGAA. Cette extension existe parce que nous avions besoin d’un carrousel qui réussisse réellement nos propres audits.
Blocs pris en charge
Appliquez l’un des 4 styles de carrousel à :
- Bloc Groupe (
core/group) — tous les blocs enfants deviennent des diapositives - Bloc Boucle de requête (
core/query) — les publications défilent comme des diapositives - Bloc Galerie (
core/gallery) — les images défilent comme des diapositives
Variantes
- Carrousel (3 éléments) — 3 éléments visibles + aperçu
- Carrousel (1 élément) — diaporama pleine largeur
- Carrousel (2 éléments) — 2 éléments visibles + aperçu
- Carrousel (4 éléments) — 4 éléments visibles + aperçu
Fonctionnalités
- 100 % CSS scroll-snap — pas de Slick, Swiper ni jQuery
- Boutons de navigation précédent/suivant
- Navigation clavier (touches fléchées, Début, Fin)
- Attributs ARIA complets (role= »region », aria-roledescription, aria-live)
- Effet peek : visibilité partielle de l’élément suivant, signalant du contenu défilable
- Responsive (adaptation automatique tablette/mobile)
- Respect de
prefers-reduced-motion - Compatible avec les blocs Groupe, Boucle de requête et Galerie
- Compatible avec tous les blocs enfants (images, colonnes, groupes, WooCommerce…)
- Léger : ~2 Ko CSS + ~2 Ko JS, aucune dépendance externe
- Prise en charge complète des langues RTL (droite à gauche)
- Entièrement internationalisé (traduction française incluse)
- Personnalisable via les propriétés CSS personnalisées
Accessibilité (WCAG 2.2 AA)
role="region"+aria-roledescription="carousel"sur le conteneurrole="group"+aria-roledescription="slide"sur chaque élémentaria-label="X sur Y"pour le contexte de positiontabindex="0"pour le focus clavieraria-live="polite"pour annoncer les changements- Boutons avec
aria-labeletaria-controls - Cibles tactiles 44×44 px minimum
- Indicateur de focus visible
Utilisation
Avec un bloc Groupe
- Dans l’éditeur, créez un bloc Groupe
- Définissez la mise en page du groupe en Rangée
- Ajoutez des blocs enfants (images, groupes, colonnes…)
- Dans la colonne latérale des réglages Styles choisissez Carrousel (3 éléments) (ou une autre variante)
- Publiez
Avec un bloc Boucle de requête
- Insérez un bloc Boucle de requête
- Configurez la requête (type de publication, filtres, nombre d’éléments…)
- Dans la colonne latérale des Réglages Styles choisissez une variante Carrousel
- Publiez — les publications défilent horizontalement comme des diapositives
Avec un bloc Galerie
- Insérez un bloc Galerie et ajoutez des images
- Dans la colonne latérale des Réglages Styles choisissez une variante Carrousel
- Publiez — les images défilent horizontalement comme des diapositives
Les boutons de navigation et les attributs d’accessibilité sont automatiquement ajoutés côté interface publique.
Personnalisation
Le carrousel est conçu pour fonctionner tel quel, mais vous pouvez facilement surcharger les styles dans le fichier style.css de votre thème ou via l’Outil de personnalisation WordPress > CSS additionnel.
Désactiver l’effet peek
Par défaut, les éléments sont légèrement plus étroits que la zone visible afin que l’élément suivant « apparaisse » — signalant qu’il y a davantage de contenu à faire défiler. Pour désactiver cet effet et afficher des éléments en pleine largeur :
/* Disable peek — 3 items variant */
.is-style-snap-carousel > * {
flex-basis: calc(33.333% - 1rem) !important;
}
/* Disable peek — 1 item variant */
.is-style-snap-carousel-single > * {
flex-basis: 100% !important;
}
/* Disable peek — 2 items variant */
.is-style-snap-carousel-duo > * {
flex-basis: calc(50% - 0.75rem) !important;
}
/* Disable peek — 4 items variant */
.is-style-snap-carousel-quad > * {
flex-basis: calc(25% - 1.125rem) !important;
}
Personnaliser les flèches de navigation
/* Arrow color and background */
.snap-carousel-prev,
.snap-carousel-next {
background: #0073aa;
color: #ffffff;
border-color: #0073aa;
}
/* Arrow hover state */
.snap-carousel-prev:hover,
.snap-carousel-next:hover {
background: #005177;
color: #ffffff;
}
/* Arrow size (default: 44px — WCAG minimum touch target) */
.snap-carousel-prev,
.snap-carousel-next {
width: 48px;
height: 48px;
}
/* Square arrows instead of round */
.snap-carousel-prev,
.snap-carousel-next {
border-radius: 8px;
}
Personnaliser l’espacement
/* Gap between items */
[class*="is-style-snap-carousel"] {
gap: 2rem;
}
/* Space above carousel (room for navigation) */
.snap-carousel-wrapper {
padding-top: 4rem;
}
Personnaliser l’indicateur de focus
/* Custom focus color for keyboard navigation */
[class*="is-style-snap-carousel"]:focus-visible {
outline-color: #ff6600;
outline-width: 3px;
}
.snap-carousel-prev:focus-visible,
.snap-carousel-next:focus-visible {
outline-color: #ff6600;
}
Utilisation avec les jetons de design theme.json
Le carrousel utilise déjà les jetons --wp--preset--color--base, --wp--preset--color--contrast et --wp--preset--color--primary. Vous pouvez les surcharger par bloc dans theme.json ou via CSS :
/* Example: dark themed carousel */
.snap-carousel-wrapper {
--wp--preset--color--base: #1a1a2e;
--wp--preset--color--contrast: #e0e0e0;
--wp--preset--color--primary: #e94560;
}<h3>Technical Notes</h3>
– La surcharge CSS flex-wrap: nowrap sur le conteneur Rangée force le défilement horizontal
– Les éléments utilisent un flex-basis légèrement réduit pour créer l’effet peek (élément suivant partiellement visible)
– Les boutons de navigation sont positionnés en absolute en haut à droite (ajustez la valeur top pour votre thème)
– Le JS utilise un debounce de 150 ms au défilement pour la mise à jour des boutons et de 300 ms pour les annonces aux lecteurs d’écran
– Compatible avec les blocs WooCommerce (produits, etc.)
À propos
Snap Carousel est développé et maintenu par WeAre[WP], une agence WordPress française spécialisée dans les sites web accessibles et les audits de conformité RGAA. Cette extension a été créée pour résoudre un vrai problème : chaque extension de carrousel que nous avons auditée échouait aux exigences de base en matière d’accessibilité. Nous en avons donc créé une qui réussit nos propres audits.
Besoin d’aide pour votre projet WordPress ? Contactez-nous.
Captures d’écrans
Installation
- Téléversez le dossier
snap-carousel-block-styledans/wp-content/plugins/ - Activez l’extension dans le menu Extensions
- C’est prêt !
FAQ
-
Cette extension fonctionne-t-elle avec n’importe quel thème WordPress ?
-
Oui. Snap Carousel utilise l’API standard des styles de blocs WordPress et des propriétés CSS personnalisées. Il fonctionne avec n’importe quel thème basé sur des blocs (FSE) et la plupart des thèmes classiques prenant en charge le bloc Groupe en disposition Rangée. Les flèches de navigation s’adaptent automatiquement aux couleurs de votre thème via les jetons de design
--wp--preset--color--*. -
Quels types de contenu puis-je insérer dans le carrousel ?
-
Tout bloc que WordPress autorise à l’intérieur d’un bloc Groupe, Boucle de requête ou Galerie : images, colonnes, groupes, blocs Couverture, blocs de produits WooCommerce, HTML personnalisé… Le carrousel applique un défilement horizontal scroll-snap aux enfants directs du bloc (ou aux publications/images pour les blocs Boucle de requête et Galerie).
-
Cette extension est-elle accessible ?
-
Oui. L’accessibilité était un objectif de conception central, pas une réflexion après coup. Le carrousel respecte les exigences WCAG 2.2 AA : modèle de carrousel ARIA complet (
role="region",aria-roledescription,aria-live), navigation clavier (touches fléchées, Début, Fin), cibles tactiles de 44×44 px minimum, indicateurs de focus visibles et prise en charge deprefers-reduced-motion. -
Qu’est-ce que l’effet « peek » ?
-
Par défaut, les éléments sont légèrement plus étroits que la zone visible, de sorte que l’élément suivant est partiellement visible — signalant qu’il y a davantage de contenu à faire défiler. C’est un modèle UX bien connu qui améliore la découvrabilité, en particulier sur les appareils tactiles où les flèches de navigation peuvent ne pas être visibles. Vous pouvez le désactiver avec une simple surcharge CSS (voir la section Personnalisation).
-
Cette extension va-t-elle ralentir mon site ?
-
Non. L’empreinte totale est d’environ 2 Ko CSS + 2 Ko JS (minifiés), sans aucune dépendance externe. Les ressources ne sont chargées que sur les pages contenant effectivement un carrousel, il n’y a donc aucun impact sur les performances des autres pages.
-
Puis-je utiliser différentes variantes de carrousel sur la même page ?
-
Oui. Chaque bloc reçoit son propre style de manière indépendante. Vous pouvez avoir un diaporama pleine largeur à 1 élément en haut, un carrousel à 3 éléments au milieu et un carrousel à 4 éléments en bas — le tout sur la même page.
-
Que se passe-t-il si je désactive l’extension ?
-
Votre contenu reste intact. Les blocs retrouvent leur mise en page par défaut. Aucune donnée n’est perdue — l’extension ajoute uniquement un style visuel et ne modifie pas votre contenu en base de données.
-
Puis-je personnaliser l’apparence du carrousel ?
-
Tout à fait. L’extension utilise les jetons de design WordPress et des classes CSS sémantiques. Vous pouvez modifier les couleurs, tailles, formes et espacements des flèches, les indicateurs de focus, et même désactiver l’effet peek — le tout via du CSS simple. Consultez la section Personnalisation pour des exemples prêts à copier-coller.
-
Fonctionne-t-il avec WooCommerce ?
-
Oui. Vous pouvez intégrer des blocs de produits WooCommerce dans un bloc Groupe, appliquer un style de carrousel, et cela fonctionne directement. C’est un excellent moyen de mettre en valeur des produits phares.
-
Le carrousel se lance-t-il automatiquement ?
-
Non, intentionnellement. Les carrousels à lecture automatique sont un obstacle d’accessibilité bien documenté (WCAG 2.2.2 Pause, Stop, Hide) et tendent à réduire l’engagement. Le carrousel est piloté par l’utilisateur : défilement, balayage, clavier ou clic sur les flèches de navigation.
-
Pourquoi le réglage de justification du bloc Groupe n’a-t-il aucun effet sur le carrousel ?
-
Le carrousel nécessite que les éléments s’écoulent depuis le bord de départ pour que CSS scroll-snap fonctionne correctement. Le réglage de justification (gauche, centre, droite, espace entre) est automatiquement surchargé pour assurer un comportement de défilement correct. C’est une contrainte du navigateur, pas une limitation de l’extension. Les langues RTL (droite à gauche) sont entièrement prises en charge — les éléments s’affichent automatiquement de droite à gauche.
-
Puis-je utiliser le carrousel avec un bloc Boucle de requête ?
-
Oui. Depuis la version 1.0.4, vous pouvez appliquer n’importe quel style de carrousel directement à un bloc Boucle de requête. Les publications sont affichées sous forme de diapositives horizontales avec tous les attributs ARIA. C’est idéal pour les sections « dernières publications » ou « publications similaires ».
-
Puis-je utiliser le carrousel avec un bloc Galerie ?
-
Oui. Appliquez un style de carrousel à n’importe quel bloc Galerie et les images défilent horizontalement. La légende de la galerie (figcaption) est préservée et exclue des diapositives du carrousel.
-
En quoi ce carrousel se compare-t-il à Slick, Swiper ou d’autres bibliothèques ?
-
Snap Carousel n’utilise aucune bibliothèque JavaScript de carrousel. Le défilement est entièrement géré par CSS scroll-snap, nativement pris en charge par tous les navigateurs modernes. Le JavaScript est uniquement utilisé pour les boutons de navigation, la gestion du clavier et les annonces aux lecteurs d’écran (~2 Ko). Cela signifie moins de conflits, de meilleures performances et aucune mise à jour de bibliothèque à suivre.
-
Cette extension réussit-elle les audits d’accessibilité RGAA / WCAG ?
-
Oui. L’extension a été conçue spécifiquement pour réussir les audits RGAA et WCAG 2.2 AA. Elle implémente le modèle de carrousel WAI-ARIA : role= »region », aria-roledescription= »carousel » sur le conteneur, role= »group » sur chaque diapositive, zone aria-live pour les annonces, navigation clavier (flèches, Début, Fin) et cibles tactiles de 44×44 px minimum.
-
Le carrousel prend-il en charge les langues RTL ?
-
Oui. Le carrousel détecte automatiquement la direction de la page. En mode RTL (arabe, hébreu, etc.), les éléments s’affichent de droite à gauche, les flèches de navigation adaptent leur direction et la navigation clavier (flèche gauche/droite) suit la direction visuelle attendue.
Avis
Contributeurs/contributrices & développeurs/développeuses
« Snap Carousel — Block Style » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.
Contributeurs“Snap Carousel — Block Style” a été traduit dans 1 locale. Remerciez l’équipe de traduction pour ses contributions.
Traduisez « Snap Carousel — Block Style » dans votre langue.
Le développement vous intéresse ?
Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.
Journal des modifications
1.0.4
- Nouveauté : prise en charge du bloc Boucle de requête — appliquez les styles de carrousel aux blocs core/query, les publications défilent comme des diapositives
- Nouveauté : prise en charge du bloc Galerie — appliquez les styles de carrousel aux blocs core/gallery, les images défilent comme des diapositives
- Amélioration : extraction des fonctions PHP partagées (wearewp_snapcarousel_nav_html, wearewp_snapcarousel_wrap) pour un rendu DRY
- Amélioration : légende de galerie (figcaption) exclue des diapositives du carrousel (CSS + JS)
- Amélioration : règles responsive pour les variantes Boucle de requête et Galerie (tablette + mobile)
- Amélioration : CSS de prévisualisation dans l’éditeur pour les blocs Boucle de requête et Galerie
1.0.3
- Correction : préfixes uniques (wearewp_snapcarousel) pour tous les defines, filtres, identifiants et globales JS — conformité WordPress.org Plugin Review
- Correction : constante de version centralisée en WEAREWP_SNAPCAROUSEL_VERSION
- Nouveauté : flux de travail GitHub Actions pour la création automatique de paquets ZIP
1.0.2
- Correction : la justification du bloc Groupe (centre, droite, espace entre) ne casse plus le carrousel
- Nouveauté : prise en charge complète des langues RTL (droite à gauche) — navigation, clavier et détection de défilement
- Correction : amélioration de la tolérance de détection de fin de défilement pour les arrondis sous-pixel
- Amélioration : les boutons de navigation utilisent les propriétés logiques CSS (inset-inline-end)
1.0.1
- Correction : domaine de traduction aligné sur le slug de l’extension (snap-carousel-block-style)
- Correction : appel obsolète à load_plugin_textdomain() supprimé
- Correction : en-tête Domain Path supprimé (inutile pour les extensions hébergées sur wordpress.org)
1.0.0
- Première version publique
- 4 variantes de style carrousel (1, 2, 3, 4 éléments)
- Effet peek activé par défaut (élément suivant partiellement visible)
- Accessibilité WCAG 2.2 AA complète
- Prêt pour l’internationalisation avec traduction française (fr_FR)
- Exemples de personnalisation CSS inclus dans le readme


