Liste de bonnes pratiques et points à prendre en compte avant/durant/après l'élaboration d'un projet web.
Voir aussi comme autres références :
Les priorités indiquées sont purement indicatives à et moduler selon chaque projet. Tout critère pouvant être déterminant ou sensible à chaque phase, il est difficile de pondérer efficacement une telle liste.
Critère |
Priorité |
Chaque page comporte un titre unique et pertinent (favorise le référencement et l’utilisabilité/accessibilité) |
*** |
Il y a un lien vers un flux RSS valide si un CMS est utilisé |
* |
Les préfixes navigateurs CSS sont gérés automatiquement (autoprefixer) |
* |
Un reset CSS est appliqué |
* |
Internet Explorer est géré en mode de compatibilité standard |
* |
Les balises HTML sont utilisées de manière sémantique |
** |
Les balises HTML5 de sections et types pour les formulaires sont exploitées |
*** |
Le média print est pris en compte pour les contenus imprimables |
* |
Critère |
Priorité |
Le design est basé sur une grille de mise en page éprouvée pour le Web y compris pour le Responsive en mobile |
** |
Les polices de fontes/tailles différentes sont limitées et lisibles |
** |
Critère |
Priorité |
Les scripts JavaScript sont chargés de manière optimisée et non bloquante (favorise la vitesse d'affichage et le référencement) |
* |
Les fichiers CSS et JavaScript sont concaténés et minifiés (favorise la vitesse d'affichage) |
** |
Les fichiers ont une date d'expiration HTTP pour le cache (favorise la vitesse d’affichage et allège les ressources serveur) |
* |
Les images sont optimisées et compressées (favorise la vitesse d'affichage) |
* |
Une page d'erreur 404 est présente |
** |
Les polices externes sont optimisées |
* |
Les contenus statiques sont stockés sur un domaine sans cookies |
* |
Les fichiers sont compressés côté serveur (deflate, gzip) |
* |
Les performances front-end du site ont été vérifiées |
* |
Le nombre de web fonts est limité |
* |
Critère |
Priorité |
Chaque page comporte une section avec des balises description et keywords et autres indications pertinentes |
* |
Un tag de suivi des statistiques (Google Analytics ou équivalent) est inséré |
* |
Le site est enregistré sur Google Search Console (compte Google requis) |
* |
Le fichier robots.txt est présent |
** |
Un sitemap XML est généré |
* |
Des microdonnées/microformats sont utilisés (Schema.org, JSON-LD) |
* |
Critère |
Priorité |
Des liens d'évitement sont opérationnels |
** |
Le contraste contenu / fond est suffisant |
** |
Les contenus visuels ont des alternatives texte |
** |
La langue des contenus est précisée (attribut lang) |
* |
Des tailles de polices fluides sont employées, le contenu est lisible avec un zoom texte à 200% |
* |
La hiérarchie des titres est correcte |
** |
La navigation au clavier est possible |
*** |
Les formulaires sont accessibles |
*** |
Le site est utilisable sans CSS et/ou JavaScript et/ou sans images et/ou sans images de fond |
* |
Des landmarks ARIA sont définis et ARIA est utilisé avec ses rôles et propriétés pour tous les composants le nécessitant |
* |
Critère |
Priorité |
Le nom de domaine est fonctionnel |
*** |
Le projet est versionné (idéalement Git) |
*** |
La documentation est à jour |
*** |
Les permissions des fichiers en production sont correctes |
** |
Critère |
Priorité |
Les liens internes sont valides |
** |
Le site fait appel à des technologies open-source et interopérables |
** |
La disponibilité du site est monitorée (selon l’hébergement choisi) |
** |
Une icône favicon est présente à la racine du site |
** |
La qualité du code HTML, CSS et JavaScript est vérifiée à l’aide d’outils automatiques (linters) |
** |
Les pages sont testées sur les navigateurs bureau et mobiles principaux |
** |
L'orthographe et la grammaire sont vérifiées |
* |
Critère |
Priorité |
Une nomenclature constante et internationale est adoptée |
** |
L'indentation des fichiers est conventionnée (.editorconfig) |
*** |
Critère |
Priorité |
Toutes les entrées utilisateur (formulaires, paramètres GET, etc) sont filtrées et validées côté serveur |
*** |
Les en-têtes HTTP relatives à la sécurité (CSP, CSRF, X-XSS, etc) sont configurées |
** |
Le protocole HTTPS est utilisé avec un certificat valide |
*** |