Voir aussi
Dans la même rubrique :
Comment intégrer Snap Shots à Rapidweaver ?
Javascript : n’oubliez pas Mac OS !
Positionnement fixe... même avec Internet Explorer !
Quand JavaScript est désactivé... 2/2
Conseils pour débuter un site web
Menu dépliant pour les rubriques
Quand JavaScript est désactivé... 1/2
Contrôler l’accès d’une partie du site avec .htaccess
Réaliser un formulaire de contact (5/4)
Réaliser un formulaire de contact (4/4)
Réaliser un formulaire de contact (3/4)
Réaliser un formulaire de contact (2/4)
Réaliser un formulaire de contact (1/4)
Belles icônes pas chères !
Comment faire migrer son site ?
Webmasters : Comment mieux se référencer ?
La trousse du webmasterDu même auteur :
Reprendre un document Word
Les Centres de santé
Quiz en PHP 1/3
Quiz en PHP 2/3
Quiz en PHP 3/3
Comité Départemental d’Education pour la Santé des Yvelines
Les sites des Médecins Maîtres-Toile
Joindre un document à un article
Placer une image dans un article
Les raccourcis typographiques
Ecrire ou modifier un article
Présentation de l’espace rédacteurs
Conseils aux rédacteurs
Lire nos fichiers de syndication
Page contact en PHP 3/3
Syndication, comment s’y retrouver
Afficher plusieurs flux RSS/Atom sur une page
Lecture des caractères spéciaux et d’éléments d’un fil RSS/Atom
Accueil du nouveau rédacteur
Installer un script PHP pour les nuls
Page contact en PHP 1/3
Page contact en PHP 2/3
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIP
Editez vos flux avec Fil_LE 1/2
Editez vos flux avec Fil_LE 2/2
Editer plusieurs fichiers de syndication 1/3
Editer plusieurs fichiers de syndication 2/3
Editer plusieurs fichiers de syndication 3/3
Documentation sur SPIP
Abandonnons RSS 0.91 !
La syndication de contenu RSS
Ecrire ce qu’on veut dans SPIP
Utiliser les smileys
Joindre un logo à un article
Référencer un site
Création à distance d’un fichier de syndication
Lecteur RSS/Atom pour votre site 1/2
Lecteur RSS/Atom pour votre site 2/2
Afficher un fil RSS/Atom sur votre site 1/3
Afficher un fil RSS/Atom sur votre site 2/3
Afficher un fil RSS/Atom sur votre site 3/3
Un Editeur RSS pour votre site 1/2
Un Editeur RSS pour votre site 2/2
Un lecteur RSS pour votre site 1/2
Un lecteur RSS pour votre site 2/2
Menu de navigation sans JavaScript
Exécuter un Javascript dans une page SPIP
Astuce pour les images fréquemment utilisées
Gestion d’une rubrique... en attendant SPIP
Page Erreur 404 en PHP
Utilisation de la classe easyRSS
Proposer plusieurs styles pour votre siteMême indexation :
Technique Web
Un lecteur RSS pour votre site 1/2
Positionnement fixe... même avec Internet Explorer !
Installer un script PHP pour les nuls
Réaliser un formulaire de contact (4/4)
Un Editeur RSS pour votre site 2/2
Utilisation de la classe easyRSS
Webmasters : Comment mieux se référencer ?
Menu dépliant pour les rubriques
Créer une liste de QCM
Quand JavaScript est désactivé... 2/2
Un Editeur RSS pour votre site 1/2
Page contact en PHP 2/3
Quand JavaScript est désactivé... 1/2
Le web structuré et sa présentation
Comment faire migrer son site ?
Syndication, comment s’y retrouver
Page contact en PHP 1/3
Publication Spip : forme et typographie
Réaliser un formulaire de contact (2/4)
Editer plusieurs fichiers de syndication 2/3
Menu de navigation sans JavaScript
Mise en place d’un forum : une décision qui doit être mûrement réfléchie
Editer plusieurs fichiers de syndication 3/3
Quiz en PHP 2/3
Tri et Histogramme
Créer un forum à l’aide de phpBB
Quiz en PHP 1/3
Un serveur dédié pour les nuls
Contrôler l’accès d’une partie du site avec .htaccess
La Netiquette des forums
Soigner en ligne, un art impossible ?
Réaliser un formulaire de contact (1/4)
Belles icônes pas chères !
Initiation au xhtml - 1
Un lecteur RSS pour votre site 2/2
Page contact en PHP 3/3
Initiation au xhtml - 2
Gestion d’une rubrique... en attendant SPIP
Analyser les réponses à une liste de questions
MARST - Le Moteur Automatisé de Recherche en Santé au Travail
Page Erreur 404 en PHP
Réaliser un formulaire de contact (3/4)
Initiation au xhtml - 3 : Rappel sur les pointeurs internet (URI/URL)
Comment intégrer Snap Shots à Rapidweaver ?
Javascript : n’oubliez pas Mac OS !
Etablir un questionnaire statistique en ligne
Conseils pour débuter un site web
Qualité, centres d’intérêt et motivations des participants aux forums médicaux.
xhtml - 4 : Les entités
Editer plusieurs fichiers de syndication 1/3
Quiz en PHP 3/3
Réaliser un formulaire de contact (5/4)
La syndication de contenu RSS
Ecrire ce qu’on veut dans SPIP
Lire nos fichiers de syndication
Afficher un fil RSS/Atom sur votre site 1/3
Astuce pour les images fréquemment utilisées
Afficher un fil RSS/Atom sur votre site 2/3
Afficher un fil RSS/Atom sur votre site 3/3
Lecteur RSS/Atom pour votre site 1/2
Lecteur RSS/Atom pour votre site 2/2
Lecture des caractères spéciaux et d’éléments d’un fil RSS/Atom
Syndication pour phpBB
Editez vos flux avec Fil_LE 1/2
Editez vos flux avec Fil_LE 2/2
Création à distance d’un fichier de syndication
Exécuter un Javascript dans une page SPIP
Abandonnons RSS 0.91 !
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIPSyndiquer tout le texte
Gestion d’une rubrique... en attendant SPIP
Editer plusieurs fichiers de syndication 1/3
Page contact en PHP 2/3
Editer plusieurs fichiers de syndication 2/3
Menu dépliant pour les rubriques
Installer un script PHP pour les nuls
Page contact en PHP 3/3
Page Erreur 404 en PHP
Quiz en PHP 2/3
Quand JavaScript est désactivé... 1/2
Editer plusieurs fichiers de syndication 3/3
Quiz en PHP 3/3
Quiz en PHP 1/3
Quand JavaScript est désactivé... 2/2
Positionnement fixe... même avec Internet Explorer !
Menu de navigation sans JavaScript
Syndication, comment s’y retrouver
Page contact en PHP 1/3
Javascript : n’oubliez pas Mac OS !
Afficher plusieurs flux RSS/Atom sur une page
Conseils aux rédacteurs
La syndication de contenu RSS
Ecrire ce qu’on veut dans SPIP
Lire nos fichiers de syndication
Présentation de l’espace rédacteurs
Afficher un fil RSS/Atom sur votre site 1/3
Astuce pour les images fréquemment utilisées
Ecrire ou modifier un article
Les raccourcis typographiques
Afficher un fil RSS/Atom sur votre site 2/3
Afficher un fil RSS/Atom sur votre site 3/3
Reprendre un document Word
Lecteur RSS/Atom pour votre site 1/2
Lecteur RSS/Atom pour votre site 2/2
Lecture des caractères spéciaux et d’éléments d’un fil RSS/Atom
Placer une image dans un article
Joindre un document à un article
Editez vos flux avec Fil_LE 1/2
Editez vos flux avec Fil_LE 2/2
Joindre un logo à un article
Création à distance d’un fichier de syndication
Abandonnons RSS 0.91 !
Exécuter un Javascript dans une page SPIP
Des fils RSS 1.0, RSS 2.0 et Atom 1.0 pour votre site SPIP
Accueil
Boite à Outils
Proposer plusieurs styles pour votre site
Offrir au visiteur le choix entre plusieurs présentations permet une adaptation pour les personnes ayant des difficultés visuelles (gros caractères, fond noir moins éblouissant...), ou une version riche et une simplifiée, etc.
En voyant le site OpenWeb, qui est un modèle en ce qui concerne l’accessibilité [1], j’ai voulu réaliser la même chose pour le site CYES.
Pour le moment, les sites qui se préoccupent de l’accès des personnes handicapées visuelles sont encore trop peu nombreux.
Cet article donne quelques explications et les éléments de code pour ceux qui souhaitent utiliser ce système sur leur site.
Pour pouvoir utiliser un changement de look, il faut déjà que votre site utilise une feuille de style. Cet article suppose que cet aspect est acquis. En effet, si c’est dans le code de la page que se trouvent les balises indiquant la police choisie, sa taille et sa couleur, par exemple : <font face="Arial" size="2" color="#336600">... ce système ne peut rien changer [2].
D’autre part, la technique proposée dans cet article concerne les sites en PHP. Pour les autres sites, cette méthode ne fonctionne pas, mais vous pouvez en utiliser une autre technique utilisant JavaScript expliquée dans les pages Changement de skins CSS et Alternative Style.
Le site CYES utilise 6 feuilles de style conformes à la norme "CSS 2" [3]. Une feuille de style concerne l’impression [4] et 5 feuilles de styles alternatives pour l’affichage à l’écran permettant de consulter le site dans différentes présentations :
J’ai commencé par faire ce que conseille OpenWeb : ne pas utiliser dans les feuilles de style de police à taille fixe mais des polices à taille variable (en "em" ou "%"). En effet, une police à taille fixe ne permet pas de régler la taille des caractères si on utilise Internet Explorer sur un PC. J’en suis revenu en voyant l’affichage déplorable avec des systèmes Windows un peu anciens. J’utilise donc une police à taille fixe, mais uniquement pour la présentation par défaut.
La première des chose à faire si ce changement de présentation vous intéresse est de mettre au point plusieurs styles d’affichage écran, et de mettre chaque style dans une feuille de style externe différente.
Le choix de la présentation se fait par le menu affichage des navigateurs supportant les styles alternatifs : menu "View/Use Style" dans Netscape 7, Mozilla ou Opera 7... et depuis le formulaire "Présentation" en haut de chaque page. Voilà pour le côté internaute, mais pour que çà marche, côté code, il faut :
<head>,<head>Voici un exemple de code :
<link rel="stylesheet" type="text/css" href="/modele/<?php echo (!$sitestyle)?'ecran':$sitestyle ?>.css" media="screen" title="Présentation mémorisée par cookie" /> |
Ce code comprend, s’il existe, la récupération du choix de présentation mémorisé par le cookie, sinon c’est la feuille par défaut (ici : ecran.css) qui est utilisée. Il faut ensuite indiquer les différentes feuilles de style alternatives.
Voilà un exemple avec un menu déroulant (on pourrait aussi bien utiliser des boutons radio) :
et voici son code :
<form action="/switcher.php" method="post" id="switcher"> |
Vous remarquez que le formulaire renvoie au fichier switcher.php présenté ci-dessous. Les effets de style sur le bouton d’envoi ne servent qu’à faire joli.
Il est utile de ne pas mettre de Javascript réalisant l’envoi d’un choix à partir du menu déroulant, afin d’éviter de perturber les personnes handicapées qui naviguent sans souris.
Option "Affichage du style sélectionné" [5]
Pour indiquer sur chaque page la présentation choisie, il suffit d’un petit script PHP qui récupère la sélection choisie en lisant le cookie. Voilà alors le code à utiliser pour le menu déroulant :
<form action="/switcher.php" method="post" id="switcher"> |
Ce fichier créée un cookie qui ne sert qu’à mémoriser le choix de feuille de style. Il est ici limité à un an (31536000, c’est le nombre de secondes par an = 60x60x24x365), mais on peut faire une durée plus courte si on préfère. Le choix de présentation peut très bien se faire si on n’utilise pas ce fichier (ou pour quelqu’un qui refuse les cookie), mais chaque fois qu’il change de page le visiteur retrouvera la présentation par défaut. Pour en savoir plus sur ce fichier, vous pouvez voir la page Construire le Switcher en Php. Voici le code de ce fichier, qui doit être placé à la racine du site :
<?php |
Il est souhaitable lorque vous créez un cookie chez votre visiteur de l’informer de ce qui se passe, voici un exemple de fichier pour cela.
Voilà, vous avez tous les éléments, si cela vous intéresse, il ne reste plus qu’à personnaliser le code présenté et à mettre en place sur votre site.
[1] Voir la partie de ce site sur l’accessibilité.
[2] Cette article n’est pas consacré à l’apprentissage des feuilles de style, voici quelques liens sur ce sujet :
[3] Les feuilles ont été testées à l’aide du Validateur CSS du W3C.
[4] Je ferais un autre article sur l’intérêt d’une feuille de style pour l’impression, celle-ci n’a rien à voir avec l’affichage à l’écran, le système proposé dans cet article fonctionne donc très bien si vous n’avez pas de feuille de style pour l’impression.
[5] Ce paragraphe ne faisait pas partie de l’article initial paru en mai 2004, il a été ajouté en septembre 2004.
Petit problème avec la valeur http_referer : ’ HTTP_REFERER ’ donne : L’adresse de la page (si elle existe) qui a conduit le client à la page courante. Cette valeur est affectée par le client, et tous les clients ne le font pas. Certains navigateur permettent même de modifier la valeur de HTTP_REFERER , sous forme de fonctionnalité. En bref, ce n’est pas une valeur de confiance.
Etant donné que ce n’est pas une valeur de confiance j’ai fais quelques petites modifs :
Dans le formulaire j’ai rajouté un hidden :
input type="hidden" name="adresse" value="
<?php echo $_SERVER['PHP_SELF']; ?>
"
Et dans le fichier switcher j’ai fais la modif suivante (2ème ligne) :
<?php
setcookie('sitestyle', $set, time()+31536000,'/','www.monsite.com','0');
header("Location: $adresse");
?>
Ca marche plutôt bien...mais j’attends vos éventuels commentaires...je ne suis qu’un bleu ! 
Benoit
Pas si bleu que çà...
Je trouve cette idée astucieuse.
Bleu clair alors
...j’ai pensé à cette astuce...mais peut être qu’elle pose d’autres problèmes auxquels je n’ai pas pensé ??
, 
Excellent, merci beaucoup pour cette contribution
Pouvez vous mâcher un peu le travail pour les médecins surmenés en mettant des squelettes à l’image de celui de GWENDAL qui a servi à façonner CE SITE.
Pouvez vous rendre la pareille au monde du SPIP en mettant en ligne le squelette de ce site (le GWENDAL transformé) ;
Et merci de contribuer sans retenue ni pusillanimité....chers confrères..
Le monde (du net médical) vous regarde ! Faites profiter les autres, comme vous avez profité du Gwendal-spip
Bonjour,
Les squelettes de ce site ont bien sûr vocation à être partagés. Le problème est qu’ils sont en constante évolution et je voudrais un minimum de finitions avant de proposer un kit de squelettes.
En attendant, tout webmaster peut charger et utiliser les squelettes sommaire.html, article.html, rubrique.html et les feuilles de styles appelées par ces squelettes.