L'élément img est mal nommé...
L'élément img est mal nommé: il ne reflète pas vraiment sa fonction en pratique.
À la suite d'un échange l'autre jour avec un collègue, je me suis dit que je devrais poster un petit billet en récapitulant les conclusions. J'y avais alors développé une réflexion sur la nature de l'élément img tel que je la perçois. J'en avais d'ailleurs déjà dit quelques mots sur la liste de diffusion Accesstech en avril 2008.
Dans la recommandation du W3C, il est précisé que The IMG element embeds an image in the current document at the location of the element's definition
. Il est peu probable, au vu de l'état actuel de la recommandation HTML5, que cette manière de présenter les choses changent.
Cependant, elle reflète une vision très centrée sur les navigateurs graphiques (sans jeu de mots...). En effet, quand le document contenant un élément img est parcouru par un outil de consultation non graphique, comme un lecteur d'écran par exemple,ce n'est évidemment pas l'image qui est restituée, mais bien son « alternative » fournie par les attributs alt et éventuellement longdesc.
Or une alternative n'est pas une « roue de secours » si l'image n'est pas présente : c'est bien une autre manière de présenter l'information. Cette information est une donnée hors contexte; c'est « quelque chose » que le rédacteur a voulu transmettre à son lectorat. Il a opté pour ce faire pour une publication Web par le truchement du langage HTML.. Dans ce processus de mise en forme de l'information, il a été amené à faire un choix éditorial en sélectionnant, à un moment donné, un mode de présentation: texte seul ou contenu graphique. Mais à la base, c'est bien d'une information unique dont il s'agit. Si par exemple il souhaite exposer l'évolution des ventes de réfrigérateurs de son entreprise, il aura le choix entre une présentation tabulaire ou un graphique (les deux solutions ne s'excluant pas mutuellement).
Un tableau favorise les utilisateurs dont le mode d'esprit est analytique, tandis qu'un graphique est plus facile à interpréter par les utilisateurs dont le fonctionnement mental est plus synthétique. Pourquoi ne pas franchir le pas et admettre que les deux formes de présentation de l'information sont réellement équivalentes?
L'élément img apparaît alors comme un moyen simple et élégant de fournir les deux mises en forme de l'information simultanément. Cela revient à ne plus considérer l'attribut src comme « plus nécessaire » que l'attribut alt. Après tout, ils jouent un rôle symétrique pour un navigateur graphique:
- quand
srcest présent mais pasalt, c'est l'image qui est affichée, soit le contenu pointé par src; - quand
altest présent mais passrc, c'est le contenu textuel qui est affiché.
img peut être réévaluée: ce n'est plus seulement le moyen d'insérer une image dans un document HTML; c'est aussi bien plus, dans la mesure où c'est un élément qui permet de fournir une information donnée sous deux formats différents simultanément.
Commentaires
gilles,
en effet, j'abonde dans ton sens, l'image n'est qu'une des modalités de l'élément IMG, surtout avec l'avènement des navigateurs mobiles dans lesquels l'image n'est pas toujours affichée.
Il n'est reste pas moins, donc, que src, alt ou longdesc portent, voir apportent (enfin devrait apporter) la même information par différents modes.
j'ai juste un peu de mal avec une image purement décorative où la modalité src ne sera, à proprement parlé, équivalentes à un alt="", non ?
Pour aller plus loin, est-ce qu'il n'aurait pas été mieux que la balise <img> permette des alternatives HTML de la même manière que <object> ou <video> ?
Par exemple : <img src="..."><p>Paragraphe alternatif</p></img>
@Sanvin je me trompe peut-être mais en principe les images purement décoratives sont insérées via CSS, donc la question ne se pose pas.
@Sanvin: j'avais évoqué le sujet l'autre jour à Paris-Web. Je crois que tu n'étais pas loin... et j'avais oublié que j'avais écrit ce billet voici bieeen longtemps.
Une image décorative devant être, normalement, dans la CSS, on ne devrait pas faire appel à l'élément img pour l'incorporer au document... donc la question de ce qu'on doit alors mettre dans l'attribut alt ne se poserait pas. Dans le vrai monde réel, on ne peut cependant empêcher les gens de faire n'importe quoi: placer des images décoratives dans le HTML et du content: dans la CSS...