Implémentation des règles RGAA -
heriquet - 16/08/2013
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.7
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour,
Dans le cadre d'un développement de site, il m'est demandé de pouvoir sélectionner via un bouton un "mode" qui permettrait d'adapter le site et de fournir une version "améliorée" du template. Soit un simple affichage en noir sur blanc ou l'inverse. Ce sont semble-t-il des règles du
RGAA.
Je me tourne donc vers la communauté pour savoir si certains parmi vous ont déjà été confrontés à ce type de demande et comment ils ont solutionné la problématique (le choix de l'utilisateur devant être persisté).
Merci pour vos retours,
Heriquet
Implémentation des règles RGAA -
jce76350 - 16/08/2013
Voir aussi
http://references.modernisation.gouv.fr/rgaa-accessibilite.
Pourquoi ne pas faire le site complet conforme aux règles RGAA
Implémentation des règles RGAA -
bess - 16/08/2013
de tête je te dirais ceci :
dans ton gabarit tu fait un {if}{else}{/if} qui appel deux type de feuilles de style (N/B normal)
tu fait un bouton dans ton design qui appel tes pages avec un paramètre POST (ex : RGAA=true/false)
tu fait une UDT en haut de ton gabarit qui sera chargée de capter cette valeur et mettre un équivalent en session (session php j'entend)
ton if repose sur la condition de la valeur enregistrée dans ta session
Implémentation des règles RGAA -
jissey - 16/08/2013
Ben moi je dirais un js qui change quelques class bien ciblées lorsque l internaute clique.
Implémentation des règles RGAA -
bess - 16/08/2013
le Js ne permet pas de gérer la navigation du client sur plusieurs pages d'affilés sans recliquer
Implémentation des règles RGAA -
jissey - 16/08/2013
Avec une pointe d ajax : si
Implémentation des règles RGAA -
heriquet - 16/08/2013
Merci pour vos réponses !
jce76350 a écrit :Pourquoi ne pas faire le site complet conforme aux règles RGAA
La réponse est simple j'ai reçu un cahier des charges ainsi qu'une deadline très serrée et je dois m'y conformer
.
Pour l'implémentation, je pensais également à la session. Mon idée est de faire un petit module qui fournit d'une part le moyen de passer le site dans ce mode, et d'autre part qui appelle une CSS "en plus" quand le mode "accessibilité" est activé (histoire d'écraser certaines valeurs).
Ce module à mettre dans la forge serait une base pour de futures implémentations plus avancées mais pour commencer j'ai juste besoin du minimum demandé par mon client.
Implémentation des règles RGAA -
exacore - 17/08/2013
Salut,
Voici la solution que j'utilise (nécessite CGSimpleSmarty) :
Dans l'entête (avant <html>) :
Code :
[== Smarty ==]
{if !$smarty.session.theme}
{session_put var="theme" value="normal"|base64_encode}
{elseif $smarty.get.theme}
{if $smarty.get.theme|base64_decode == "light" OR $smarty.get.theme|base64_decode == "dark" OR $smarty.get.theme|base64_decode == "normal"}
{session_put var="theme" value=$smarty.get.theme|base64_decode}
{/if}
{redirect_url to=$gCms->config.root_url|cat:$smarty.get.redirect|base64_decode}
{/if}
Ca permet de récupérer le nom du thème à appliquer (ici : normal, light, dark) et ça le chiffre en base64 pour éviter que dans l'URL des p'tits malins tentent d'autres choses :-) Puis ça enregistre dans une session la valeur (donc valable tout le long de la navigation et ça redirige vers la page d'où la sélection a été faite.
Dans mon <body> :
Code :
[== HTML / SMarty ==]
<body class="{if $smarty.session.theme}theme-{$smarty.session.theme}{/if}">
Là j'applique la classe CSS du thème qui correspond.
Et ensuite dans mon CSS, je mets en œuvre les styles dans ce genre là :
Code :
[== CSS ==]
.theme-normal {
color : #666;
background : #F5F5F5;
}
.theme-dark {
color : white ;
background : black ;
}
.theme-light{
color : black;
background : white;
}