it-swarm.cn

HTML验证:值得吗?

确保所有页面验证与具有无效HTML但与所有主流浏览器相关的HTML相比有哪些优点和缺点(如果有的话)?

此外,在Javascript执行之后是否拥有有效的HTML同样重要?

52
Thomas Bonini

我认为肯定值得做,但你永远不应该成为验证的奴隶 - 这是一个傻瓜的游戏。

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

  1. 验证您的HTML。了解拥有有效HTML标记的含义。了解工具。更多信息总是比信息更少。为何飞盲?

  2. 没有人关心您的HTML是否有效。除了你。如果你想。不要认为生成完全有效的HTML比运行您的网站更重要,提供令用户高兴或完成工作的功能。

42
Jeff Atwood

我认为有效的HTML是一个有价值的目标,但并不认为它是构建优秀网站的全部和最终目标。

诀窍是,你的标记可能完全有效,但它可能不是语义 - 例如使用表格进行布局或导航。有效代码和语义代码之间存在差异。

另一方面,如果你使用广告或外部脚本,他们可能会插入自己的标记,这有可能真正搞乱你自己的标记。

32
Grant Palin

我认为这是值得的,因为我通过寻求验证发现了许多标记和逻辑错误。这是“必要但不充分”的事情之一。有效的标记,如编译(或通过JSlint检出)没有错误,警告和提示的代码,是正确的标记的良好的第一步。

22
Alan

有效HTML的一大优点是,您的页面更容易被“主要浏览器”访问。所有“主流浏览器”都有无穷无尽的解决方法来处理填充WWW的所有无效垃圾。但是,坚持使用有效的HTML有助于,例如,有人为视障人士使用浏览器,或离线访问您的网页等。

9
delete

验证本身并不是那么重要,因为很少有浏览器100%兼容,并且规范不是100%明确如何解释规则。

但是,有效的HTML可以让您更好地适应和改善您的网站。随着标准的发展,它们通常会向前迁移,如果您的新站点有效,那么更新以支持最新的东西应该更容易。

最重要的是,有效性可以让您更轻松地掌握游戏并尽可能与最广泛的受众保持兼容。

8
MrChrister

最好的方法是了解哪个无效的HTML是坏的,哪个无效的HTML无关紧要。

例如,忘记关闭<div>标签是非常糟糕,因为您的布局几乎肯定会在一个或多个浏览器中搞砸。

但是,在XHTML中使用<br>而不是<br />并不重要 - 所有浏览器都会将两者都解释为换行符而不会出现问题。在链接上使用target属性无效,但最糟糕的情况是浏览器不会在新窗口中打开链接。

4
DisgruntledGoat

测试您的网站的有效HTML的一个原因是它确保搜索引擎蜘蛛能够完全索引和确定您的网页的含义。如果由于格式错误的HTML(主要浏览器可能因历史原因而无法解决)而无法执行此操作,那么您可能会限制搜索引擎排名。

还有人猜测,虽然主要的搜索引擎在处理格式错误的HTML方面做得很好,但他们也可能会为有效性分配页面质量“分数”,这进一步影响了你的内容应得的排名能力。

3
JasonBirch

我真的认为不再重要了。我曾经是验证的奴隶,现在我很少检查它。也许我因为确保我的网站有效而烧坏了,或者我可能不再关心因为没有其他人会这样做。我可以保证,99.9%的访问者甚至不知道它是什么,甚至不关心它们。未来的浏览器软件可能,但是当那一天到来时,我会担心它。

3
Ben

运行验证程序时,您需要根据具体情况检查它给出的错误。验证重要吗?对我来说,是的,这非常重要。但这是一个要求吗?没有。

比如使用相同的ID多次(而不是类),将块级元素放在内联级元素中(通常这些元素在语义上也不合适),图像上缺少alt属性(对于受损的可访问性差) ),都很重要。标签上的未知属性之类的东西  重要。完全没有。像Dojo这样的Javascript框架或者糟糕的Meebo社交媒体栏使用自定义属性作为钩子,HTML规范声明允许这些,并且任何未知属性都将被忽略。验证器不会忽略它们,但它会抛出错误。这些错误可以忽略。

验证时,不要只假设如果您有错误,那么您做错了。语义非常重要,而且恰好有效的HTML通常不是具有适当语义的自然结果。

3
Bryson

没有人提到的一点是,无效的HTML会导致渲染时间变慢,而浏览器在显示时会尝试理解非标准HTML。

2
BradB

验证很有用,因为它可以帮助您发现一些难以捕获的错误,例如

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

或者不可预知的浏览器行为(例如,将块元素放在a中有时会在Firefox中以丑陋的方式破坏)。

2
Tgr

一些HTML验证错误可能导致非显而易见的布局问题(例如错误嵌套/未关闭的标签),JavaScript错误(例如,多次使用id),以及某些用户的问题(例如,不包括有意义或空白alt图像上的属性)。

如果我们的所有页面都验证了,那么您可以采用Nice自动检查来排除错误来源。如果您因为知道它们没有造成任何伤害而留下一些验证错误,那么您的检查将不再自动化:您必须查看每个错误,并记住它没关系。就个人而言,当计算机减少我必须做的工作量而不是增加它时,我更喜欢它。

1
Paul D. Waite

没有人提到的一点是未来的浏览器开发。虽然今天所有的浏览器都能相对较好地处理无效标记,但情况可能并非总是如此。

未来的浏览器制造商将确保他们的浏览器符合HTML/XHTML标准,因此Web开发人员也应该这样做。仅仅因为一小部分无效标记现在无法保证它将在未来的浏览器中运行。

1
Loftx

有效性可帮助您避免不兼容性并有助于保持代码的可维护性。浏览器从标记错误中恢复,但有时以非常不直观的方式。


  • 基于DTD(HTML4,XHTML1 @ W3C) - 可能不值得。 DTD是原始的,并且例如不能检查大多数属性的有效性。您将很难理解有关实体和嵌套的错误。

  • HTML5验证器 - 。当然。 HTML5更实用,允许一些曾经是错误的无害构造。 OTOH Henri的验证器更加全面,更好地发现了真正的问题。


JS生成的代码的有效性可能很重要,因为浏览器在DOM上运行,无论它是如何创建的。如果您使用document.write(),那么您甚至必须注意使语法正确(它通过与页面源相同的解析器)。

1
Kornel

即使您的HTML适用于所有主流浏览器,它仍然值得一试,因为它有时会导致googlebot等搜索引擎抓取工具出现问题。例如看到这个:

http://www.codeproject.com/KB/server-management/Google_Indexing_Problem.aspx

1
Mee

有效的html没有缺点。有一个原因是为什么首先有一个规范,为什么要在规范中加入很多努力来定义事情应该如何运作。

基本上,你获得的只是满足规格。这反过来意味着,编写为阅读html(浏览器,机器人)的程序不能责怪你如果出现问题就不符合规范。其中一些程序为您提供了额外的点(如果机器人报告“符合规范”,搜索引擎的排名会更高)。如果你符合这些规范,如果某些浏览器没有按照你认为应该的方式渲染破解的html,那么你将会更加惊讶。

所以,要符合规范并编写有效的HTML对你有好处,没有任何缺点。

1
akira

Google和Bing不会,也绝不会使用CSS或HTML验证作为排名因素。

大多数网站都有数十到数百个错误,您无需担心它们,因为所有搜索引擎都关心页面呈现的方式。只需确保您的网站在所有主流浏览器中正确呈现并且 Google的Fetch

0
Simon Hayter