identical-iframes-same-purpose

Les cadres portant le même nom intègrent la même ressource

automaticWCAG 4.1.2 (A)confiance : mediumgravité : moderaterobust

Vérifie que les éléments <iframe>/<frame> qui partagent un nom accessible intègrent la même ressource, puisqu’un même nom ne peut décrire qu’une seule ressource.

Applicabilité. S’applique à chaque ensemble de deux éléments <iframe>/<frame> ou plus inclus dans l’arbre d’accessibilité et partageant le même nom accessible non vide, comparé après fusion des espaces. Un cadre nommé uniquement par un mécanisme qui ne nomme rien, ou masqué de l’arbre d’accessibilité, ne fait partie d’aucun ensemble ; un ensemble n’existe que s’il lui reste deux membres.

Attendu. Chaque cadre d’un ensemble se résout vers la même ressource. Un nom partagé décrit une seule ressource, donc deux cadres qui y répondent doivent intégrer la même.

Ce que rapporte un constat.

  • name : le nom accessible que partagent les cadres.
  • resource : l’adresse qu’intègre ce cadre, sous forme d’URL absolue sans son fragment. Vide (null) lorsque son src n’a pas pu être résolu (IFRAME_RESOURCE_UNRESOLVED).
  • setSize : le nombre de cadres qui partagent ce nom.

Ces champs de data.details aident à lire et à reproduire un constat. À part reasonCode et les quelques champs que la page Schéma de sortie donne comme stables, ils ne constituent pas un contrat stable : un champ peut être renommé ou supprimé dans une version mineure, ne vous appuyez donc pas dessus.

Exemples

pass
<iframe title="Weather widget" src="https://example.test/weather"></iframe>
<iframe title="Weather widget" src="https://example.test/weather"></iframe>

Les deux cadres partagent le nom « Weather widget » et intègrent la même ressource.

can't tell
<iframe title="Weather widget" src="https://example.test/weather?city=nyc"></iframe>
<iframe title="Weather widget" src="https://example.test/weather?city=sf"></iframe>

Les deux cadres partagent le même nom mais se résolvent vers des ressources différentes : peut-être deux widgets légitimement équivalents, peut-être un cadre mal libellé ; le balisage seul ne permet pas de trancher.

Comment vérifier

Quand cette règle ne peut pas trancher, elle renvoie cantTell et laisse la question à une personne. Chaque question qu’elle peut poser figure ici sous son code de raison, avec les étapes pour y répondre. Un constat porte les mêmes étapes dans howToCheck, dans la langue de l’analyse. Voir Schéma de sortie.

IFRAME_RESOURCE_DIFFERS

  1. Repérez les cadres indiqués par le rapport et notez le nom accessible qu’ils partagent (généralement leur title).
  2. Regardez ce que montre chaque cadre et son adresse src.
  3. Déterminez s’ils remplissent la même fonction (la même carte ou le même widget, seuls des paramètres de suivi différant) ou des fonctions différentes (deux vidéos différentes).

Réussite. Les cadres servent le même objectif : partager un nom ne pose donc pas de problème.

Échec. Les cadres intègrent des contenus différents sous le même nom (par exemple deux vidéos différentes toutes deux intitulées « YouTube video player ») : les utilisateurs ne peuvent pas les distinguer, ce qui ne respecte pas le critère WCAG 4.1.2 (ACT 4b1c6c).

IFRAME_RESOURCE_UNRESOLVED

  1. Repérez les cadres indiqués par le rapport et notez le nom accessible qu’ils partagent.
  2. Faites défiler chaque cadre jusqu’à ce qu’il soit visible pour que tout contenu à chargement différé se charge, puis inspectez-le pour trouver son src, data-src ou srcdoc.
  3. Comparez ce que montre chaque cadre et déterminez s’ils remplissent la même fonction.

Réussite. Les cadres servent le même objectif : partager un nom ne pose donc pas de problème.

Échec. Les cadres montrent des contenus différents sous le même nom : les utilisateurs ne peuvent pas les distinguer, ce qui ne respecte pas le critère WCAG 4.1.2 (ACT 4b1c6c).

Voir le code source