Validation HTML: ça vaut le coup?

52

Quels sont les avantages et les inconvénients (le cas échéant) de s'assurer que toutes les pages sont validées par rapport à un code HTML non valide qui fonctionne toutefois sur tous les principaux navigateurs?

En outre, le fait d'avoir du code HTML valide après l'exécution de Javascript est-il aussi important?

Thomas Bonini
la source
5
Cela ne répond pas à votre question, mais ... placer un doctype sur votre page mettra le navigateur en mode standard au lieu du mode quirks. Recherchez le mode quirks pour voir ce que je veux dire.
Evan Plaice
1
@ Evan Plaice - Pas n'importe quel DOCTYPE cependant. Certains DOCTYPES déclenchent effectivement des bizarreries ou des modes presque standard. La spécification HTML5 explique cela plus en détail.
luiscubal
1
@luiscubal Est-ce une nouveauté dans HTML 5, car de en.wikipedia.org/wiki/Quirks_mode , il est indiqué "... si un DOCTYPE complet est présent, le navigateur utilisera le mode standard, et s'il est absent, le navigateur utilisera le mode quirks . ".
Evan Plaice
@ Evan Plaice Pas sûr des versions HTML précédentes, mais HTML5 précise ce qu'il faut faire avec les anciens DOCTYPES: voir whatwg.org/specs/web-apps/current-work/multipage/…
luiscubal
1
@ Evan Plaice En d'autres termes, "DTD HTML 2.0 Level 1" déclenche le mode quirks.
luiscubal

Réponses:

42

Je pense que cela en vaut vraiment la peine , mais vous ne devriez jamais être un esclave de la validation - c'est un jeu de fou.

http://www.codinghorror.com/blog/2009/03/html-validation-does-it-matter.html

  1. Validez votre HTML. Sachez ce que signifie avoir un balisage HTML valide. Comprendre l'outillage. Plus d'informations sont toujours meilleures que moins d'informations. Pourquoi voler à l'aveugle?

  2. Personne ne se soucie de savoir si votre code HTML est valide. Excepté toi. Si tu veux. Ne croyez pas un instant que produire du code HTML parfaitement valide est plus important que de faire fonctionner votre site Web, de fournir des fonctionnalités qui enchantent vos utilisateurs ou d'accomplir votre travail.

Jeff Atwood
la source
3
Je dois appuyer ceci. J'ai rencontré beaucoup de problèmes avec les bibliothèques javascript qui peuvent être imputées à un code HTML non valide. Plusieurs formes imbriquées et des étiquettes illégalement fermées étant des auteurs majeurs. Comme Jeff dit, ne soyez pas esclave, mais ne vous plaignez pas lorsque jQuery ne fonctionne pas car votre page n'est pas valide au format HTML (XHTML, HTML 5 ou tout ce que vous choisissez en tant que type de document).
Gareth Farrington
@ Jeff Atwood: Je ne peux pas être plus d'accord quand vous dites "Tout le monde se fiche de la validité de votre code HTML. Sauf vous." Triste mais vrai, les clients s'en moquent vraiment.
Marco Demaio
@MarcoDemaio Pourquoi est-ce triste? En tant que client et utilisateur final, je suis plus préoccupé par le fait que le site fonctionne ou non sur tous les navigateurs (dont la plupart ne sont pas conformes aux normes au départ) que s'il est validé ou non. HTML valide n'a pas vraiment d'importance. Google, Facebook, Twitter, ce site, etc. Aucun site pertinent ne dispose d'un balisage valide. Pourquoi? Parce que le HTML valide ne fait que gonfler la page et augmente vos coûts de bande passante.
NullUserException
La même chose vaut pour le balisage parfaitement en retrait. C'est encore plus inutile, c'est un gaspillage de bande passante à 100% et n'a aucune utilité pratique.
NullUserException
@NullUserException: Je pense que c'est triste car j'ai découvert que les sites Web validés rendaient généralement beaucoup mieux sur tous les navigateurs. Voir mon commentaire sur la réponse d'Alan: webmasters.stackexchange.com/a/373/1429 Valider un site Web m'a été enregistré et me permet encore de gagner un temps considérable. À propos du balisage en retrait parfait, je n'ai jamais entendu parler de spécifications à ce sujet. Je voudrais peut-être indenter par 3 espaces, et vous pourriez vouloir indenter par un.
Marco Demaio
32

Je considère le HTML valide comme un objectif louable, mais je ne le vois pas comme le but ultime de la création de bons sites Web.

Le truc, c'est que votre balisage peut être parfaitement valide, mais il peut ne pas être sémantique - par exemple, en utilisant des tableaux pour la mise en page ou la navigation. Il y a une différence entre un code valide et un code sémantique.

Sur une autre note, si vous utilisez de la publicité ou des scripts externes, ils peuvent insérer leur propre balisage, ce qui peut vraiment gâcher le vôtre.

Grant Palin
la source
22

Je pense que cela en vaut la peine, car j'ai corrigé de nombreuses erreurs de balisage et de logique en recherchant une validation. C'est l'une de ces choses "nécessaires mais pas suffisantes". Un balisage valide, comme un code qui compile (ou extrait via JSlint) sans erreurs, avertissements et astuces, est une bonne première étape pour bien faire les choses.

Alan
la source
+1 totalement d'accord sur celui-ci. La validation des pages permet de gagner un temps considérable après l'exécution de JS et de bogues qui semblent si mystérieux et qui ne sont dus qu'à une balise HTML usée ou non fermée. De plus, avec des outils tels que l'addon FF Html Validator [ addons.mozilla.org/en-US/firefox/addon/html-validator/], il est préférable de valider toutes vos pages localement.
Marco Demaio
9

Le gros avantage du code HTML valide est que votre page est alors plus accessible aux éléments autres que les "principaux navigateurs". Tous les "principaux navigateurs" ont des solutions de contournement sans fin pour traiter tous les fichiers indésirables invalides qui peuplent le WWW. Cependant, s’en tenir au code HTML valide aide, par exemple, si une personne utilise un navigateur pour les malvoyants, ou accède à vos pages hors ligne, etc.


la source
8

La validation en elle-même n'est pas si critique, car peu de navigateurs sont 100% conformes et les spécifications ne sont pas claires sur la façon d'interpréter les règles.

Cependant, être valide, le HTML vous positionne mieux pour adapter et améliorer votre site. Au fur et à mesure que les normes évoluent, elles migrent généralement vers l'avant et si votre nouveau site est valide, la mise à jour pour prendre en charge la dernière version devrait être plus facile.

En bas, être valide permet de rester au top de la forme et d’être aussi compatible que possible avec le plus large public.

MrChrister
la source
4

La meilleure approche consiste à savoir quel code HTML non valide est incorrect et quel code HTML non valide importe peu.

Par exemple, oublier de fermer une <div>balise est très mauvais , car votre mise en page va certainement bousiller dans un ou plusieurs navigateurs.

Cependant, l’utilisation <br>au lieu de <br />XHTML n’importe pas - tous les navigateurs interpréteront les deux comme un saut de ligne sans problème. L'utilisation de l' targetattribut sur les liens n'est pas valide, mais le pire des cas est que le navigateur n'ouvre pas le lien dans une nouvelle fenêtre.

Chèvre mécontente
la source
targetest valide en XHTML de transition, et seuls les masochistes utilisent strict. L'omission de la barre oblique fermante rendra votre page XML non valide, ce qui risquerait de créer de la confusion pour les séparateurs d'écran. Si vous choisissez d'utiliser XHTML, votre page doit être au moins valide en XML.
Tgr
1
@Tgr: Drôle, je pensais que les masochistes préféraient le mode non standard. Même les doctypes de transition ont leurs problèmes (utilisation du mode "presque standard", etc.)
DisgruntledGoat le
1
Je dirais que Strict est essentiel - pourquoi choisir de courir le risque du code obsolète et du mode quirks. L'utilisation de Strict est gratuite, sauf que cela vous encourage à en savoir plus sur votre version de balisage préférée.
CJM
3

Lors de l'exécution du validateur, vous devez examiner les erreurs qu'il vous produit cas par cas. La validation est-elle importante? Pour moi, oui, c'est très important. Mais est-ce une exigence? Non.

Des choses comme utiliser le même ID plusieurs fois (au lieu d'une classe), placer des éléments de niveau bloc dans des éléments de niveau ligne (généralement, ces éléments ne correspondent pas non plus de manière sémantique), des attributs alt manquants sur les images (accessibilité médiocre pour les personnes ayant une déficience ), sont tous importants. Des choses comme les attributs inconnus sur les tags ne sont PAS importants. Du tout. Les frameworks Javascript tels que Dojo ou cette horrible barre de réseaux sociaux Meebo utilisent des attributs personnalisés comme crochets, et la spécification HTML indique que ceux-ci sont autorisés et que tout attribut inconnu doit être ignoré. Le validateur ne les ignore pas, cependant, il génère des erreurs. Ces erreurs peuvent être ignorées.

Lors de la validation, ne supposez pas simplement que si vous avez des erreurs, vous le faites mal. La sémantique est beaucoup plus importante et il se trouve que le code HTML valide est plus souvent que pas le résultat naturel d'une sémantique correcte.

Bryson
la source
Je suis d'accord - validez votre page Web, mais dans certaines circonstances, vous pouvez choisir d'ignorer les avertissements, aussi longtemps que vous savez pourquoi ils se trouvent là
Casebash
3

Une des raisons pour tester votre site pour le code HTML valide est qu’il garantit que les robots des moteurs de recherche seront en mesure d’indexer et de déterminer la signification de vos pages. S'ils ne peuvent pas le faire en raison d'un code HTML mal formé (que les principaux navigateurs peuvent utiliser pour des raisons historiques), vous risquez de limiter le classement de votre moteur de recherche.

Il a également été spéculé sur le fait que, si les principaux moteurs de recherche gèrent correctement le code HTML malformé, ils pourraient également attribuer des "points" de qualité à la qualité de la page, ce qui affecterait davantage votre capacité à obtenir le classement que votre contenu mérite.

JasonBirch
la source
2
Google a déclaré catégoriquement que le code HTML non valide n'a aucun effet sur les classements. Cependant, je peux voir le cas où HTML est si mal formé que le contenu réel de la page ne peut pas être lu par des araignées - bien que dans ce cas, il est presque certain que les navigateurs commenceraient à présenter des problèmes de rendu.
DisgruntledGoat
@DisgruntledGoat Vous avez raison, voici une référence pour cela: youtube.com/watch?v=FPBACTS-tyg
JasonBirch
@DisgruntledGoat Évidemment ... Google lui-même regorge de code HTML non valide, et je me souviens qu'ils ont dit ne pas s'en soucier et qu'il est bon d'avoir un code HTML non valide si cela signifie des temps de chargement plus rapides.
NullUserException
3

Je ne pense vraiment plus que ça compte. J'étais un esclave de la validation, maintenant je la vérifie rarement. Peut-être me suis-je épuisé de m'assurer que mon site est valide, ou peut-être que je m'en foutais plus parce que personne d'autre ne le ferait. Je peux vous garantir que 99,9% de nos visiteurs ne savent même pas ce que c'est et se moquent d'eux. Le logiciel de navigation de demain pourrait peut-être, mais quand ce jour viendra, je m'en inquiéterai alors


la source
2

La validation est utile car elle peut vous aider à détecter certaines erreurs difficiles à détecter telles que

<input name=foo value=<?php echo htmlspecialchars($_GET['foo']); ?> />

comportement imprévisible du navigateur (par exemple, l’insertion d’éléments de bloc dans un afichier peut parfois casser de manière laide dans Firefox).

Tgr
la source
2

Personne n'a encore mentionné le fait qu'un code HTML non valide peut entraîner des temps de rendu plus lents lorsque le navigateur tente de comprendre le code HTML non standard lors de l'affichage.

BradB
la source
Je découragerais ceci si je le pouvais. Je doute fort que cela ait un effet observable; Je serais plus préoccupé par les balises valides gonflant la page et nécessitant plus de temps de chargement (surtout sur les connexions lentes / mobiles).
NullUserException
@NullUserExceptions: Je ne pense pas que l'argument avancé par BradB mérite un -1. Peut-être difficile à prouver, mais un navigateur qui doit trier et réparer à l'intérieur d'un désordre HTML pourrait nécessiter un peu plus qu'une page HTML valide bien formatée sans erreur. Pourquoi ne fournissez-vous pas une réponse à cette question en nous montrant un bon exemple de page trop gonflée en raison d'un abus de validation HTML. Je ne vois pas comment une page HTML valide pourrait être aussi surpeuplée par rapport à la même page contenant du code HTML non valide.
Marco Demaio
1

il n'y a pas d'inconvénient à avoir du code HTML valide. Il y a une raison pour laquelle il existe une spécification en premier lieu et pourquoi beaucoup d'efforts sont déployés dans la spécification pour définir comment les choses devraient fonctionner.

En gros, tout ce que vous gagnez est de répondre aux spécifications. ce qui signifie que les programmes écrits pour lire le code HTML (navigateurs, bots) ne peuvent pas vous reprocher de ne pas respecter les spécifications en cas de problème. et certains de ces programmes vous donnent des extrapoints (meilleur classement dans les moteurs de recherche si le bot indique "respecte les spécifications"). Si vous répondez aux spécifications, vous serez moins pris au dépourvu si certains navigateurs ne rendent pas le code HTML défectueux comme vous le pensez.

alors, répondre aux spécifications et écrire du code HTML valide est bon pour vous, sans aucun inconvénient.

Akira
la source
Hum, quels moteurs de recherche obtenez-vous un meilleur classement si vous répondez aux spécifications?
2
L'inconvénient serait le temps de développement supplémentaire que vous passerez à s'assurer que tout votre code respecte les spécifications. Bien que ce coût soit généralement minime, il convient de le traiter comme un inconvénient.
chatche
@kinopiko: S'il en existe, ce ne sont pas les principaux (Google, Yahoo, Bing, Ask). Avoir un gâchis complet de code que même un développeur web expérimenté (humain) ne peut pas lire vous gênera probablement, mais l'utilisation de certains attributs "illégaux" n'a aucun effet sur les classements.
DisgruntledGoat
C'est le problème avec la terminologie de validation. Vous êtes soit valide ou non. Il n'y a pas de diplômes. Le HTML cassé (balises non fermées, balises structurelles mal placées / manquantes, etc.) n’est pas valide et nuit au référencement, mais la plupart des gens ne parlent pas de cela quand ils disent "validation". Un novice peut vouloir utiliser un validateur pour s’assurer qu’il n’a commis aucune de ces erreurs, mais un développeur professionnel n’en a pas besoin puisque son code est déjà "assez valide" pour ainsi dire en termes de référencement.
Lèse majesté
1

Certaines erreurs de validation HTML peuvent entraîner des problèmes de mise en page non évidents (par exemple, des balises imbriquées / non correctement fouillées), des bugs JavaScript (par exemple, l'utilisation de idplusieurs fois) et des problèmes pour certains utilisateurs (par exemple, l'inclusion d'un altattribut significatif ou vide dans les images).

Si toutes nos pages sont validées, c’est une vérification automatique intéressante que vous pouvez effectuer pour éliminer les sources d’erreurs. Si vous laissez des erreurs de validation parce que vous savez qu'elles ne causent aucun préjudice, votre vérification n'est plus automatisée: vous devez examiner chaque erreur et vous rappeler que tout va bien. Personnellement, je le préfère lorsque les ordinateurs réduisent la quantité de travail que je dois faire plutôt que de l’augmenter.

Paul D. Waite
la source
1

Un point dont personne n'a parlé est les développements futurs du navigateur. Bien que tous les navigateurs actuels gèrent relativement bien les balises non valides, ce n'est peut-être pas toujours le cas.

À l'avenir, les fabricants de navigateurs veilleront à ce que leurs navigateurs respectent les normes HTML / XHTML. C'est donc ce que les développeurs Web devraient viser également. Le fait qu’un bit de balisage non valide fonctionne maintenant ne garantit pas son efficacité dans les futurs navigateurs.

Loftx
la source
Je dois dire que je me demande si c'est vrai.
2
Oui, je ne vois aucun navigateur abandonner le support du <font>tag ou de son équivalent.
DisgruntledGoat
Je ne vois pas quel est le problème - la prise en charge des balises déconseillées ou non valides pourrait changer à l'avenir. Si vous surveillez l’implémentation imparfaite de (X) HTML dans la plupart des navigateurs, vous serez sûrement plus en sécurité si vous tenez un balisage valide. Il n'y a pas de coût associé à un balisage valide, autre que de simplement savoir ce que vous faites.
CJM
1

La validité vous aide à éviter les incompatibilités et à maintenir le code maintenable. Les navigateurs récupèrent les erreurs de marquage, mais parfois de manière très peu intuitive.


  • Basé sur la DTD (HTML4, XHTML1 @ W3C) - Ne vaut peut-être pas la peine. La DTD est primitive et ne peut par exemple pas vérifier la validité de la plupart des attributs. Vous aurez surtout du mal à comprendre les erreurs concernant les entités et l’imbrication.

  • Validateur HTML5 - Oui . Absolument. HTML5 est plus pragmatique et permet certaines constructions inoffensives qui étaient autrefois des erreurs. Le validateur d'OTOH Henri est beaucoup plus complet et mieux à même de découvrir de vrais problèmes.


La validité du code généré par JS peut avoir son importance, car les navigateurs fonctionnent sous DOM, quelle que soit la manière dont il a été créé. Si vous utilisez document.write(), alors vous devez même vous assurer que la syntaxe est correcte (il utilise le même analyseur que la source de la page).

Kornel
la source
0

Google et Bing n’utilisent pas, n’ont jamais utilisé et n’utiliseront jamais la validation CSS ou HTML comme facteur de classement.

La majorité des sites Web contiennent des dizaines à des centaines d'erreurs et vous n'avez pas à vous en soucier, car tous les moteurs de recherche se préoccupent de la façon dont la page est rendue. Assurez-vous simplement que votre site Web s'affiche correctement dans tous les principaux navigateurs et Fetch de Google .

Simon Hayter
la source