C'est quoi
Un <iframe> intègre un document externe dans la page : vidéo YouTube, carte, formulaire de réservation, widget de chat ou de calendrier.
Le lecteur d'écran traite chaque cadre comme une zone autonome. Quand l'utilisateur y entre, il annonce le nom du cadre. Ce nom vient de l'attribut title.
Sans title, le nom est absent ou aléatoire (URL de la source, numéro auto-généré). L'utilisateur ne sait pas ce qu'il va trouver.
L'attribut title fournit ce nom : une courte description du contenu du cadre, dans la langue de la page. Il doit être unique si la page contient plusieurs cadres.
Qui est touché
- Les personnes aveugles ou malvoyantes : le lecteur d'écran annonce le
titleà l'entrée du cadre. Sans lui, la navigation dans le cadre est désorientante. - Les personnes naviguant au clavier : elles peuvent lister les cadres de la page pour s'y déplacer directement. Un
titleabsent rend cette liste inutile.
Impact business
L'erreur est fréquente sur les pages intégrant des widgets tiers : cartes, vidéos, formulaires de contact, lecteurs audio.
L'utilisateur de lecteur d'écran se retrouve dans un cadre anonyme. Il doit explorer son contenu à l'aveugle ou le quitter sans avoir pu l'identifier.
C'est un critère de niveau A : il fait partie des exigences de base du RGAA et de l'European Accessibility Act.
Comment le détecter
- Audit Mynto : le scan détecte les
<iframe>sans attributtitleou avec untitlevide. - Manuel : ouvre l'inspecteur du navigateur (F12), cherche toutes les balises
<iframe>et vérifie la présence et la pertinence de l'attributtitle. - Attention aux iframes injectés par des scripts tiers (Google Maps, YouTube, Calendly) : le
titledoit être ajouté côté intégration.
Comment corriger
<!-- Iframe sans titre : le lecteur d'écran dit "cadre" sans contexte -->
<iframe src="https://maps.google.com/?q=Paris" width="600" height="400">
</iframe><!-- Iframe avec titre explicite -->
<iframe
src="https://maps.google.com/?q=Paris"
title="Carte de localisation de notre agence - Paris"
width="600"
height="400">
</iframe>Ajoute l'attribut title sur chaque <iframe> avec une description courte
du contenu du cadre. Choisis un texte unique si plusieurs cadres sont présents
sur la même page.
Sur WordPress, les blocs et widgets qui génèrent des iframes (bloc Vidéo,
plugins de carte, formulaires Gravity Forms) exposent souvent un champ
"Titre" ou "Description" dans l'éditeur. C'est ce champ qui alimente le
title. Si le bloc ne le propose pas, utilise un filtre PHP ou un script
JavaScript qui ajoute l'attribut après l'insertion dans le DOM.
Questions fréquentes
Le title doit-il être identique au titre de la section qui entoure le cadre ?
Non. Le title décrit le contenu du cadre, pas la section qui l'entoure. "Carte de localisation - Paris" est plus utile que "Notre adresse".
Un iframe masqué avec display none doit-il avoir un title ?
Un iframe masqué avec display:none ou visibility:hidden est ignoré par les lecteurs d'écran. Le title n'est pas obligatoire dans ce cas. En revanche, un iframe positionné hors écran (coordonnées négatives) reste accessible et doit avoir son title.
Que faire pour les iframes publicitaires sans contenu interactif ?
Si l'iframe est purement décorative et sans interaction, tu peux lui ajouter aria-hidden="true" pour la masquer aux lecteurs d'écran. Sinon, un title descriptif reste requis.
À lire aussi
Cette erreur est-elle sur ton site ?
Lance un audit Mynto gratuit. Tu sauras en quelques minutes si ton site est concerné, sur quelles pages, et avec quel impact.