Décrire les cadres et leurs relations |
Point de contrôle 12,2 de priorité 2 WAI / WCAG 1.0
Description du problème La page contient des éléments FRAMESET et FRAME avec un attribut TITLE. Vérifiez que l'attribut décrit le rôle du cadre et comment celui-ci s'associe aux autres cadres de la page. Si nécessaire, ajoutez également un attribut LONGDESC.
Procédure de vérification Vérifiez que l'attribut TITLE de l'élément FRAME décrit clairement le rôle du cadre et sa relation avec les cadres associés. Si l'attribut TITLE ne suffit pas (par exemple parce que des images, des liens ou autres balises sont requises), utilisez également l'attribut LONGDESC pour attribuer un lien à un fichier HTML contenant une description plus longue. Voir la section Explication pour consulter un exemple détaillé. L'attribut NAME est généralement utilisé pour faire de la programmation et il ne doit contenir aucun espace. L'attribut TITLE, autorisé à contenir des espaces, peut servir à définir une meilleure description. En général, il est plus sûr d'utiliser les deux.
Explication du problème Les cadres sont principalement utilisés pour regrouper des informations et des éléments de navigation, ainsi que pour les afficher avec une certaine mise en page. Cependant, certaines technologies d'aide (navigateurs vocaux ou en mode texte, lecteurs d'écran) ne peuvent pas profiter de la mise en page. Par conséquent, ces outils rendent chaque cadre hors contexte, sans la moindre référence aux autres cadres. La personne utilisant ces outils ne peut pas voir les autres cadres et leur contenu. C'est pourquoi il est important que chaque cadre indique une description permettant à l'utilisateur d'élaborer le contexte. Les noms tels que "haut", "en bas à gauche" généralement attribués aux cadres ne sont pas suffisamment descriptifs et n'aident pas l'utilisateur à reconstruire le contexte. Prenons un exemple (issu de HTML Techniques for Web Content Accessibility Guidelines 1.0 [http://www.w3.org/TR/WCAG10-HTML-TECHS/#frame-text-equivalent] et légèrement modifié) :
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
    <HTML>
      <HEAD>
        <TITLE>Today's news</TITLE>
      </HEAD>

      <FRAMESET cols="10%,*,10%">

      <FRAMESET rows="20%,*">
        <FRAME src="promo.html" name="promo" title="promotions">
        <FRAME src="sitenavbar.html" name="navbar"
           title="Sitewide navigation bar" longdesc="frameset-desc.html#navbar">
      </FRAMESET>

      <FRAME src="story.html" name="story" title="Selected story - main content"
         longdesc="frameset-desc.html#story">

      <FRAMESET rows="*,20%">
        <FRAME src="headlines.html" name="index" title="Index of other
          national headlines" longdesc="frameset-desc.html#headlines">
        <FRAME src="ad.html" name="adspace" title="Advertising">
      </FRAMESET>

      <NOFRAMES>
        <p><a href="noframes.html">No frames version</a></p>
        <p><a href="frameset-desc.html">Descriptions of frames.</a></p>

      </NOFRAMES>

      </FRAMESET>
    </HTML>
Voici un exemple de fichier frameset-desc.html :
    #Navbar - this frame provides links to the <a href="sitenavbar.html">major
              sections of the site</a>:  World News, National News,
              Local News, Technological News,
              and Entertainment News.

    #Story  - this frame displays the <a href="story.html">currently selected story</a>.

    #Index  - this frame provides links to the day's
              <a href="headlines.html">headline stories</a> within this section.
L'élément NOFRAMES est utile lorsque des navigateurs spéciaux ne prenant pas en charge les cadres sont utilisés (par exemple, ceux utilisés sur les assistants personnels et les téléphones portables).