Accessibilité, longdesc et DotClear
Il est conseillé d'utiliser l'attribut longdesc pour décrire une image, et rendre la page plus accessible, notamment aux personnes qui ne peuvent pas afficher les images (j'ai personnellement testé ça avec une connexion GPRS au volume de transfert limité à 20 Mo...) ou qui ne peuvent pas les voir.
L'attribut longdesc, c'est la spécification W3C qui le dit (voir lien au début du paragraphe), doit avoir une URI pour valeur... ce qui n'est pas très pratique quand on utilise des outils de blogging comme DotClear (qui contient dans sa syntaxe wiki une fonction pour rajouter un longdesc à une image : ((url|alt|alignement (float: CSS)|longdesc))), mais qui ne permette pas par défaut de créer des pages à la volée pour stocker des longdescs.
La solution trouvée par DotClear n'est pas valide (X)HTML : la description longue est stockée dans la valeur du longdesc. Emmanuelle avait déjà soulevé ce problème, que j'avais reporté à Olivier... qui m'avait envoyé sur les roses, et il n'avait pas tort : c'est impossible à implémenter !
Une bien meilleure solution m'est venue du test Acid2, qui pour torturer les navigateurs (j'aime beaucoup la "sucette" que rend Firefox... il part en sucette ! Bon, d'accord, elle était nulle.), stocke un bout de CSS dans une URL (voir le <link rel="appendix stylesheet" ...). Deux minutes de googlage plus tard, et je tombe sur la RFC 2397, "The 'data:' URL scheme". La révélation.
Concrètement, j'ai une image :

Et sa description :
Un lampadaire sur le bord d'une façade du Palais Pitti, à Florence (Italie).
Pour mettre les deux ensemble, j'utilise la syntaxe XHTML suivante :
<img
src="lampadaire-pitti.jpg"
alt="Lampadaire sur le Palais Pitti"
longdesc="data:text/plain;charset=utf-8,Un
lampadaire sur le bord d'une façade
du Palais Pitti, à Florence (Italie)." />
Attention à bien encoder l'URL pour qu'elle ne contienne que des caractères ASCII ! Ainsi, à Florence devient %C3%A0 Florence. Je n'ai pas encodé l'URL dans l'exemple précédent pour des questions de lisibilité.
Tout ceci donne (avec le "D" pour faire un lien vers la description !) :
Nous avons donc un longdesc parfaitement valide (puisque data: est un schéma d'URL). Cliquez sur "D" dans votre navigateur : une page contenant le texte descriptif s'affiche ! (testé sous Firefox et Opera, petit problème d'encodage avec Opera... Internet Explorer n'accepte pas, évidemment...).
Dans DotClear, cela se fait comme ça (tout sur une seule ligne) :
((lampadaire-pitti.jpg
|Lampadaire sur le Palais Pitti
|C
|data:text/plain;charset=utf-8,Un lampadaire
sur le bord d'une fa%C3%A7ade
du Palais Pitti, %C3%A0 Florence
(Italie).))
Pour information, voici la syntaxe complète d'une URL "data" :
dataurl := "data:" [ mediatype ] [ ";base64" ] "," data mediatype := [ type "/" subtype ] *( ";" parameter ) data := *urlchar parameter := attribute "=" value
Soit, de manière lisible par un humain :
URL = data:<type MIME>,<caractères encodés>
Pour plus d'informations sur la formulation d'un type MIME : RFC 2045, "Multipurpose Internet Mail Extensions (MIME) Part One" (notamment le chapitre 5.1, "Syntax of the Content-Type header field").
Enfin, on peut noter que, comme dans le test Acid2, les URLs "data" peuvent être utilisées pour stocker des CSS, ou des images (comme dans la RFC) - même si c'est très peu efficace - ; ou bien... n'importe quoi qui ait un type MIME !

Commentaires
1. Le dimanche 1 mai 2005 à 23:32, par Tortue GT
2. Le lundi 2 mai 2005 à 17:52, par balbinus
3. Le lundi 2 mai 2005 à 23:44, par tehu
4. Le mardi 3 mai 2005 à 21:57, par balbinus
5. Le mardi 2 août 2005 à 22:16, par Voyage italie
6. Le mardi 15 novembre 2005 à 23:22, par fred
7. Le dimanche 27 novembre 2005 à 22:54, par mathias
8. Le lundi 28 novembre 2005 à 21:08, par math
9. Le lundi 12 décembre 2005 à 10:19, par Scooter System
10. Le vendredi 20 janvier 2006 à 15:03, par misstic
11. Le vendredi 20 janvier 2006 à 15:05, par misstic
12. Le vendredi 20 janvier 2006 à 15:06, par misstic
13. Le vendredi 20 janvier 2006 à 15:06, par misstic
14. Le vendredi 20 janvier 2006 à 15:07, par misstic
15. Le vendredi 20 janvier 2006 à 15:07, par misstic
16. Le vendredi 20 janvier 2006 à 15:09, par misstic
17. Le jeudi 23 février 2006 à 00:17, par ativan
18. Le jeudi 23 février 2006 à 00:56, par group sex
19. Le jeudi 23 février 2006 à 00:57, par gay sex
20. Le jeudi 23 février 2006 à 01:22, par anal sex
21. Le jeudi 23 février 2006 à 01:35, par oral sex
22. Le jeudi 23 février 2006 à 02:19, par asian sex
23. Le jeudi 23 février 2006 à 02:56, par hardcore sex
24. Le jeudi 23 février 2006 à 02:58, par sex toy
25. Le jeudi 23 février 2006 à 03:32, par teen sex
26. Le jeudi 23 février 2006 à 03:39, par sex stories
27. Le mercredi 6 février 2008 à 18:54, par Infos
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.