markup - Est-il acceptable pour le XHTML invalide?

Translate

J'ai remarqué que beaucoup de sites, SO inclus, utilisent XHTML comme langage de balisage et ne parviennent pas à adhérer aux spécifications. En parcourant simplement la source pour SO, il manque des balises de fermeture pour les paragraphes, des éléments non valides, etc.

Les outils (et les développeurs) devraient-ils donc utiliser le doctype XHTML s'ils doivent produire un balisage invalide? Et les navigateurs devraient-ils être plus fermes dans leur acceptation d'une faible marge bénéficiaire?

Et avant que quiconque crie hypocrite, mon blog a un élément de balisage invalide impliquant le captha (ou il l'a fait la dernière fois que j'ai vérifié) qui consiste à styliser la balise noscript.

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

Il y ade nombreuses raisonspour utiliser un balisage valide. Mon préféré est qu'il vous permet d'utiliser la validation comme une forme de test de régression, empêchant l'équivalent de balisage de "delta rot" de conduire à de réels problèmes de rendu une fois que les erreurs atteignent une masse critique. Et vraiment, il est tout simplement bâclé de permettre aux erreurs «paresseuses» comme les fautes de frappe et les balises mal imbriquées / non fermées de s'accumuler. Un balisage valide est une façon d'identifierprogrammeurs passionnés.

Il y a aussi le problème du débogage: un balisage valide vous donne également une base de référence stable à partir de laquelle travailler sur les inévitables problèmes de compatibilité entre navigateurs. Aucun développeur Web qui apprécie son temps ne devrait commencer à déboguer les problèmes de compatibilité du navigateur sans d'abord s'assurer que le balisage est au moinssyntaxiquementvalide - et tout autre balisage non valide doit avoir une bonne raison d'être là.

(Incidemment, stackoverflow.com échoue à ces deux tests et suggestions pour résoudre les problèmesétaient diminué.)

Cela dit, pour répondre à votre question spécifique, il ne vaut probablement pas la peine d'utiliser l'un des doctypes XHTML à moins que vous ne prévoyiez de produire des fichiers valides (ou àmoinsbien formé). Les principaux avantages de XHTML sont dérivés du fait que XHTML est XML, ce qui lui permet d'être traité et transformé par des outils et des technologies qui fonctionnent avec XML. Si vous ne prévoyez pas de rendre votre XML XHTML bien formé, il n'y a pas grand intérêt à choisir ce doctype. La dernière spécification HTML 4 fera probablement tout ce dont vous avez besoin, et elle est beaucoup plus indulgente.

La source
Translate

Nous devons toujours essayer de le faire valider selon les normes. Nous nous assurerons que le site Web s'affichera et fonctionnera correctement sur les navigateurs actuels ET futurs.

La source
Translate

Je ne pense pas que, si vous spécifiez un doctype, il y ait une raison de ne pas adhérer à ce doctype.

L'utilisation de XHTML facilite la détection automatisée des erreurs, chaque modification peut être automatiquement vérifiée pour un balisage non valide. Cela évite les erreurs, en particulier lors de l'utilisation de contenu généré automatiquement. Il est vraiment facile pour un développeur Web utilisant un moteur de création de modèles (JSP, ASP.NET StringTemplate, etc.) de copier / coller une balise de fermeture trop ou trop peu. Lorsque c'est votre seule erreur, elle peut être détectée et corrigée immédiatement. J'ai travaillé une fois pour un site qui avait 165 erreurs de validation par page, dont 2 ou 3 étaient de vrais bogues. Celles-ci étaient difficiles à trouver dans le fouillis d'autres erreurs. Une validation automatique aurait évité ces erreurs à la source.

Inutile de dire que choisir un standard et s'y tenir ne peut jamais bénéficier de l'interopérabilité avec d'autres systèmes (grattoirs d'écran, lecteurs d'écran, moteurs de recherche) et je n'ai jamais rencontré de situation où une solution sémantique valide XHTML avec CSS n'était pas possible pour tous principaux navigateurs.

Évidemment, lorsque vous travaillez avec des systèmes complexes, il n'est pas toujours possible de s'en tenir à votre doctype, mais cela est principalement dû à une mauvaise communication entre les différentes équipes développant différentes parties de ces systèmes ou, très probablement, des systèmes hérités. Dans le dernier cas, il est probablement préférable d'isoler ces cas et de modifier votre doctype en conséquence.

Il est bon d'être pragmatique et de ne pas adhérer au XHTML simplement parce que quelqu'un l'a dit, quels que soient les coûts, mais avec les connaissances actuelles sur les CSS et les navigateurs, les outils de test et de validation, la plupart du temps, les avantages sont bien supérieurs aux coûts.

La source
Translate

Vous pouvez dire que j'ai un OCD sur la validité XHTML. Je trouve que la plupart des problèmes avec le code non valide viennent des programmeurs ne connaissant pas la différence entre HTML et XHTML. J'ai écrit du XHTML et du CSS 100% valides ou depuis un moment maintenant et je n'ai jamais eu de problèmes de rendu majeurs avec d'autres navigateurs. Si vous gardez tout valide et n'essayez rien de trop exotique en matière de CSS, vous vous épargnerez une tonne de temps dans les correctifs.

La source
Translate

Je n'utiliserais pas du tout XHTML juste pour me sauver du stress philosophique. Ce n'est pas comme si tous les navigateurs le traitaient de toute façon comme XHTML.

Les navigateurs rejetteront un balisage médiocre si la page est envoyée en tant qu'application / xhtml + xml, mais ils le sont rarement. C'est bon.

Je serais plus préoccupé par des choses comme l'utilisation en ligne de CSS et de JavaScript avec Stack Overflow, simplement parce qu'elles rendent la maintenance plus difficile.

La source
Tom
Translate

Bien que je crois qu'il est important de rechercher du XHTML et du CSS valides, c'est souvent difficile à faire pour un certain nombre de raisons.

  • Tout d'abord, une partie du contenu peut être chargée via AJAX. Parfois, les fragments ne sont pas correctement insérés dans le DOM existant.
  • Le HTML que vous visualisez n'a peut-être pas tous été produit dans le même document. Par exemple, la page peut être constituée de composants ou de modèles, puis être réunie juste avant que le navigateur ne la rende. Ce n'est pas une excuse, mais vous ne pouvez pas supposer que le code HTML que vous voyez a été codé à la main en même temps.
  • Que faire si une partie du code généré par Markdown est invalide? Vous ne pouvez pas blâmer Stack Overflow de ne pas avoir produit de code valide.
  • Enfin, le but du DOCTYPE n'est pas simplement de dire "Hé, j'utilise du code valide", mais c'est aussi de donner au navigateur une idée de ce que vous essayez de faire afin qu'il puisse au moins se rapprocher de l'analyse correcte cette information.

Je ne pense pas que la plupart des développeurs spécifient un DOCTYPE et ne parviennent pas explicitement à y adhérer.

La source
Boyd Lee
Translate

alors que je suis d'accord avec le sentiment de "si ça rend bien alors ne vous inquiétez pas", cependant c'est bon pour suivre une norme, même si elle n'est peut-être pas entièrement prise en charge pour le moment. vous pouvez toujours utiliser Table pour la mise en page, mais ce n'est pas bon pour une raison.

La source
Translate

Non, vous ne devez pas utiliser XHTML si vous ne pouvez pas garantir une bonne formation et, en pratique, vous ne pouvez pas le garantir si vous n'utilisez pas le sérialiseur XML pour générer du balisage. Lissur la production de XML.

La bonne forme estlachose qui différencie XHTML du HTML. XHTML avec une erreur de balisage «juste une» cesse d'être XHTML.Il doit être parfait à chaque fois.

Si le site "XHTML" semble fonctionner avec des erreurs, c'est parce queles navigateurs ignorent le DOCTYPEet interpréter la page comme HTML.

VoirProxy XHTMLqui force l'interprétation des pages en XHTML. La plupart du tempsils échouent misérablement. C'est l'une des raisons pour lesquelles l'avenir de XHTML est incertain etpourquoi le développement du HTML a été repris.

La source
Translate

Ça dépend. J'avais çaproblème avec mon blogoù une vidéo YouTube a causé un XHTML invalide, mais le rendu est correct. D'un autre côté, j'ai un lien "XHTML valide" et une combinaison d'une revendication "XHTML valide" et d'un XHTML invalide n'est pas professionnelle.

Comme SO ne prétend pas être valide, je pense que c'est acceptable, mais personnellement si j'étais Jeff, je serais dérangé et j'essaierais de le réparer même si cela semble bien dans les navigateurs modernes, mais certaines personnes préfèrent simplement passer à autre chose et faire avancer les choses. au lieu de corriger des bogues inexistants.

La source
Translate

Tant que cela fonctionne dans IE, FF, Safari, (insérez un autre navigateur ici), vous devriez être d'accord. La validation n'est pas aussi importante que son rendu correct dans plusieurs navigateurs. Ce n'est pas parce qu'il est valide qu'il fonctionnera correctement dans IE, par exemple.

Exécutez Google Analytics ou similaire sur votre site et voyez quel type de navigateurs vos utilisateurs utilisent, puis jugez quels navigateurs vous devez le plus prendre en charge et vous inquiétez des moins importants lorsque vous avez le temps libre pour le faire.

La source
Translate

Je dis que si le rendu est correct, peu importe que ce soit un pixel parfait.

Il faut un certain temps pour qu'un site soit opérationnel comme vous le souhaitez, revenir en arrière et apporter des modifications va changer légèrement la façon dont la page s'affiche, alors vous devez corrigerceuxproblèmes.

Maintenant, je ne dis pas que vous devriez créer des pages Web bâclées, mais je ne vois aucune raison de réparer ce qui n'est pas cassé. Les navigateurs n'abandonneront pas la prise en charge de la correction d'erreurs dans un proche avenir.

La source
Translate

Je ne comprends pas pourquoi tout le monde se fait prendre à essayer de rendre leurs sites Web conformes à la norme alors que certains navigateurs ont encore des problèmes pour rendre correctement le code standard. Je suis dans la conception de sites Web depuis environ 10 ans et j'ai arrêté le double codage (lire: hacking css), et changer des trucs stupides juste pour que je puisse mettre un bouton sur mon site.

Je crois que l'utilisation d'un <div> vous rendra invalide malgré tout, et il sera un peu plus difficile de faire n'importe quel JavaScript / AJAX majeur sans lui.

La source
Translate

Il y a tellement de normes et elles sont si mal «appliquées» ou soutenues que je ne pense pas que cela compte. Ne vous méprenez pas, je pense qu'il devrait y avoir des normes, mais comme elles ne sont pas appliquées, personne ne les suit et c'est une énorme spirale descendante.

La source
Translate

Pour 99,999% des sites, cela n'a vraiment pas d'importance. La seule fois où je l'ai eu, j'ai exécuté l'entrée HTML via HTMLTidy pour la XHTML-ize, puis j'ai exécuté mon traitement dessus.

En gros, c'est le vieux axiome du programmeur: ne faire confiance à aucune entrée.

La source