24 points par GN⁺ 2025-12-29 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Présentation de méthodes récentes pour remplacer dans le web des fonctionnalités dépendantes de JS par du HTML/CSS
  • Mise en œuvre d’accordéons, d’autocomplétion, de modales et de navigation hors écran à l’aide d’éléments standard comme details·summary, datalist et popover
  • Cette approche réduit le téléchargement, l’évaluation et l’usage mémoire, ce qui améliore les performances et l’expérience utilisateur
  • Pour chaque fonctionnalité, des exemples CodePen, documents MDN et informations de compatibilité navigateur sont fournis
  • Il faut réserver JS aux zones réellement nécessaires et exploiter activement les fonctionnalités avancées de HTML/CSS

Remplacer des fonctionnalités JS par HTML et CSS

  • Pendant longtemps, JavaScript a pris en charge des fonctionnalités impossibles à implémenter avec HTML et CSS
    • Mais à mesure que HTML et CSS se sont enrichis, certaines fonctionnalités JS peuvent être remplacées par des technologies web natives
  • Comme JS doit être téléchargé, décompressé, évalué et conservé en mémoire, il est plus efficace de basculer vers HTML/CSS chaque fois que c’est possible
  • L’idée proposée est de concentrer JS sur la logique complexe et de confier les contrôles d’interface simples à HTML/CSS

Accordéon / panneau de contenu extensible

  • Les éléments details et summary permettent d’implémenter un accordéon sans JS
    • Le contenu peut être ouvert et fermé par clic, et l’état par défaut se définit avec l’attribut open
    • En utilisant le même attribut name, un seul panneau peut rester ouvert
  • Il est aussi possible de le styliser avec CSS ou de piloter l’ouverture/fermeture avec JS
  • Ressources associées : documentation MDN sur details, exemple CodePen, tableau de compatibilité navigateur

Champ de saisie avec suggestions d’autocomplétion

  • La combinaison de input et datalist permet de créer une liste déroulante filtrée automatiquement
    • Lors de la saisie, la liste de suggestions est filtrée automatiquement
    • En plus du texte, différents types de saisie comme number ou time sont pris en charge
  • Firefox ne prend actuellement en charge que les champs de type texte, et il existe des limites d’accessibilité sur mobile
  • Ressources associées : documentation MDN sur datalist, tutoriel SitePoint, tableau de compatibilité navigateur

Modale / popover

  • Les attributs popover et popovertarget permettent de créer des modales et popovers sans JS
    • Trois modes sont proposés : auto, hint et manual
    • auto se ferme via un clic à l’extérieur ou avec Échap, tandis que manual ne se ferme que manuellement
  • Firefox et iOS ne prennent pas en charge le mode hint
  • Ressources associées : documentation MDN sur popover, blog Chrome, exemple CodePen, vidéo sur l’accessibilité

Navigation / contenu hors écran

  • La fonctionnalité popover permet aussi d’implémenter un menu de navigation hors écran
    • L’élément nav apporte une sémantique adaptée, et translate en CSS permet de faire entrer ou sortir le menu de l’écran
    • Le menu se ferme lors d’un clic extérieur, et popover="manual" permet de configurer une fermeture manuelle
    • Le pseudo-élément ::backdrop permet d’appliquer un fond semi-transparent
  • Ressources associées : API Popover de MDN, blog Chrome, exemple CodePen

Conclusion

  • Il faut reconnaître la puissance de JS, mais ne l’utiliser que là où c’est nécessaire
  • Les avancées récentes de HTML/CSS ont fait émerger de nombreuses alternatives sans JS
  • Davantage d’exemples sont disponibles dans le billet de blog de l’auteur, “Replace JS with No-JS or Lo-JS Options
  • Accent mis sur l’amélioration de l’expérience utilisateur grâce à la réduction de JS et à l’optimisation des performances

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.