Que sont les images adaptatives ?
Les images adaptatives sont des variantes de ressources sélectionnées ou générées en fonction de la taille d’affichage, de la densité de pixels, des formats pris en charge ou des conditions réseau du destinataire. Chaque variante représente la même source avec un profil de diffusion adapté.
Fonctionnement des images adaptatives
La diffusion d’images adaptatives conserve une source unique et propose plusieurs variantes qui diffèrent par leur largeur en pixels, leur densité de pixels, leur recadrage ou leur format d’encodage. Le standard HTML présente cette technique sous le titre « Images adaptatives » ; MDN parle d’images réactives. La variante peut être choisie à deux endroits. Dans le balisage, srcset et sizes énumèrent les candidats et le navigateur en choisit un, tandis que picture avec des éléments source ajoute des règles de direction artistique (media) et de format (type). Sur le serveur, une même URL renvoie des octets différents selon les en-têtes de la requête, comme Accept, ou les indications client. La sélection dans le balisage nécessite seulement une URL distincte par variante. La sélection côté serveur permet un HTML plus court, mais l’exactitude des résultats dépend de la manière dont les caches sont informés des en-têtes variables.
Points clés
- Pourquoi une petite image sur la page entraîne-t-elle quand même le téléchargement du plus gros fichier ? Le navigateur commence à récupérer les images avant d’avoir appliqué le CSS de la page : la largeur dans la mise en page doit donc être déclarée dans le HTML. Avec les descripteurs
w, le standard HTML exige un attributsizes; s’il manque ou ne peut pas être analysé, la largeur retenue est100vw, comme si l’image remplissait la zone d’affichage. Chaque valeurwdoit aussi correspondre à la largeur réelle du fichier en pixels. Sur les images avecloading="lazy", la valeursizes="auto"permet au navigateur d’utiliser la largeur de rendu, suivie d’une liste de repli pour les navigateurs qui ne prennent pas en charge ce mot-clé. Les élémentssourcene peuvent omettresizesque s’ils précèdent un tel élémentimg, ce que le standard considère comme équivalent àauto. - Puis-je prévoir exactement quel candidat un navigateur chargera ? Pas à partir de
srcsetuniquement. Le standard laisse le navigateur choisir « d’une manière définie par l’implémentation » et tenir compte de la densité de pixels, du niveau de zoom et éventuellement des conditions réseau. Deux navigateurs peuvent donc charger des fichiers différents à partir du même balisage. En revanche, le choix entre les élémentssourcerepose sur des règles : le navigateur les examine dans l’ordre et utilise le premier dont la requêtemediacorrespond et dont il prend en charge le typetype, en considérant un attribut absent comme une condition satisfaite. Réservezmediaà la direction artistique, lorsqu’un recadrage différent doit être affiché, et laissez le navigateur choisir entre les résolutions. - Comment proposer AVIF ou WebP avec une solution de repli ? Placez un élément
sourcepar format danspicture, chacun avec un attributtypetel quetype="image/webp", puis un élémentimgdans un format largement pris en charge. Le navigateur ignore tout élémentsourcedont il ne prend pas en charge le type. N’omettez pastype: sans cet attribut, le standard HTML indique que le navigateur ne passera pas à un autre élémentsourceaprès avoir récupéré une image dans un format qu’il ne prend pas en charge. Lorsqu’un recadrage est aussi sélectionné avecmedia, fournissez également pour ce recadrage un élémentsourcedans le format de repli et placez ses sources avant celles qui s’appliquent plus largement. Sinon, un navigateur incapable de décoder le format plus récent se rabat sur un autre recadrage. - Qu’est-ce qui change lorsque le serveur choisit la variante ? Les caches doivent connaître les en-têtes de requête dont le choix dépendait. Une réponse sélectionnée selon
Acceptou une indication client devrait mentionner cet en-tête dansVary; sinon, un cache peut réutiliser une variante pour une requête qui en nécessitait une autre. Des indications commeSec-CH-Widthne sont envoyées qu’après activation par le serveur avecAccept-CH, et MDN classeSec-CH-Widthcomme expérimental. Vérifiez donc la prise en charge par les navigateurs et conservez un choix par défaut approprié pour les requêtes sans indications.
Quand les images adaptatives sont importantes
Diffusez des variantes plus petites sur les écrans étroits tout en conservant des versions plus denses pour les écrans à haute densité de pixels. Des règles de dimensionnement incorrectes peuvent gaspiller de la bande passante ou donner une image visiblement floue à ses dimensions de rendu.
Comment Transloadit facilite l’utilisation des images adaptatives
Le Smart CDN de Transloadit peut créer les variantes à la demande. Une URL tlcdn.com désigne votre Workspace, un Template et le fichier source. Des paramètres d’URL, comme une largeur, renseignent les variables du Template qui configurent des Robots tels que /image/resize. Une requête sans résultat en cache exécute le Template ; celles qui trouvent un résultat en cache réutilisent le résultat stocké. Le choix de l’URL chargée par un visiteur reste dans votre balisage : les pages liées ici décrivent des variantes accessibles par des paramètres d’URL et ne décrivent pas de sélection à partir d’en-têtes de requête tels que Accept. Énumérez donc les URL des variantes dans srcset ou picture.
Chaque absence de résultat en cache entraîne l’importation et la transformation du fichier et compte dans votre utilisation : la première requête pour chaque nouvelle combinaison de paramètres, ainsi que toute requête ultérieure effectuée lorsque la copie en cache n’est plus disponible, ce qui dépend de vos paramètres de cache. Les résultats trouvés en cache ne sont pas transformés à nouveau. Limitez les variables acceptées par un Template et signez les URL du Smart CDN pour empêcher les visiteurs de demander des variantes arbitraires. Lorsque toutes les dimensions sont connues avant la publication, exécuter une Assembly une seule fois et diffuser ses sorties stockées évite la transformation à la demande.
- Comment utiliser le Smart CDN
- Smart CDN : transformation et diffusion à la demande
- Robot de redimensionnement d’image
- Diffusion des résultats de Templates et signature des URL
Découvrir les fonctionnalités de Transloadit pour les images
Références
- Standard HTML : images (images adaptatives, attributs srcset et sizes, sélection d’une source d’image)
- Standard HTML : éléments picture, source et img
- MDN : images réactives
- Issue HTML WHATWG n° 4654 : « auto sizes » pour les images à chargement différé
- RFC 9110 : sémantique HTTP, section 12.5.5 Vary
- MDN : indications client HTTP
- MDN : en-tête Sec-CH-Width