Bonjour,
le lien ne fonctionne pas à la souris, il faut le copier.
On verra plus tard, mais l'idée d'un site sur les citations est bonne. J'ai un fichier (un simple fichier texte) où je note toutes les citations qui me passent par la tête. J'en ai une grande quantité.
Plus tard sur l'avis.
https://jardindescitations.com
Ça fonctionne, il faut enlever le /
Modifié par Bongota (20 Dec 2023 - 13:46)
citation d'un chef indien: "Qui pisse loin préserve ses mocassins."

je suppose que tu utilise une architecture préfabriquée pour qu'il y ait 75 erreurs html.
Désolé pour le lien cassé. Merci Bongota. Quel est ton avis sur le site finalement ?

drphilgood, tu veux dire d'être prudent ? en effet il y a pas mal d'erreurs html a corriger...
mais sur le potentiel du site , qu'en penses-tu? et que verrais tu en terme de fonctionnalités ?
Modifié par jeanrobert18 (21 Dec 2023 - 18:26)
Bonjour,

comme je l'ai déjà dit, je trouve l'idée d'un site sur les citations bonne. L'ensemble me convient. Couleurs, contraste, rien à signaler de ce côté en ce qui me concerne.
Par contre, il faudrait revoir sérieusement les performances -ressources javascript inutilisées, code tiers qui bloque le chargement, certaines images à compresser. Aussi gros problème avec les fonts, bien trop lourds. Il faut utiliser aujourd'hui le Woff 2, en lieu et place du ttf.

Quelques autres détails, qui peuvent avoir une influence sur le SEO ou l'accessibilité - liens ou boutons qui n'ont pas de noms, balises sémantiques (h1, hn) pas réparties dans le bon ordre.
Passer le site au validateur html va montrer quelques erreurs, mais pas toutes. Il existe en ligne toutes sortes de tests qui aident beaucoup à l'amélioration de son site.

Bonne fêtes.
Modifié par Bongota (30 Dec 2023 - 14:42)
Yo,

Je suis le développeur du site en question.

Déjà, merci beaucoup pour vos réponses.

@drphilgood, j'ai écrit le site avec nextjs, je suis pas un pro de la sémantique html comme tu as pu t'en douter, mais j'apprécie tes recommandations, j'ai utiliser un validateur pour inspecter le code, et effectivement il y a pas mal de warnings sur la sémantique, je corrigerais ça prochainement.

@Bongota, concernant l'esthétique, merci, c'est sympa à lire.
Tu parles d'une page en particulier pour les performances/javascript non utilisé ? Comme je l'ai dit juste avant, j'utilise nextjs qui est supposé me simplifier une grosse partie de ce travail (minification, code splitting et j'essaye aussi de lazy load certains composants quand c'est possible).

Par rapport à quelles références tu détermines qu'il faut revoir les performances de l'application ? Tu utilises un outil particulier pour mesurer ça ? J'avoue ne pas forcément m'en rendre compte.

Par exemple, si je prends cette page : https://jardindescitations.com, j'ai 2.1Mb de données transférées en un peu moins d'1 seconde, ça me semble correct, après j'ai pas vraiment de base de comparaison.

Pour les images, elles sont au format .webp, le framework les convertit à ma place. Il produit également une version de chaque image au format que je lui demande (avec l'attribut sizes), donc la dimension demandée correspond à peu près à celle afficher sur ma page. Tu vois autre chose qui pourrait être fait à ce niveau ?

Pour les fonts, merci, je suis totalement passé à côté de ça, j'en avais aucune idée, donc j'ai bien fait la modification (c'est pas en production), mais passer de .ttf à .woff2 réduit à peu près la taille de chaque font de 50% (~130ko à ~60ko).

Pour les liens/boutons, tu parles de l'attribut html name ? Si oui, je pensais qu'il n'avait une importance uniquement pour les formulaires envoyés.

Pour les balises hn, effectivement l'ordre est un peu hasardeux actuellement, je fais quelques essais donc c'est normal à ce niveau.

J'ai passé le site dans le validateur html du w3c, ce qui m'a permit de constater quelques erreurs et pas mal de warnings. Mais je connais pas vraiment de validateurs qui me permettrait d'analyser le code javascript/css, les fonts, les images envoyés, tout en me fournissant quelques recommandations pour améliorer le tout.

Si tu en as ou quelqu'un d'autres, je suis preneur.

Merci beaucoup, et j'espère que vous avez passé de bonnes fêtes de fin d'années. Smiley roflol
Bonjour,
je parlais de la page d'accueil pour les tests, je n'ai pas regardé les autres pages.

Le validateur html (et css aussi) donne surtout des indications sur les balises non refermées, les incompatibilités diverses et quelques autres signalements. Le plus fort, c'est que pratiquement tout ce que pointe le validateur n'empêche pas le site de fonctionner ! Ce validateur s'attache surtout à faire respecter les normes, ce qui peut quand même avoir des conséquences. Il vaut mieux les respecter. En ce qui concerne ton cas, le très grand nombre d'avertissement "Trailing slash on void elements" n'est pas conséquent. Il suffit juste d'enlever les / avant toutes les fermetures > des meta. Ceci fait, on y verra déjà plus clair, il ne restera que peu d'erreurs pointées.

Le layzy-load semble fonctionner et heureusement, au vu du grand nombre d'images sur le site.

Pour les balises hn, une bonne méthode est de lire le site sans css et de voir l'ordre d'importance des paragraphes. h1 pour le titre principal (pas le title du header). Ensuite on descend h2, h3, h4 en fonction de l'importance des sous paragraphes ou sections. Il y a des tas de ressources sur le net pour étudier ça de plus près. Ceci a de l'importance pour le SEO mais n'empêche pas le site de fonctionner.

Je ne peux rien dire sur les ressources javascript non utilisées, je n'ai pas regardé en détail.
Une très bonne méthode, avant d'aller sur le net chercher des tests, c'est l'explorateur. Sur Firefox, c'est F12. Après, tu as tout ce qu'il faut pour inspecter le site, même le layzy-load.

https://gtmetrix.com
est un test plutôt sur la vitesse. J'y ai un compte, ce qui me permet de choisir à la fois le lieux du serveur et le navigateur. Il te donne les ressources js inutilisées.

https://pagespeed.web.dev/
va te donner des indications précieuses. Je teste toujours sur les mobiles, qui restent le point le plus critique.

https://yellowlab.tools
est un autre test qui aide parfois d'une façon différente. Mais il y a pléthore de tests sur le net, chacun pour tester un ou des cas particuliers. Ces tests aident, mais ne remplacent pas la réflexion du développeur.
Ce matin, tu n'as toujours pas changé les fontes.
Modérateur
Bonjour,

Le site me semble pas mal et son contenu intéressant. Et j'aime bien la manière dont le menu de gauche se replie.

Par contre, pour le code, bah, il reste du boulot ! Smiley biggrin Smiley biggrin Smiley biggrin

Un framework est utilisé, et ça peut être en fin de compte plus difficile à maitriser que de faire directement son html à la main. Je ne connais pas next.js, mais bon, admettons que ce soit un choix acceptable. J'imagine cependant que ça puisse être assez contraignant et qu'il ne soit pas possible de simplifier le code autant qu'on le voudrait.

Structure globale

Au niveau de la structure globale, si je prends la page d'accueil, on a un bandeau en haut, un menu à gauche et une partie centrale avec le contenu.

J'aurais mis le bandeau du haut dans une balise <header> (au lieu d'une <section> contenant une <nav>) en dehors de la balise <main>. Parce que le <main> ne devrait en théorie ne contenir que le "contenu", et pas ce que contient ce bandeau du haut. Et j'aurais mis le menu de gauche dans une balise <nav> au lieu de <section> + <aside> (parce que c'est ça qui sert à naviguer dans le site) en dehors de la balise <main> elle aussi. J'aurais de plus sorti le petit pavé en bas du menu de gauche (qui contient en gros les mentions légales) pour le mettre dans un <footer> en dehors du <main> lui aussi. Tel qu'il est placé actuellement, il semble disparaitre si on a le menu replié. Tandis que dans un <footer>, il pourrait rester affiché en permanence en bas de page sans nuire au look d'ensemble.

En résumé, ça donnerait :
<body>
<header>...</header>
<nav>...</nav>
<main>...</main>
<footer>...</footer>
</body>


Globalement, il me semble y avoir une utilisation abusive des balises <section>. Ce n'est pas justifié la plupart du temps. Il y a aussi bien sûr pas mal de balises <div>. Or, selon moi, (presque) toute <div> est inutile. On va dire que pour ce site, ce n'est quand même pas la cata. Ça reste raisonnable. Y en a beaucoup d'autres qui font pire. Ceci étant, ce site pourrait tout à fait contenir zéro balises <div>. Car il n'y a rien qui en justifie la présence.

Le bandeau du haut

On met donc le bandeau du haut dans un <header>, et on peut simplifier pas mal. Parce qu'en fin de compte, on a quoi dedans ? Un bouton pour replier le menu (j'aurais mis un <svg> dedans plutôt que trois <span>) et un logo encapsulé dans un lien vers la page d'accueil à gauche, un champ de recherche au milieu, et deux liens à droite pour s'inscrire et se connecter. On pourrait donc se contenter d'un truc du genre :
<header>
<button><svg ...>...</svg></button>
<a href="..."><img ...></a>
<label>...<imput ...></label>
<a href="...">Inscription</a>
<a href="...">Connexion</a>
</header>

Et on vire tout le reste qui ne sert à rien ou presque ! Smiley lol Smiley lol Smiley lol

Menu de gauche

On a un lien seul en haut, suivi de trois listes de boutons. On met donc dans une balise <nav> un <a> suivi de trois <ul> contenant des <li>, chaque <li> contenant un <a>, chaque <a> contenant un <svg> et un <p> comme tu l'as fait. Ça donne par exemple ça :
<nav>
<a ...>...</a>
<ul>
<li><a ...><svg ...>...</svg><p>...</p></li>
<li><a ...><svg ...>...</svg><p>...</p></li>
...
</ul>
<ul>
<li><a ...><svg ...>...</svg><p>...</p></li>
<li><a ...><svg ...>...</svg><p>...</p></li>
...
</ul>
<ul>
<li><a ...><svg ...>...</svg><p>...</p></li>
<li><a ...><svg ...>...</svg><p>...</p></li>
...
</ul>
</nav>

Et on vire tout le reste qui ne sert à rien ou presque ! Smiley lol Smiley lol Smiley lol

Le contenu principal

Je n'ai pas trouvé de <h1> dans la page d'accueil. Ailleurs, je n'ai pas regardé. Il faudrait en rajouter un au début du <main>. Car c'est problématique au niveau sémantique et pour le référencement de ne pas avoir de balise <h1>. Cette balise pourrait pour la page d'accueil n'être simplement que <h1>Citations</h1>. Dans les autres pages, il faut mettre un autre contenu dans les <h1>. Par exemple, pour la page concernant les conditions d'utilisation, on peut mettre <h1>Conditions d'utilisation</h1>, et ainsi de suite pour les autres pages.

Ensuite on a des <h2> suivi d'une série de balises <article>. C'est bien, mais le html produit est quand même un peu confus et contient notamment pas mal de <section> dont l'utilité est douteuse. Tu peux encapsuler chaque <h2> suivi de sa liste d'articles dans une seule <section> (là, c'est normal, une <section> devant dans le cas général commencer par un <hn> suivi de son contenu), mais retirer les autres balises <section> qui trainent autour de tes balises <article>. On obtient alors :
<main>
<h1>Citations</h1>
<section>
<h2>...</h2>
<article>...</article>
<article>...</article>
...
</section>
<section>
<h2>...</h2>
<article>...</article>
<article>...</article>
...
</section>
...
</main>

Et on vire tout le reste (en particulier toutes ces <section> intermédiaires) qui ne sert à rien ou presque ! Smiley lol Smiley lol Smiley lol

Le bas de page

On y met :
<footer>
<a href="https://jardindescitations.com/conditions">Conditions d'utilisation</a>
<a href="https://jardindescitations.com/confidentialite">Confidentialité</a>
<a href="https://jardindescitations.com/integrations">Intégrer la citation du jour sur mon blog</a>
<p>© 2024 Jardin des citations. Tous droits réservés.</p>
</footer>

Eventuellement, on peut y rajouter un lien vers une page "plan-du-site". Et on vire le <div> qui ne sert à rien.

Si on fait tout ça, on ne devrait pas être loin du zéro <div>, avoir une utilisation normale des <section> et avoir un site sémantiquement clair.

À propos des balises <img>

Les balises <img>, là, ça fait carrément peur. Les frameworks, parfois, on se demande comment ils en sont arrivés "là" ! Smiley lol Smiley lol Smiley lol

Je me suis amusé à regarder en détail la balise de l'image du premier article (des ballons jaunes avec des smileys imprimés dessus).

Le code html de cette seule balise fait ... 3156 octets. Gloups !

Bon, avec tout ce code, sans compter tout le js qui traine dans la page d'accueil, on aurait pu espérer une certaine optimisation. L'image de base pour cette balise (qui s'appelle semble-t-il henri-salvador-quote-article.webp) pèse environ 550 ko et ses dimensions sont de 1920x1270 px. C'est gros, mais si ce n'est pas ce qui est effectivement servi, ce n'est pas trop grave.

Quand je fais "inspecter" sur l'article, je vois que ce n'est pas cette image qui est envoyée par le serveur, mais une autre version (grâce au code savant se trouvant dans le html) de 900x600 px et un poids de 187 ko. Ça devient plus raisonnable, mais ça fait quand même pas mal pour une image dont le rendu ne fait la plupart du temps que de l'ordre de 360px de large (valeur approximative car ça dépend de la largeur de la fenêtre du navigateur, ce qui veut dire qu'on aura téléchargé une image qui de toute façon va être redimensionnée par le navigateur).

Moi je ne comprends rien aux scrset (j'exagère un peu évidemment Smiley cligne ). En général, je regarde quelle largeur aura le rendu de l'image "la plupart du temps" et je fabrique une seule image qui fait le double de largeur du rendu. J'ai fait ça pour l'image henri-salvador-quote-article.webp et j'ai obtenu une image de 720x480 px qui pèse ... 53ko. Et en faisant ça, j'aurais pu me contenter d'un code html comme celui qui suit, tout en ayant un rendu pas trop mal dans la plupart des cas :
<img alt="Je voudrais que sur la terre Tout le monde ait des images Commes dans mes rêves bleus Qu'il n'y ait plus d'orages Que Papa soit jamais vieux."
loading="lazy" src="/img/henri-salvador-quote-article-720x480.webp">
On est bien loin des 3156 octets du site actuel.

Bref, il est certain que les scrset peuvent apporter quelque chose, mais ici, ça pose question.

Amicalement,
Modérateur
Bonjour,

Le code html à l'intérieur des articles est lui aussi à modifier. Déjà, ce n'est pas des <h4> qu'il faut y mettre mais des <h3>. Ensuite, on pourrait simplifier, et aussi mettre "quelque chose" à l'intérieur des liens. Car en l'état actuel, des liens sont vides, ce qui n'est pas génial en terme d'accessibilité.

Par exemple :
<article>
<a ...><img ...></a>
<h3><a ...>ici le titre de l'article</a></h3>
<p>ici un commentaire éventuel</p>
<footer>
<a ...><img ...></a>
<a>auteur</a>
<p>date</p>
</footer>
</article>

Amicalement,
Modifié par parsimonhi (03 Jan 2024 - 17:51)