Académique Documents
Professionnel Documents
Culture Documents
Version 3.04
Octobre 2007
Bruno Mascret
DSI-INSA de Lyon
1
Avertissement
Ce document présente selon nous suffisamment d'éléments et de conseils
pour être utilisé efficacement.
Cependant, certains aspects demandent encore à être approfondis, ce que
nous ne manqueront pas de faire dans les versions prochaines.
Bien que reprenant de nombreux points traités par la WAI, il ne s'agit en
aucun cas d'une traduction des recommandations de la WAI.
2
Sommaire
Introduction..........................................................................................................................................4
Objectifs du document.....................................................................................................................4
Public visé........................................................................................................................................4
Définition de l'accessibilité d'un site internet..................................................................................4
Organisation du document...............................................................................................................5
I. Phase préliminaire.............................................................................................................................6
1. Identifier le contexte....................................................................................................................6
2. Identifier les objectifs..................................................................................................................6
3. Identifier les moyens....................................................................................................................7
II. Phase d'analyse................................................................................................................................8
1. Collecter, préparer et organiser les ressources.............................................................................8
2. Réalisation des patrons................................................................................................................8
3. Identifier le contenu et la forme...................................................................................................8
III. Gestion du contenu.........................................................................................................................9
1. Quel langage utiliser?..................................................................................................................9
2. Structuration du contenu..............................................................................................................9
2.1. Pourquoi structurer le contenu?.......................................................................................9
2.2. Les éléments de structuration..........................................................................................9
2.2.1 Les divisions.............................................................................................................9
2.2.2 Les titres.................................................................................................................10
2.2.3 Les listes.................................................................................................................10
2.2.4 Le paragraphe.........................................................................................................10
2.2.5 Les formulaires.......................................................................................................10
2.2.6 Les tableaux............................................................................................................11
2.2.6.1 Les dangers des tableaux.................................................................................11
2.2.6.2 Bien utiliser les tableaux.................................................................................11
2.3 Organisation des blocs de structure................................................................................14
2.3.1 Les éléments d'accessibilité....................................................................................14
2.3.1.1 Les clefs d'accès (access keys)........................................................................14
2.3.1.2 Le menu caché................................................................................................14
2.3.1.3 La navigation au clavier..................................................................................15
2.3.2 Enchaînement des blocs..........................................................................................15
2.3.3 Les classes et les identifiants..................................................................................15
3. Le contenu..................................................................................................................................16
3.1 L'entète (head) et les métadonnées....................................................................................16
3.2 Le texte................................................................................................................................16
3.2.1 Structuration du texte..................................................................................................17
3.2.2 Jeu de caractères et paramètres linguistiques..............................................................17
3
3.2.3 Les attributs de texte....................................................................................................17
3.2.3.1 Gras, italique, souligné, couleur..........................................................................18
3.2.3.2 Abréviations et Acronymes.................................................................................19
3.2.4 Les liens hypertextes...................................................................................................19
3.3 Les images...........................................................................................................................20
3.3.1 Texte alternatif, description.........................................................................................20
3.3.2 Le texte scientifique et le texte musical......................................................................20
3.4 Les tableaux........................................................................................................................21
3.5 Les fichiers..........................................................................................................................21
3.6 Le contenu audiovisuel......................................................................................................21
3.6.1 La vidéo.......................................................................................................................21
3.6.2 Le son..........................................................................................................................22
3.7 Les expressions mathématiques et scientifiques.................................................................22
3.8 Les expressions musicales...................................................................................................22
3.9 Les applets Java...................................................................................................................23
3.10 Flash..................................................................................................................................23
3.11 Javascript...........................................................................................................................23
IV. La mise en forme..........................................................................................................................24
1. Les feuilles de style....................................................................................................................24
1.1 Structuration d'une feuille de style......................................................................................24
1.2 Utilisation des feuilles de style...........................................................................................24
1.2.1 Disposition des éléments.............................................................................................25
1.2.2 Mise en forme du texte................................................................................................25
1.2.3 Les couleurs.................................................................................................................25
1.2.4 Les images...................................................................................................................26
1.2.5 Cohérence des feuilles de styles..................................................................................26
1.3 Les feuilles de styles particulières.......................................................................................26
1.3.1 La feuille standard.......................................................................................................26
1.3.2 La feuille d'impression................................................................................................26
1.3.3 Le mode texte..............................................................................................................27
1.3.4 Les autres feuilles de style...........................................................................................27
2. Les autres outils de mise en forme.............................................................................................28
2.1 Javascript.............................................................................................................................28
2.2 Flash....................................................................................................................................28
V. Tester l'accessibilité d'un site.........................................................................................................29
1. Les validateurs en ligne.............................................................................................................29
2. La validation manuelle...............................................................................................................29
2.1 Tester avec différents navigateurs.......................................................................................29
2.2 Examen du code source.......................................................................................................29
2.3 Utilisation de navigateurs en mode texte............................................................................30
2.4 Un outil très pratique : Firefox............................................................................................30
4
2.5 Validation par les utilisateurs..............................................................................................30
VI. Ressources....................................................................................................................................32
Sites internets.................................................................................................................................32
HTML.......................................................................................................................................32
CSS............................................................................................................................................32
Mathématiques..........................................................................................................................32
Javascript...................................................................................................................................32
JAVA........................................................................................................................................32
Législation.................................................................................................................................32
Bibliographie.................................................................................................................................34
5
Introduction
Objectifs du document
Le présent document a pour objectifs d'offrir au lecteur un aperçu général des contraintes à
respecter afin de réaliser un site ou une page internet accessible1, et de proposer une méthodologie
de conception lui permettant d'arriver à ses fins sans trop de problèmes.
Ce document n'a pas pour objectif d'expliquer exhaustivement le fonctionnement des langages
HTML, XHTML ou CSS, mais de préciser leur utilisation du point de vue de l'accessibilité.
L'ensemble des contraintes définies par la WAI2 n'est à ce jour pas totalement traité, nous
invitons le lecteur à se renseigner pour plus de détails (voir dernière partie " Ressources ").
De même, certaines contraintes ne font pas directement partie des recommandations de la
WAI, mais sont néanmoins présentées dans ce document.
Public visé
Ce document s'adresse avant tout aux concepteurs de site internet et aux webmestres.
Cependant, il peut être également utile au chef de projet dans le cas d'audits de sites ou de
conduite de projets web, notamment cette introduction et les parties I, II, V et VI (respectivement
première et deuxième phases, tester un site, ressources).
1 Voir plus bas " Définition de l'accessibilité d'un site internet "
2 Web Accessibility Initiative : branche du W3C chargée de l'accessibilité pour Internet
3 La WAI définit l'accessibilité ainsi : " Mettre le Web et ses services à la disposition de tous les individus, quel que
soit leur matériel ou logiciel, leur infrastructure réseau, leur langue maternelle, leur culture, leur localisation
géographique, ou leurs aptitudes physiques ou mentales. "
6
– Elle se rend indépendante des différents systèmes d'exploitation.
On remarquera qu'avec cette définition, les documents proposés en téléchargement doivent
également être accessibles.
Toutefois, il est devenu quasiment impossible de respecter cette définition dans le cadre des
navigateurs web : en effet, il est souvent nécessaire d'utiliser une version relativement récente afin
de profiter de l'ensemble des fonctionnalités de la page. Il conviendra donc de choisir dès le départ
les versions minimales des navigateurs nécessaires au bon fonctionnement du site.
Organisation du document
Ce document méthodologique comporte différentes parties pouvant être considérées
indépendantes les unes des autres, même si la logique voudrait que le lecteur respecte l'ordre des
chapitres.
Chaque chapitre représente une des phases du développement d'un site web, de la conception
à la réalisation. Certaines de ces phases peuvent être réalisées en parallèle, et/ou indépendamment
des autres phases.
Comme pour l'accessibilité en général, la majeure partie des observations fait appel au bon
sens et à la logique, et ne présente pas de difficultés particulières de compréhension. La mise en
pratique en revanche requière une bonne connaissance de ces observations, la complexité résidant
dans leur application conjointe et exhaustive.
7
I. Phase préliminaire
Une des tâches les plus importantes est de commencer le projet dès le départ sur des bases
saines, avec une idée claire du but à atteindre, du public visé, de l'existant, etc.
On peut se demander en quoi l'accessibilité a à voir avec cela.
Fréquemment, lorsque ce travail n'est pas réalisé, il faudra revenir sur ce qui a été fait, et en
général ce genre d'opération est fait dans l'urgence au détriment de l'accessibilité. De plus, il est
probable que l'existant ne soit pas accessible, ce qui va contraindre le concepteur à reprendre le
projet du début.
De plus, l'accessibilité n'est pas une surcouche que l'on ajoute à un site une fois celuici
terminé, mais fait partie intégrante de l'ossature de ce site : on risque donc, si on n'y prend garde
dès le début, de devoir tout recommencer (au mieux) ou d'abandonner nos bonnes résolutions
devant l'ampleur du travail à refaire.
Autant éviter ce genre de mauvaise surprise.
1. Identifier le contexte
Le contexte est probablement l'aspect le plus négligé dans les projets web.
Il faudra essentiellement :
– identifier les acteurs du projet, dont le public visé. Il sera important de définir à quel public est
destiné le site, et l'importance de ce site pour ce public, ce qui peut se révéler précieux dans la
gestion des handicaps et la définition des objectifs d'accessibilité;
– rechercher l'existence d'une charte graphique, qu'on veillera à faire corriger si nécessaire et
valider;
– vérifier l'accessibilité des autres pages web si on poursuit ou étend un projet existant.
4 Comme la " LOI n° 2005102 du 11 février 2005 pour l'égalité des droits et des chances, la participation et la
citoyenneté des personnes handicapées " en France.
8
qui concerne la fonction publique, il a été retenu un niveau d'accessibilité proche du niveau AA5 de
la WAI, ce qui d'ailleurs n'est pas suffisant à notre sens. On remarquera notamment que le terme
" accessibilité d'un site internet " n'a pas été définit précisément dans la loi et le décret associé6.
5 La WAI a définit trois niveaux d'accessibilité, noté A, AA et AAA, regroupant chacun un ensemble de critères de
plus en plus exhaustifs en matière d'accessibilité.
6 On reprend cependant la définition de la WAI dans le Référentiel accessibilité des services Internet de
l’administration française.
9
II. Phase d'analyse
1. Collecter, préparer et organiser les ressources
Cette phase permet de percevoir l'organisation physique du site (hiérarchie des répertoires,
répertoires dédiés (images, feuilles de styles). Une structure claire sera en générale plus facilement
maintenable.
On veillera à ne pas proposer un document au format propriétaire (Office, Works, etc.), ainsi
que les formats présentant le texte sous forme d'images (comme Acrobat Reader par exemple). On
préférera par exemple le format RTF.
De même, certaines ressources risquent de poser de gros problèmes d'accessibilité. Plus
particulièrement, on se méfiera des applets java et des applications flash (voir plus bas les
paragraphes correspondants).
10
III. Gestion du contenu
1. Quel langage utiliser?
Le langage utilisé pour réaliser des pages web est le HTML (HyperText Markup Language). Il
en existe plusieurs version dont la dernière est la version 4.01. Par la suite, on parle de XHTML
(Extensible HyperText Markup Language) actuellement à la version 1.1.
HTML est un langage très permissif, ou du moins que les navigateurs ont rendu ainsi :
beaucoup d'erreurs de syntaxe sont ignorées. XHTML, très proche pourtant du HTML, ne tolère
aucune erreur de syntaxe. Ce langage a été crée afin de préparer les développeurs à XML.
Nous recommandons fortement l'utilisation de XHTML, dont la rigueur va nous aider à mieux
gérer notre contenu.
D'autres langages peuvent également être utilisés, sous forme de mini application (applets
java, flash, activeX) ou script (javascript, vbscript) : il faut se méfier de ces possibilités qui bien
souvent vont créer des problèmes d'accessibilité. Nous y reviendrons plus bas.
Quoiqu'il en soit, on précisera toujours la norme choisie dès la première ligne du code source
par une déclaration du type :
<!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Strict//EN" "xhtml1strict.dtd">
2. Structuration du contenu
2.1. Pourquoi structurer le contenu?
Un contenu structuré correctement est la clé même de la réussite d'un site accessible. La
structuration doit être le reflet de l'organisation logique de ce que l'on souhaite présenter, et doit
permettre à elle seule de comprendre cette organisation. De nombreux outils d'accessibilité,
comme les navigateurs en mode texte ou les synthèses vocales, ne prennent pas en compte les
éléments de mise en forme.
Ainsi, sans mise en forme, le contenu doit néanmoins être présenté de manière logique.
11
l'intérieur d'un bloc, afin de mettre en exergue une partie du contenu, alors que la balise div servira
à identifier les grandes sousparties d'une page.
On préférera l'utilisation de div plutôt que de frame, cette dernière balise n'étant pas pratique
en matière d'accessibilité.
De même, chaque souspartie étant normalement unique, on précisera à l'aide d'un sélecteur
(id) le type de div utilisé.
<div id="bandeau">
<p>
mon paragraphe
<span>texte particulier</span>
</p>
</div>
2.2.4 Le paragraphe
La balise de paragraphe p est à employer systématiquement dès qu'on a affaire à un
paragraphe de texte. Cette balise peut également servir pour la présentation d'illustration (image au
centre de la page par exemple), les légendes, les notes, etc...
On lui associera souvent une classe ou un rôle particulier :
<p>Voici mon paragraphe ...... fin du paragraphe</p>
<p class="illustration">
12
<img src="mon image" alt="texte alternatif pour l'image" />
Textelégende de l'image
</p>
<p class="note">Une note de bas de page</p>
– Si un élément est d'une grande importance, lui affecter une clef d'accès (voir accesskey).
– Utiliser la balise label plutôt que du texte brut.
– Donner un nom (name) et un identifiant unique (id) à chaque contrôle .
– Associer un contrôle et son label de manière explicite en utilisant les identificateurs (id) et
l'attribut for pour le label.
– Regrouper les éléments structurels, soit à l'aide de la balise fieldset et décrire la souspartie
du formulaire ainsi crée avec la balise legend, soit avec la balise optgroup dans le cas
d'une liste d'option.
– Afin de faciliter la compréhension, donner chaque fois que cela est possible une valeur par
défaut au contrôle, ou un exemple de saisie à l'aide de l'attribut value.
– S'assurer que le formulaire fonctionne même si javascript est désactivé. Dans le cas
contraire, et si il n'est pas possible de faire autrement, prévoir un autre formulaire
accessible.
13
2.2.6 Les tableaux
L'utilisation des tableaux est actuellement très fréquentes sur les sites internet.
Malheureusement, dans 95% des cas, c'est à des fins de mise en page et non de présentation de
données.
Les tableaux ne doivent en aucun cas servir à la mise en page.
Ce sont des éléments de structuration servant à l'organisation de données sous forme tabulaire,
et qui ne sont pas destinés à un rôle autre que celui là.
Une mauvaise utilisation des tableaux conduit toujours à une page inaccessible, puisque le
contenu n'est pas présenté à l'aide d'éléments de structuration, mais de manière graphique sans
tenir compte des ensembles ou des regroupement de données.
Voir l'excellent l'article " En quoi la mise en page par tableaux estelle stupide " à l'adresse
http://www.cybercodeur.net/weblog/presentations/seybold/index.html .
L'utilisation d'un tableau impose de respecter les règles suivantes :
– Ne pas se servir d'un tableau pour faire de la mise en page. D'autres outils sont faits pour
ça, notamment les feuilles de styles associées aux éléments de structuration.
– Donner des informations sur le contenu du tableau. On utilisera l'attribut summary pour
expliquer ce que contient le tableau, et la balise caption pour lui donner un titre.
– Chaque colonne et/ou chaque ligne doit commencer par une description du contenu de la
colonne et/ou de la ligne. Utiliser pour cela la balise th (table head). La balise td (table
data) sera elle réservée au données.
– Faciliter la lecture du tableau en précisant le sens de lecture. On utilisera l'attribut scope,
ou on aura recours aux identifiants id et à l'attribut axis dans les cas les plus compliqués.
Exemple d'un tableau bien réalisé (on n'utilise pas d'identifiant dans cet exemple) :
<table summary="Ce tableau donne la moyenne de chaque groupe dans chacune des
matières enseignées en premier cycle">
<caption>Résultats du premier semestre</caption>
<tr>
14
<th scope="col">Groupe</th>
<th scope="col" abbr="maths">Mathématiques</th>
<th scope="col">Physique</th>
<th scope="col">Chimie</th>
<th scope="col" abbr="cc">Culture et communication</th>
</tr>
<tr>
<td>1</td>
<td>10</td>
<td>12</td>
<td>10</td>
<td>14</td>
</tr>
<tr>
<td>2</td>
<td>11</td>
<td>13</td>
<td>10</td>
<td>12</td>
</tr>
<tr>
<th scope="row">Moyenne</th>
<td axis="moyenne">10,5</td>
<td axis="moyenne">11</td>
<td axis="moyenne">10</td>
<td axis="moyenne">13</td>
</tr>
</table>
Voici le résultat avec un navigateur web graphique :
15
Résultats du premier semestre
G Mathém Ph C Culture et
roupe atiques ysique himie communication
1
1 10 12 14
0
1
2 11 13 12
0
M 1
10,5 11 13
oyenne 0
Voici le résultat avec un navigateur web texte (lynx 2.8.5):
CAPTION: Résultats du premier semestre
Et voici ce qu'une synthèse vocale annonce (jaws 4.52 avec internet explorer, comportement
par défaut) :
Tableau avec 5 colonnes et 4 rangées
Sommaire : Ce tableau donne la moyenne de chaque groupe dans chacune des
matières enseignées en premier cycle.
Résultats du premier semestre.
Groupe, mathématique, physique, chimie, culture et communication.
1; 10; 12; 10; 14.
2; 11; 13; 10; 12.
Moyenne; 10,5; 11; 10; 13.
Fin du tableau.
Il est important de préciser qu'une synthèse vocale peut souvent être configurée afin de
prendre en compte tous les éléments d'accessibilité.
16
2.3 Organisation des blocs de structure
Les clefs d'accès sont des attributs permettant d'atteindre à l'aide d'un raccourci clavier
spécifié par le développeur une partie choisie de la page. Ce sont des éléments appréciés par les
utilisateurs de synthèse vocale ou de navigateurs texte car ils leur font gagner un temps précieux
dans la navigation et leur évite de se perdre sur une page.
Les clefs d'accès s'utilisent surtout avec les éléments de type ancre (liens) et les formulaires.
On veillera à bien choisir les raccourci afin de ne pas entrer en conflit avec d'autres raccourcis
existants7.
Suivant les navigateurs, les accès ne se font pas grâce à la même combinaison de touche. En
général, on utilise les combinaisons ALT + clef (Mozilla, firefox, opéra sous windows), ALT +
clef + ENTER (IE sous windows) ou CTRL + clef (Mozilla, FirefoX, IE sous MAC).
Il sera parfois nécessaire de créer une ancre afin d'accéder à une partie du site, si celleci ne
commence pas ellemême par un lien.
Exemple d'utilisation :
<div id="menuAccueil">
<ul>
<li><a href="rubtique1.html" accesskey="m"> rubrique1</a></li>
<li><a href="rubrique2.html">rubrique 2</a></li>
etc....
</ul>
</div>
<div id="Contenu de la page">
<a id="menu" accesskey="m"></a>
<h1>Bienvenue ....
....etc
7 Voir à ce sujet la page http://www.wats.ca/resources/accesskeysandkeystrokes/38 du WATS (http://www.wats.ca/)
17
Le menu caché est un bon moyen de cibler le type d'information dispensé en fonction des
configurations. Ce menu, rendu uniquement visible par les utilisateurs de synthèses vocales ou de
navigateurs texte grâce aux feuilles de style (propriété display: none), va permettre d'indiquer
quelles clefs d'accès sont associées aux différentes parties de la page.
On le place logiquement dès les premières lignes de la balise body (voir la partie
"enchaînement des blocs".
Afin nommer chaque partie du site, on peut également introduire un cours paragraphe au
début de chaque souspartie pour en décrire rapidement le rôle et/ou le contenu.
Exemple avec l'organisation précédente :
<div class="cache">
<a id="racourcis" accesskey="r"></a>
<p>Accès rapide aux différentes parties de la page:</p>
<ul>
<li>Raccourcis clavier: alt+r</li>
<li>Menu principal: alt+m</li>
<li>Contenu de la page :alt+c</li>
</ul>
</div>
Et dans la feuille css :
.cache{display: none;}
Afin de s'assurer une bonne navigation tabulaire, il est possible d'indiquer dans quel ordre les
éléments de la pages doivent être parcourus.
On utilise alors l'attribut tabindex suivi du numéro d'ordre dans la navigation. Cet attribut
peut être utilisé avec pratiquement n'importe quelle balise. Il faut néanmoins se méfier de son
utilisation généralisée, les contenus devenant difficiles à maintenir.
On ne s'en servira donc qu'en cas de besoin particulier, là où la navigation par défaut (voir
"enchaînement des blocs") peut poser problème.
Exemple d'utilisation : voir l'exemple du formulaire.
18
apparaître ce qu'on considère comme le plus important au début et ce qui est de moindre
importance à la fin.
En général, on commencera par le menu cache, ce qui permettra aux utilisateurs d'aller
directement à l'endroit souhaité sur la page, sans passer par les autres blocs (très pratique lorsqu'on
utilise une synthèse vocale.
Pour la suite, suivant les intentions du développeur, on peut commencer soit directement par
le contenu, soit par les menus. C'est uniquement une question de bon sens.
Attention : cette organisation du code source de la page ne devrait pas en principe affecter la
présentation de cette page dans un navigateur graphique, puisque nous utilisons un outil de mise
en page indépendant de la structure du document (voir le chapitre "mise en page").
Quoiqu'il en soit, cette structure du code sera présentée telle quelle avec un navigateur en
mode texte.
3. Le contenu
Bien que la structuration du contenu soit une clef essentielle dans la réalisation d'un site
accessible, ce contenu doit être traité de manière correcte afin d'être apprécié par tous.
Le contenu n'est pas uniquement ce qu'on lis à l'écran, il est présent dans d'autres parties
moins visibles, à première vue. Nous en détaillons ici l'essentiel.
19
– jeu de caractère utilisé : les jeux de caractères étant divers et variés suivant les systèmes
d'exploitation et les langues, ce paramètre permettra d'indiquer au navigateur celui qu'il
doit utiliser pour présenter correctement la page. On en profitera pour préciser le type de
contenu à afficher.
<meta httpequiv="ContentType" content="text/html; charset=iso88591" />
– titre de la page : c'est ce qui apparaît en général dans les favoris, et comme titre de la
fenêtre dans les navigateurs web graphiques.
<title>Le titre de ma page</title>
– déclaration des feuilles de style. Il peut y avoir plusieurs déclarations de feuilles de style.
Voir le chapitre "mise en forme" pour plus de détails sur les feuilles de style.
<link rel="stylesheet" type="text/css" href="adresseDeMaFeuille1.css" />
– résumé, description et détails sur le contenu de la page avec la balise meta : cette balise
possède de nombreux attributs. Le plus important en matière d'accessibilité est l'attribut
httpequiv valant description qui doit donner un aperçu du contenu de la page.
<meta httpequiv="description" content="Description rapide de la page" />
3.2 Le texte
Le texte est probablement l'élément le plus important quand on parle de contenu, puisque c'est
le seul qui reste naturellement accessible quelle que soit la configuration utilisée. En général, c'est
par le texte que la majeure partie de l'information est véhiculée.
Il s'agira donc de veiller à le présenter et à le structurer correctement afin de garantir une
bonne accessibilité de la page.
De même, afin de faciliter la compréhension des outils de description d'écran, notamment les
synthèses vocales, il est important d'éviter les coquilles, les fautes d'orthographe ou de grammaire,
ces dernières pouvant rendre incompréhensible une partie du contenu.
Nous donnerons également, outre les recommandations concernant le texte luimême, certains
conseils généraux qui faciliteront l'accessibilité des textes présentés.
20
3.2.2 Jeu de caractères et paramètres linguistiques
Nous avons vu dans le paragraphe sur les entêtes qu'il fallait impérativement préciser le jeu de
caractère utilisé dans le document, et comment procéder.
Nous allons ajouter une règle supplémentaire en demandant d'identifier la langue dans
laquelle la page est écrite.
Nous utiliserons pour cela un attribut de la balise html, qui dépend du langage de
programmation choisi :
<html xml:lang="fr"> pour xhtml
<html lang="fr"> pour html
Il est fréquent qu'une partie du texte ne soit pas dans la langue de la page. Dans ce cas, on
utilisera l'attribut lang de la balise de texte pour indiquer le changement temporaire de langue dans
le contenu.
Exemple :
Comme dit le proverbe, chi va piano va sano.
Se traduira en html :
<p>Comme dit le proverbe : <i lang="it">Chi va piano va sano</i></p>
21
Exemples :
<h4><b>Mon titre</b></h4>
Non! On utilise la balise b à des fins de mise en forme et non de mise en valeur du texte.
<b>Mon titre</b>
Non! Un titre doit être déclaré à l'aide des balises h1, h2 etc....
<h4>Mon titre</h4>
Et dans la feuille de style :
h4{
fontweight: bold;
}
Oui! On gère la mise en forme dans la feuille de style, et le titre est identifié
correctement.
De la même manière, on évitera les définitions de style à l'intérieur des balises de texte, ou
tout autre stratagème du même genre aboutissant à associer le contenu et la mise en forme
autrement que par les feuilles de style (déclaration de font dans le code html, changement des
tailles de police, de couleur, etc.).
22
acronym et abbr chaque fois que l'occasion se présente.
Dans le cas d'une abréviation ou d'un acronyme d'une langue différente de celle du site, on
précisera cette langue à l'aide de l'attribut lang de ces balises.
Exemple :
Le site de la DSI de l'INSA doit être accessible asap comme le préconise les
recommandations de la WAI.
<p>
Le site de la <acronym title="Direction des Services Informatique">DSI
</acronym> de l'<acronym title="Institut National des Sciences Appliquées">INSA
</acronym>doit être accessible <abbr lang="en" title="As Soon As
Possible">ASAP</abbr> comme le préconise les recommandations de la <acronym
lang="en" title="World Accessibility Initiative">WAI</acronym>.
</p>
On pourra considérer qu'il n'est nécessaire d'expliciter un même acronyme ou une même
abréviation qu'une seule fois par page, mais rien n'empêche de le faire systématiquement, bien au
contraire.
23
<p>Visitez le <a href="siteINSA.html" title="Site de l'Institut National des Sciences
Appliquées">site de l'INSA de Lyon</a> pour plus d'informations.</p>
Oui! Le contenu du lien est clair et en plus on précise à l'aide de l'attribut title l'acronyme
et le contenu du site cible.
24
<p><img src="planINSA.png" alt = "plan pour se rendre à l'INSA" title="plan de
l'INSA" longdesc= "seRendreAINSA.html" /></p>
Attention : influencés par le mauvais comportement de certains navigateurs, on utilise parfois
à tort l'attribut alt afin d'afficher une infobulle au passage de la souris sur l'image. C'est le rôle de
l'attribut title et non celui de l'attribut alt.
25
3.6 Le contenu audio-visuel
Il est possible de mettre à disposition des internautes des ressources multimédia, soit en
téléchargement, soit directement comme contenu d'une page internet. Afin de rendre ces
ressources accessibles le mieux possible à l'ensemble des utilisateurs, il conviendra de respecter
les règles suivantes :
3.6.1 La vidéo
Une vidéo est un fichier multimédia encodé d'une certaine manière, qui nécessite un codec
afin d'être lisible. Le choix de cet encodage est très important, puisqu'il existe un certain nombre
de codecs propriétaires qui nécessitent parfois l'installation de logiciels spécifiques pour
fonctionner.
Comme pour les fichiers, on s'efforcera de n'utiliser que des codecs ouverts, fonctionnant sur
toutes les plateformes.
Outre ce qui précède, et qui n'est pas suffisant, il y a plusieurs moyens de rendre accessible
une vidéo. Certains formats de vidéo, et/ou certains logiciels permettent d'ajouter des fichiers de
soustitrage aux vidéos, ou d'inclure de manière optionnelle ces soustitres. Le soustitrage permet
aux personnes nonentendantes, ou aux utilisateurs ne disposant pas de matériel de restitution
audio de bénéficier néanmoins du contenu de la vidéo.
Au contraire, l'audiotranscription permet aux utilisateurs nonvoyants de mieux appréhender
ce contenu. L'audiotranscription est une bande sonore supplémentaire qui décrit la vidéo en
complément des dialogues. Certains formats de vidéo permettent d'enregistrer plusieurs bandes
sonores sur un même fichier.
Dans le pire des cas, si il n'est pas possible de réaliser un soustitrage et une
audiotranscription, on veillera à décrire textuellement le contenu de cette vidéo.
La taille des fichiers vidéos peutêtre importante, il faudra dans ce cas proposer plusieurs
versions de tailles moindre, en réduisant la qualité d'image et de son par exemple.
On évitera également d'incorporer les vidéos au contenu de la page avec des outils non
accessibles, comme flash par exemple.
3.6.2 Le son
Comme pour la vidéo, il s'agira d'utiliser un format audio ouvert.
Les recommandations en matière de taille et d'utilisation sont les mêmes que pour la vidéo. Il
faudra donc prévoir une transcription sous forme de texte du fichier son, si cela est réalisable
(paroles, discours, etc.).
Dans le cas particulier du fond musical sur une page, on précisera qu'un fichier est utilisé de
cette manière, et on proposera si nécessaire une transcription textuelle de ce fichier.
26
3.7 Les expressions mathématiques et scientifiques
Actuellement, la plupart des expressions mathématiques et scientifiques utilisées sur le net
sont représentées sous forme d'images (bien qu'il existe une surcouche de XML, MathMl,
permettant cette représentation, mais elle n'est qu'encore très peu utilisée). Il convient donc de leur
donner un texte alternatif permettant à tous d'en comprendre le sens.
Cependant, pour les utilisateurs de plages braille, ce procédé risque de ne pas être satisfaisant,
puisque le braille mathématique est un langage particulier et linéaire.
Une solution afin de rendre notre site réellement accessible serait donc de commenter ces
images par la transcription de l'expression en braille mathématique.
Fort heureusement, il existe un logiciel libre qui permet de réaliser cela pour les
mathématiques françaises :BraMaNet8.
C'est un traducteur d'expressions mathématique en braille. Il ne fonctionnera qu'avec les
normes françaises, puisque le braille mathématique diffère suivant la langue.
Pour plus de détails sur ce point précis et des renseignements sur la marche à suivre, consulter
le site de la mission handicap de Lyon 1 : http://handy.univlyon1.fr
Il existe un logiciel, Braille Music Editor, qui permet d'effectuer cette transcription.
Malheureusement, ce logiciel est vendu sous licence, et les projets libres n'en sont qu'à leurs
débuts.
3.10 Flash
Flash n'est tout simplement pas accessible dans de nombreuses configurations!
De plus, c'est un format propriétaire, pas très sécurisé, qui sert essentiellement à faire de la
mise en forme tout en mélangeant contenu et présentation.
Nous déconseillons fortement l'utilisation de ce genre de produits, d'autant que les feuilles de
styles permettent la plupart du temps de s'en passer.
Si toutefois il est indispensable d'utiliser Flash, prévoyez une alternative accessible.
8 BRAille MAthématique pour interNET :http://handy.univlyon1.fr/projets/bramanet/
27
3.11 Javascript
Javascript ne devrait être utilisé qu'en dernier recours, et uniquement pour de la mise en forme
(mise en relief sur passage souris), en aucun cas du contenu (formulaire de connexion par
exemple).
Comme flash, cette technique n'est en effet pas accessible.
On veillera à ce que le site fonctionne même si javascript est désactivé.
28
IV. La mise en forme
1. Les feuilles de style
Les feuilles de style, ou CSS (Cascading Style Sheets), sont des fichiers destinés à mettre en
forme les documents HTML. On les déclare dans l'entête du document concerné de cette manière :
<link rel="stylesheet" type="text/css" href="adresseDeMaFeuille1.css" />
Cet outil est très puissant, car il permet de dissocier le contenu du document de sa mise en
forme. De plus, une feuille de style peut être réutilisée autant de fois que nécessaire, sans avoir à
être récrite. Un seul fichier css peut servir à une infinité de pages HTML, ce qui rend très facile la
maintenance de la mise en forme de l'ensemble des pages d'un site par exemple (il suffira de
modifier la feuille de style pour modifier automatiquement l'aspect de l'ensemble des pages
l'utilisant).
Une feuille de style sera d'autant plus efficace qu'elle mettra en forme un contenu bien
structuré et déjà accessible (voir le chapitre précédant).
Il est possible d'utiliser plusieurs feuilles de style pour un même document HTML. Dans le
cas de sites complexes, on peut ainsi gérer séparément la mise en forme des liens, des structures,
des images, etc.
Certaines feuilles de style peuvent être dédiée à un certain type d'affichage (impression,
affichage à l'écran, présentation projetée, etc.). On peut donc aménager le contenu suivant
l'utilisation qu'il en sera faite.
29
d'autant plus important de les respecter qu'une erreur de conception risque de se répéter un grand
nombre de fois, puisqu'elle sera activée chaque fois que l'élément qu'elle décrit sera utilisé.
Il est également possible de décrire un style à l'intérieur du document HTML :cette méthode
ne devrait pas être utilisée, car elle ne permet pas toujours de désactiver le style. On spécifiera
donc chaque style à l'intérieur d'une feuille de style liée, et non directement dans un document
HTML.
De plus, un contenu HTML doit tojours être compréhensible même si l'on désactive ses
feuilles de styles associées.
Voici quelques recommandations essentielles pour bien utiliser une feuille de style :
Les propriétés firtsletter ou firstline peuvent également servir à réaliser des effets de lettrine
ou de mise en emphase. Cependant, ce genre de mise en forme risque de ne pas être perceptible
30
par tout les utilisateurs.
31
Nous expliquerons dans ce qui suit comment mettre en pratique cette possibilité.
Voici quelques éléments de programmation css utiles lors de la réalisation d'une feuille de
style d'impression :
– pour spécifier une orientation Portrait, utilisez la règle :
@page { size: portrait; } ;
– pour spécifier une orientation Paysage, utilisez la règle :
@page { size: landscape; } ;
– pour spécifier la taille des marges (ici, 3cm), utilisez la règle :
@page { margin: 3cm; } ;
Il sera bien entendu possible de spécifier différemment les marges de gauche, droite,
haut et bas en précisant marginleft, marginright, etc.
– Il est également possible de préciser l'orientation d'un élément en particulier :
@page paysage {size: landscape} ; //déclaration
div {page: paysage} img {page: paysage} ; //utilisation
– Pour ne pas imprimer un élément :
div{display: none;}
– pour empêcher qu'un élément soit imprimé sur deux pages :
img{pagebreakinside: avoid;}
32
– pour forcer un saut de page avant un élément :
table{pagebreakbefore: always;}
pour forcer un saut de page après un élément :
table{pagebreakafter: always;}
(Attention néanmoins au coût en papier qque peuvent engendrer de telles propriétés).
– pour afficher les adresses des liens :
a:after { content: " (" attr(href) ") "; }
L'adresse du lien sera écrite entre parenthèses à la suite de ce lien.
Pour plus de détails quant à l'utilisation de ces propriétés, consulter les liens donnés à la fin du
document.
2.2 Flash
Voir plus haut
33
V. Tester l'accessibilité d'un site
1. Les validateurs en ligne
Bien qu'efficaces pour se donner une première impression sur la qualité d'une page en matière
d'accessibilité, les validateurs ne sont que des outils d'aide à la décision, et leur diagnostics doit
être systématiquement vérifiés.
S'ils sont performants en ce qui concerne le respect des normes de programmation en HTML,
ils présentent certaines faiblesses dès qu'on les utilise pour vérifier les critères d'accessibilité; d'une
part, car certains de ces critères ne sont pas vérifiables automatiquement (utilisation des couleurs,
structuration, etc.); d'autre part, car certains critères peuvent sembler respectés en apparence, mais
ne le sont pas en réalité (commentaires d'images non pertinents ou vide, tableaux mal conçus, etc.).
Voici une présentation comparée de certains de ces validateurs :
http://www.cynthiasays.com/
http://webxact.watchfire.com/
http://validator.w3.org/
http://jigsaw.w3.org/cssvalidator/
2. La validation manuelle
La validation manuelle reste la seule validation efficace à 100%, bien qu'une validation
automatique permette en général d'identifier les principales erreurs ou dysfonctionnements.
Elle consiste en la vérification des recommandations présentées dans ce document, et peut
s'appuyer en complément sur les recommandations du W3C et de la WAI.
Nous présentons également quelques propositions permettant de réaliser un travail de test
exhaustif.
34
signaler que ce ne seront pas les mauvais navigateurs qui souffriront le plus de cette philosophie,
mais bien les utilisateurs. Un point de vue louable mais difficile à appliquer...
9 Site officiel de lynx :http://lynx.isc.org/ et documentation en français :http://www.dg77.net/tekno/lynx/index.htm
10 Version française de Firefox téléchargeable sur http://www.mozillaeurope.org/fr/products/firefox/
11 Version française de WebDeveloper téléchargeable sur http://joliclic.free.fr/mozilla/webdeveloper/
12 Version anglaise de HTML Validator téléchargeable sur http://users.skynet.be/mgueury/mozilla/
35
C'est donc un outil fort pratique d'aide au diagnostic.
L'extension WebDeveloper permet par exemple de désactiver la plupart des catégories
d'éléments sur une page, ce qui permet de vérifier si celleci demeure accessible sans images,
feuilles de style, javascript, etc.
36
VI. Ressources
Sites internets
HTML
Structuration :
http://css.alsacreations.com/Basesetindispensables/Lastructuredesbalisesbloceten
ligne
Tableaux : un tutoriel ludique mais sérieux sur le rôle et l'utilisation des tableaux
http://www.cybercodeur.net/weblog/presentations/seybold/index.html
Listes : site de djidjo + le mien
w3c/wai : technical tips for html
CSS
w3c/wai :
technical tips for css
Exemples d'utilisation des css : The beauty in css design, css zengarden
http://www.csszengarden.com/
Mathématiques
Le site de BraMaNet (traducteur de maths en Braille) à la mission handicap de lyon 1 :
http://handy.univlyon1.fr/projets/bramanet/
Exemple de site à contenu scientifique : exercices de mathématiques (niveau terminale) sur
le site de l'association des professeurs de mathématiques de l'enseignement public :
http://www.apmep.asso.fr/roc/index.html
Javascript
JAVA
Accessibilité de java :
http://trace.wisc.edu/world/java/java.htm
Les critères IBM pour l'accessibilité et leur page sur l'accessibilité de java :
http://www306.ibm.com/able/guidelines/java/accessjava.html
37
Une API java accessible : Sur le site de sun
http://research.sun.com/access/
Législation
Texte et commentaire de la loi n° 2005102 du 11 février 2005 pour l'égalité des droits et
des chances, la participation et la citoyenneté des personnes handicapées :
http://www.handicap.gouv.fr/point_presse/doss_pr/loi_egalite/sommaire.htm
http://www.adae.gouv.fr/article.php3?id_article=246
38
Bibliographie
39