• [^] # Re: Mauvais exemple

    Posté par (site web personnel, Mastodon) . En réponse au journal JS dans linuxfr ?. Évalué à 6.

    La dépréciation de SMIL n'a pas fait long feu et a été annulée par Google. J'en parlais déjà dans un article linuxfr en 2016, comme quoi les rumeurs ont la vie dure et la moindre action un peu médiatisée peut porter sérieusement atteinte à la réputation d'un projet.

    Donc non SMIL n'est pas dépréciée et a un fort support par tous les navigateurs majeurs de nos jours (c'est d'ailleurs marrant, car lors du retour de SMIL chez Google en 2016, les ingénieurs justifiaient leur vision surtout par la faible prise en charge; cet argument est clairement non recevable de nos jours).

    Je ne suis pas toutes les évolutions en détails, donc je ne suis pas sûr si c'est toujours le cas, mais globalement le problème majeur avec les alternatives (du type animation par CSS) était qu'il n'était pas possible de faire tout ce qu'on pouvait faire avec CSS comparé à ce que SMIL proposait. Ceux qui essayaient donc de mettre CSS en avant le faisait en proposant une alternative moins performante, et par conséquent n'étaient finalement probablement pas eux-même des utilisateurs.

    Personnellement j'apprécie surtout l'animation en SMIL pour les cas où je considère l'animation comme faisant partie intégrante de l'image. C'est par exemple le cas de notre petite animation 404 du site GIMP. C'est vraiment une petite animation auto-contenue. Elle ne réagit pas à des évènements particulier ou à une intéraction du visiteur. Elle joue quand on ouvre la page, c'est tout.
    Et donc on peut télécharger cette animation en un fichier .svg unique que l'on peut ainsi rejouer en local par exemple. L'extension SMIL fait partie intégrante du fichier (c'est du XML contenu dans le SVG même). Si l'animation avait été gérée dans un fichier CSS séparé, en téléchargeant le SVG, non seulement je risque d'avoir un contenu tout autre à ce que je m'attends (avec des bouts d'images statiques, probablement dans des positions étranges), mais en plus je n'aurais pas dû tout les informations de timing et de mouvement.
    J'apprécie donc que SMIL soit fait pour être intégré et qu'il permette d'avoir des animations tout en un. De la même façon que je pouvais télécharger un GIF animé, ou maintenant une animation WebP en un fichier, ou bien une vidéo, mon SVG est un seul fichier.

    Note: on sait que CSS peut aussi être intégré dans le document XML, mais on sait aussi que ce n'est pas recommandé; CSS est vraiment destiné à la gestion du style d'un document dans un fichier séparé. Mais théoriquement, oui il est aussi possible d'intégrer le CSS pour faire une image vectorielle animée auto-contenue de cette manière. Je prends avance sur les possibles réponses qu'on pourrait me faire. Ahahah!

    Je pense qu'il faut distinguer 2 types d'usage de SVG: SVG comme une image (ou image animée) et SVG comme un élément de markup.

    1. Dans le premier cas, le SVG est son propre conteneur et n'intéragit pas vraiment avec le reste de la page. On peut d'ailleurs même l'utiliser dans une balise <img> et il n'y a alors aucune différence entre votre fichier SVG et toute image de type PNG ou JPEG (hormis que le SVG se redimensionnera sans perte de qualité). Pour un tel cas, je préfère clairement SMIL.

    2. Dans le second cas, le SVG est du markup, au même titre que HTML. D'ailleurs on peut même intégrer le markup SVG à l'intérieur de la page HTML plutôt que dans son propre fichier, au besoin. On peut par exemple imaginer vouloir utiliser du SVG pour des éléments de menu ou d'interface de la page en général. On peut aussi vouloir animer ces menus vectoriels avec des règles CSS en fonction des clics du visiteur. Dans ce cas, très clairement, cela doit être fait en CSS (je ne suis même pas sûr que ce soit faisable en SMIL d'ailleurs). Ce ne sont clairement pas des animations en tant qu'animation, mais des animations pour styler des éléments de contenu. On pourrait d'ailleurs imaginer retirer ce CSS sans casser la page, ou bien le changer pour un CSS personnel (ce que les gens sur linuxfr font pas mal!). Ne pas oublier une règle du CSS bien fait: le CSS est fait pour styler un contenu, pas pour être le contenu; donc le contenu doit être lisible et utilisable même sans CSS! C'est clairement le cas pour un CSS qui animerait des éléments d'interface, par exemple des fondus, juste pour faire joli par exemple (cette animation est totalement superflue et n'est pas utile en soi; le menu est juste une liste de liens qui doit pouvoir marcher sans joli design et sans animation).

    Par contre dans le cas d'une animation dont le seul but est l'animation elle-même (comme dans notre page 404): retirer les règles de l'animation enlève tout intérêt au fichier.

    Donc non SMIL est encore bien vivant, et a une très bonne prise en charge (entre SMIL et CSS animation, le seul navigateur qui prend en charge CSS animation et pas SMIL est apparemment IE, or le développement de IE est abandonné et même Microsoft en déconseille l'utilisation). Et j'espère bien que ça continuera ainsi. 😃

    Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]