Oublie le JavaScript : navigue entre petites pages HTML

Pourquoi ça compte pour toi
La plupart des sites web modernes surchargent JavaScript pour faire des interactions tape-à-l'œil. Mais Jim Nielsen montre une approche inverse : construire des sites en « petites pages HTML liées » (L.L.M.), où chaque interaction reste un lien standard, amélioré discrètement par du CSS. Résultat ? Plus rapide, plus accessible, fonctionnel même sur vieux navigateurs ou appareils lents.
Ce qu'il faut retenir
- 1.Chaque interaction = navigation vers une vraie page, pas une modification JavaScript de la page actuelle
- 2.CSS view transitions enrichissent le lien sans le casser (dégradation gracieuse)
- 3.Exemple concret : un menu qui 's'ouvre' en naviguant vers /menu/, 'se ferme' par history.back()
- 4.Approche radicale : penser le site comme un ensemble de documents à parcourir, pas comme une application qui s'exécute
Le piège du JavaScript moderne
Tu crois vraiment que chaque interaction doit requérir du JS ? Nielsen démontre le contraire.
La plupart des développeurs modernes construisent des sites comme des applications : une seule page qui se met à jour via JS, qui récupère des données, qui compile du contenu. C'est puissant pour certains cas. Mais c'est aussi lourd, fragile, et contre-nature au web.
L'approche « Lots of Little HTML »
L'idée : chaque interaction (ouvrir un menu, filtrer une liste, afficher des détails) = naviguer vers une nouvelle page HTML.
Exemple : le menu
Sur la page d'accueil :
<nav>
<a href="/menu/">
<svg>...</svg>
</a>
</nav>
Sur la page /menu/ :
<nav>
<a href="/" onclick="document.referrer ? history.back() : window.location.href = '/'; return false;">
<svg>...</svg>
</a>
</nav>
C'est juste un lien. Zéro effet, zéro complication. Mais Nielsen ajoute une couche : CSS view transitions. Cela crée une animation fluide entre les deux pages — mais seulement sur les navigateurs modernes. Les vieux ? Le lien fonctionne quand même, sans animation.
Pourquoi c'est malin
- ▸Accessibilité garantie : un utilisateur avec JS désactivé navigue normalement
- ▸Performance : pas de paquet JavaScript énorme, pas de requête asynchrone, juste du HTML
- ▸Robustesse : chaque page est une vraie page, indépendante
- ▸Dégradation gracieuse : vieux navigateurs ? Ça marche. Navigateur récent ? Tu as l'animation en plus
- ▸Historique naturel : un lien reste un lien. Le
history.back()discret garde l'historique du navigateur cohérent
Le vrai piège de cette approche
C'est pas simple d'y penser. Nielsen le dit clairement : « Il a fallu que je réfléchisse à ce qui était essentiel à la navigation. » Nos outils et cadres modernes nous poussent à faire des SPAs (Single Page Apps). Y renoncer demande de la discipline et une vraie compréhension du web fondamental.
Mais une fois que tu as cet état d'esprit — « le navigateur c'est fait pour naviguer entre documents, pas pour exécuter du code arbitraire » — tout devient plus simple.
À tester
Si ton site a un menu, un filtre, ou un formulaire modal : teste cette approche. Commence petit. Une interaction. Vois si tu peux la convertir en lien vers une vraie page, plutôt qu'une modification JavaScript de la page actuelle.
Tu vas découvrir que c'est souvent possible. Et quand ça l'est, c'est presque toujours mieux.
Source
Pour aller plus loin
Cet article t'a donné envie d'approfondir ? Deux formations Noésis t'attendent :
Explorer les thèmes de cet article :