De nombreux intervenants ou expert ès qualité/accessibilité déconseillent de plus en plus l'audit lourd (également appelé l'audit canonique) qui est donc effectué à la fin du projet, avec une pléthore de points à vérifier, etc. pour une approche différente : celle d'inclure la démarche qualité ou d'accessibilité au fur et à mesure du projet, l'approche dite agile. On parle d'amélioration continue et non plus de respect strict (et bête) de niveaux.
Sur le papier, c'est du bon sens, néanmoins, les (mauvaises) habitudes et les (mauvais) réflexes ayant la vie dure, je vous propose de prendre un exemple concret afin de mieux comprendre en quoi cette approche canonique peut avoir des côtés désagréables. Une précision importante : je ne fais pas les choses par mode, buzz ou dogme, bien que passionné, je suis quelqu'un d'extrêmement froid, fainéant et pragmatique.
Et plutôt qu'un long discours théorique, prenons un retour d'expérience concret : j'ai testé les deux approches… sur ce site.
Évidemment, il faut replacer ça dans son contexte, mais j'y reviendrai.
J'ai commencé à parler de démarches qualité pour ce site en 2004, comme vous pourrez le voir dans les commentaires, Élie Sloim en était d'ailleurs ravi.
Si je résume vulgairement l'approche dite de l'audit lourd, c'est "on vérifie tout après avoir conçu le site". J'étais dans ce cas, j'avais lancé la base de ce site environ 2 mois plus tôt. Donc je me suis amusé à vérifier les 197 bonnes pratiques de l'époque. Honnêtement, c'était surtout un jeu et une bonne technique d'apprentissage à temps perdu de la qualité web.
Cette méthode d'apprentissage a certains avantages, le principal est d'avoir des objectifs relativement clairs et déterminés : il y a une liste, il faut la respecter ! Néanmoins, replaçons cela dans le cadre de l'époque :
- la base de mon code était valide et plutôt propre, conforme aux standards, ce qui me validait de facto de nombreux points,
- en concepteur du site et de tous ses aspects, j'avais la maîtrise totale et absolue de chacun de ses engrenages et autres rouages,
- le site étant relativement jeune, je n'avais pas de gros volumes de données (news, liens, etc.) à gérer,
- je n'avais pas de contrainte de temps ni de délai, c'était pour mon site personnel,
- le cadre du jeu était l'apprentissage de la qualité, donc hors de tout stress si j'ose dire ! Apprendre est un plaisir.
Cette expérience était très satisfaisante, j'ai appris plein de trucs, j'ai amélioré mon site, j'ai intégré des concepts. Néanmoins, même avec ce plaisir d'apprendre et d'intégrer la qualité, je reconnais que certains points ont été extrêmement frustrants à corriger, et il m'a fallu beaucoup, beaucoup de temps pour les résoudre : je pense notamment à la différenciation des liens internes et externes, je crois ne l'avoir intégrée qu'assez récemment dans mes derniers skins.
Qui plus est, la liste des bonnes pratiques s'étoffant, certains nouveaux points deviennent compliqués à ajouter, même à temps perdu, vous imaginez le boulot si je dois reprendre 1600 news une à une ?
Maintenant, sortons de l'idyllique cadre d'apprentissage à temps perdu, et revenons à la dure réalité ! En pratique, vous connaissez beaucoup de sites :
- avec un code particulièrement pur,
- dont vous avez la maîtrise totale et absolue,
- sans gros volume de base de données à traiter ou à reprendre,
- et sans contrainte de temps ou de délai à gérer ?
Si oui, ne changez pas de job, vous avez les cas les plus faciles, c'est parfait ! :)
Honnêtement, je crois n'avoir rencontré ces cas plaisants que très rarement. En pratique sur de grosses refontes, c'est quasiment impossible. Prenez le contrario des points énumérés ci-dessus, et selon moi vous aurez même une bonne méthode d'évaluation de la difficulté d'un projet, je parle d'ailleurs souvent de "l'échelle peau de banane" pour qualifier ces projets difficiles.
Imaginez donc : déjà dans le cas idéal, j'ai rencontré certaines grosses frustrations. Imaginez donc dans le cas pas idéal du tout les frustrations que vous pouvez avoir.
Ou alors, j'avais déjà pensé en concevant certains sites à inclure tous ces points afin d'être sûr que ça valide à la fin (vous voyez déjà là des embryons de l'autre méthode : inclure au fur et à mesure la qualité).
Penser en amont les problèmes, les contraintes, les objectifs, etc. je l'ai fait sur la dernière CSS alternative de ce site, par exemple : les performances, l'adaptation aux smartphones, etc. En ayant dans un coin de la tête ce que je vise, je travaille en fonction. C'est évident de l'énoncer ainsi, mais quand vous êtes pris dans l'enfer de l'action sous perfusion de stress avec une liste de 217 critères à respecter, ce n'est pas toujours aussi simple !
Vous avez peut-être constaté une chose : rien que d'appliquer de manière lourde et massive l'approche dite canonique me mène naturellement… à une méthode agile ! (sauf à aimer être masochiste, mais là c'est un autre débat)
La méthode dite agile vous permet de protéger votre santé mentale : imaginez un site de 10 000 pages dont vous devez reprendre chacune des pages en temps limité. Même si vous êtes le meilleur intégrateur du monde, ce n'est pas possible. Faites un deuil. Par contre, travailler à l'amélioration avec des gains faciles (quick wins en anglais), c'est beaucoup plus simple à gérer : moins de stress, moins d'échec, etc. et surtout, on reste dans le domaine du possible, avec une bonne dynamique positive.
À mon sens, la méthode lourde n'a de sens que si vous êtes dans un cas d'apprentissage : absorber tous ces bons points vous permettra de les restituer facilement. Le but étant pour vous que cela devienne un réflexe, ainsi votre travail de base, ou plutôt votre base de travail aura déjà un haut niveau de qualité intrinsèque. C'est là le but final de la méthode agile, enfin à mon humble avis.
Sachant que la qualité a une qualité : elle attire la qualité. Ajouter de nouvelles choses sur du travail bien fait, c'est possible, agréable et parfois même facile. J'étais par exemple à mille lieues de penser il y a 8 ans qu'une unique CSS gèrerait l'affichage du site, sa version imprimable et une version petit écran… le tout optimisé pour les performances web.
En bref, vous comprenez maintenant pourquoi je conseille une approche moins stricte, décomplexée et plus agile de l'accessibilité et de la qualité : aucun dogme, mais un simple retour d'expérience. Je suis passé par la méthode brute… je vous la déconseille vivement en milieu professionnel, pour votre santé mentale.