Sommaire | Précédent | Suivant
L’idée de cette 4ème partie est de produire un fichier .csv du nouveau référentiel à partir du site officiel.
Ce fichier .csv sera utilisé pour générer le nouveau référentiel dans Asqatasun via le plugin maven dédié.
La source : le site officiel du RGAA
Il nous faut extraire des donnés (les mots suivants seront parfois utilisés comme synonymes : parser / scrapper) à partir de la liste des critères et des tests du RGAA 3 2016 disponible sur le site officiel du référentiel.
Données à extraire
- Pour chaque critère :
- ID du critère
- niveau (A, AA ou AAA)
- HTML du descriptif sans l’ID, le niveau, les tests et les infos complémentaires.
- Pour chaque test :
- ID du test
- HTML du descriptif sans l’ID
Extraction des données
Plusieurs techniques sont possibles et plusieurs langages de programmation sont utilisables…
C’est un script PHP qui a été utilisé avec des objets DOMDocument
pour récupérer facilement,
du fichier HTML, les portions du DOM qui nous intéressent via des requêtes Xpath.
Ce script sera publié prochainement. En attendant, nous vous invitons à parcourir le dépôt Github contenant toutes les données extraites de cette nouvelle version du RGAA.
Détail technique du .csv
- encodage du fichier en UTF-16 (UTF-8, si séparateur de colonne moins exotique)
- une première ligne d’entête obligatoire
- utiliser un séparateur de colonne “exotique” [ ø ] pour éviter les soucis…
- texte entre simple quote [ ’ ]
Il faut donc échapper les simple quote [ ’ ] contenu dans le texte. Dans le cas du RGAA 3 2016, ce n’est pas nécessaire car aucun caractère [ ’ ] n’est utilisé. Si cela avait été le cas, il nous aurait suffit de doubler le caractère pour activer l’échappement.
Les textes pour les critères et les tests du référentiel
doivent être au format HTML pour conserver :
- les listes à puces,
- les liens vers le glossaire
- les balises
<code>
- les abréviations
- …
Chaque ligne du fichier CSV devant contenir le code HTML du test et du critère,
il faut minifier ce HTML pour qu’aucun saut de ligne ne soit présent.
Fichier CSV d’import pour le RGAA 3 2016
Le fichier CSV pour l’import du RGAA 3.2016
est disponible sur le dépôt GitHub.
Extrait du fichier .csv
themeøtheme_frøcritereøcritere-label_frøtestøtest-label_frølevelø 1ø'Images'ø1-1ø'Chaque image a-t-elle une <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#alternative-textuelle-image">alternative textuelle</a> ?'ø1-1-1ø'Chaque image (balise <code lang="en">img</code>) a-t-elle un attribut <code lang="en">alt</code> ?'øAø 1ø'Images'ø1-1ø'Chaque image a-t-elle une <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#alternative-textuelle-image">alternative textuelle</a> ?'ø1-1-2ø'Chaque <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#zone-dune-image-ractive">zone</a> (balise <code lang="en">area</code>) d’une <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#image-ractive">image réactive</a> a-t-elle un attribut <code lang="en">alt</code> ?'øAø 1ø'Images'ø1-1ø'Chaque image a-t-elle une <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#alternative-textuelle-image">alternative textuelle</a> ?'ø1-1-3ø'Chaque <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#bouton-formulaire">bouton</a> de formulaire (balise <code lang="en">input</code> avec l’attribut <code lang="en">type="image"</code>) a-t-il un attribut <code lang="en">alt</code> ?'øAø 1ø'Images'ø1-1ø'Chaque image a-t-elle une <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#alternative-textuelle-image">alternative textuelle</a> ?'ø1-1-4ø'Chaque <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#zone-cliquable">zone cliquable</a> d’une <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#image-ractive">image réactive</a> coté serveur est-t-elle doublée d’un lien dans la page ?'øAø 1ø'Images'ø1-2ø'Pour chaque <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#image-de-dcoration">image de décoration</a> ayant une <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#alternative-textuelle-image">alternative textuelle</a>, cette alternative est-elle vide ?'ø1-2-1ø'Chaque image (balise <code lang="en">img</code>) <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#image-de-dcoration">de décoration</a>, sans <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#lgende-dimage">légende</a>, et ayant un attribut <code lang="en">alt</code>, vérifie-t-elle ces conditions ? <ul><li>Le contenu de l’attribut <code lang="en">alt</code> est vide (<code lang="en">alt=""</code>) ;</li> <li>L’image de décoration ne possède pas d’attribut <code lang="en">title</code> ;</li> <li>La balise <code lang="en">img</code> est dépourvue de rôle, propriété ou état ARIA visant à labelliser l’image (<code lang="en">aria-label</code>, <code lang="en">aria-describedby</code>, <code lang="en">aria-labelledby</code> par exemple).</li> </ul>'øAø 1ø'Images'ø1-2ø'Pour chaque <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#image-de-dcoration">image de décoration</a> ayant une <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#alternative-textuelle-image">alternative textuelle</a>, cette alternative est-elle vide ?'ø1-2-2ø'Chaque <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#zone-non-cliquable">zone non cliquable</a> (balise <code lang="en">area</code> sans attribut <code lang="en">href</code>) <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#image-de-dcoration">de décoration</a>, et ayant un attribut <code lang="en">alt</code>, vérifie-t-elle ces conditions ? <ul><li>Le contenu de l’attribut <code lang="en">alt</code> est vide (<code lang="en">alt=""</code>) ;</li> <li>La zone non cliquable ne possède pas d’attribut <code lang="en">title</code> ;</li> <li>La balise <code lang="en">area</code> est dépourvue de rôle, propriété ou état ARIA visant à labelliser l’image (<code lang="en">aria-label</code>, <code lang="en">aria-describedby</code>, <code lang="en">aria-labelledby</code> par exemple).</li> </ul>'øAø 1ø'Images'ø1-2ø'Pour chaque <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#image-de-dcoration">image de décoration</a> ayant une <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#alternative-textuelle-image">alternative textuelle</a>, cette alternative est-elle vide ?'ø1-2-3ø'Chaque <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#image-objet">image objet</a> (balise <code lang="en">object</code> avec l’attribut <code lang="en">type="image/…"</code>) <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#image-de-dcoration">de décoration</a>, sans <a href="http://references.modernisation.gouv.fr/rgaa-accessibilite/glossaire.html#lgende-dimage">légende</a>, vérifie-t-elle ces conditions ? <ul><li>La balise <code lang="en">object</code> possède un attribut <code lang="en">aria-hidden="true"</code> ;</li> <li>L’alternative textuelle entre <code lang="en"><object></code> et <code lang="en"></object></code> est vide ;</li> <li>La balise <code lang="en">object</code> ou l’un de ses enfants est dépourvue de rôle, propriété ou état ARIA visant à labelliser l’image (<code lang="en">aria-label</code>, <code lang="en">aria-describedby</code>, <code lang="en">aria-labelledby</code> par exemple).</li> </ul>'øAø
Détails des colonnes du fichier
L’ordre des colonnes n’est pas important
par contre l’intitulé des entêtes est imposé.
- theme : ID du thème
- critere : ID du critère
- level : niveau du critère (A, AA ou AAA)
- test : ID du test
- theme_fr : intitulé en français du thème (“Images”)
- critere-label_fr : intitulé en français du critère au format HTML
- test-label_fr : intitulé en français du test au format HTML
La documentation sur la création d’un nouveau référentiel dans Asqatasun
détaille les intitulés de colonnes utilisables.
La cuisine vous est ouverte…
Cette série Coulisse est l’occasion de rendre public le processus d’ajout d’un référentiel « officiel » à Asqatasun à la fois pour le documenter et pour le rendre accessible à tous.
Vos retours, questions, remarques et contributions
sont les bienvenus et même fortement recommandés.
À venir…
- Coulisse 5) Générer le référentiel à partir du .csv via le plugin maven
- Coulisse 6) RGAA 3.0 vs 3.2016 : le changelog nous dit quoi faire