Forum CMS Made Simple FR
Implémentation des règles RGAA - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Général (https://forum.cmsmadesimple.fr/forum-10.html)
+--- Sujet : Implémentation des règles RGAA (/thread-2871.html)



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 Smile


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 Wink


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 Smile.

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;
}