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 |
*** |