Le WordPress d'aujourd'hui, décodé pour les développeurs

Elementor

aspect-ratio pour stabiliser une vidéo intégrée à un widget Elementor

Réserver l'espace d'une vidéo avant son chargement évite un décalage de mise en page pénalisant pour le CLS.

Par WordPress Développement • 16 octobre 2022 • 4 min de lecture • Aucun commentaire
aspect-ratio pour stabiliser une vidéo intégrée à un widget Elementor

Un score CLS qui grimpe sans raison apparente, alors que rien n’a changé dans le contenu de la page ? La cause la plus fréquente sur un site Elementor tient en une ligne : un widget vidéo qui réserve zéro pixel de hauteur tant que le lecteur n’est pas chargé. Le navigateur affiche le reste de la page, puis insère brutalement le cadre vidéo une fois le script tiers exécuté, ce qui pousse tout le contenu situé en dessous.

Le Cumulative Layout Shift, l’un des trois indicateurs Core Web Vitals annoncés par Google en mai 2020, mesure précisément ce type de décalage visuel inattendu. Une vidéo YouTube ou Vimeo intégrée sans dimension réservée en est une cause classique et facile à corriger.

Pourquoi la vidéo décale la mise en page

Le widget vidéo natif d’Elementor insère un conteneur qui reste vide, ou de très faible hauteur, jusqu’à ce que l’iframe du lecteur externe soit chargée par le navigateur. Sur une connexion lente ou avec un script tiers différé, ce chargement peut prendre plusieurs centaines de millisecondes. Pendant ce laps de temps, le reste de la page s’affiche comme si la vidéo n’existait pas, avant que son insertion ne repousse brutalement tout ce qui suit.

La solution : réserver l’espace avec aspect-ratio

L'essentiel à retenir : Le décalage vient de l'absence de hauteur réservée avant chargement ; La propriété aspect-ratio remplace l'astuce du padding-top ; Un gain mesurable sur le score Cumulative Layout Shift

La propriété CSS aspect-ratio permet de fixer un ratio largeur / hauteur sur un élément, indépendamment de son contenu réel. Contrairement à l’ancienne astuce qui consistait à simuler un ratio avec un padding-top en pourcentage sur un conteneur positionné en absolu, aspect-ratio se lit directement et ne demande aucun calcul de pourcentage arrondi.

.widget-video-conteneur {
  aspect-ratio: 16 / 9;
  width: 100%;
  overflow: hidden;
}

.widget-video-conteneur iframe {
  width: 100%;
  height: 100%;
}

Cette règle s’ajoute dans le panneau Custom CSS du widget concerné, ou dans une classe globale si plusieurs vidéos du site partagent le même format. Le conteneur réserve alors sa hauteur dès le premier rendu, avant même que l’iframe ne soit chargée : plus aucun décalage au moment de l’insertion du lecteur.

Variantes selon le format de vidéo

Toutes les vidéos ne partagent pas le même ratio. Un contenu vertical destiné à un usage mobile utilisera plutôt un ratio de 9 / 16, tandis qu’une vidéo de démonstration produit filmée en format carré se règle avec aspect-ratio: 1 / 1. L’important est de connaître à l’avance le ratio réel du fichier ou du flux intégré : un ratio mal choisi n’empêche pas le décalage de layout, il l’attenue mais laisse une bande vide ou une vidéo rognée.

  • 16 / 9 pour la grande majorité des vidéos YouTube et Vimeo au format paysage ;
  • 9 / 16 pour un contenu vertical de type story ou reel ;
  • 4 / 3 pour d’anciennes captures ou des vidéos de formation filmées en plus petit format.

Ce que cette recette ne couvre pas

Réserver l’espace de la vidéo n’accélère pas son chargement : le script du lecteur tiers reste exécuté au même moment, avec le même poids réseau. Cette recette agit uniquement sur le CLS, pas sur le LCP ni sur le temps de chargement global de la page. Le lazy-load de la vidéo, qui consiste à ne charger le script du lecteur qu’au moment où l’utilisateur fait défiler la page jusqu’à elle, est un sujet distinct qui se traite avec d’autres réglages.

Sur chaque nouveau gabarit contenant une vidéo, on vérifie le ratio réel du contenu avant de figer la règle CSS : une vidéo carrée forcée dans un ratio 16 / 9 produit des bandes noires disgracieuses, même sans décalage de mise en page.

Vérifier le résultat

Le panneau Performance des outils de développement d’un navigateur Chromium affiche les décalages de mise en page détectés lors du chargement d’une page. Après application de la règle aspect-ratio, ce panneau ne doit plus signaler de décalage lié au conteneur vidéo. Un contrôle complémentaire consiste à recharger la page avec un débit réseau simulé lent, pour observer visuellement que l’espace reste stable pendant tout le chargement.

En résumé

Un simple bloc CSS suffit à éliminer une source fréquente de mauvais score CLS sur les gabarits Elementor contenant des vidéos intégrées. La propriété aspect-ratio remplace avantageusement les anciennes astuces de padding en pourcentage et se lit d’un coup d’œil dans le code, ce qui facilite la maintenance sur des projets où plusieurs formats de vidéo cohabitent.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi