W3C验证重要吗?

6

可能是重复问题:
完成工作时,W3C XHTML/CSS验证有多重要?

我从很多来源了解到验证,大多数人都会说始终验证您的网页。验证您的页面非常重要。

我理解这个概念。但是我的网站没有“验证”,但它可以在所有主要浏览器中运行,不会在这些浏览器中产生错误,并且在所有浏览器中看起来都正常。

这是我的一个错误示例:

Error Line 38, Column 28: document type does not allow element "h3" here

var $jsuccessmessage = "<h3>We will be in contact soon. </h3>"; // success mess…

The element named above was found in a context where it is not allowed. This
could mean that you have incorrectly nested elements -- such as a "style"
element in the "body" section instead of inside "head" -- or two elements
that overlap (which is not allowed).

所以我问,纠正这些错误并尽力生成完全验证的代码有多重要?

注意:我正在使用XHTML 1.0 Transitional作为我的文档类型。

4个回答

22

正确的标记非常重要。仅因为一些无效的标记在您关心的所有当前版本的浏览器中有效,这并不意味着它将在将来的版本中继续有效。只要浏览器市场存在竞争,浏览器 tend 来趋近于标准,非标准的 HTML 有更高的失败风险。

遵循标准有助于未来证明您的工作,并帮助您养成良好的习惯。

考虑一下还在使用IE6的大型组织的数量(是的,6)。他们为什么固守IE6?他们受此束缚是因为他们的一套关键应用程序只能在IE6上运行,因为存在非标准的HTML、CSS、JavaScript、ActiveX等。这些可怜人被困在一堆古老且不稳定的应用程序中,无法更新而不进行完全重写。如果他们一开始就遵循标准进行构建(通过hack和补丁来解决永远存在的非标准行为),那么逐步前进将更加容易。

您构建的所有非标准都会锚定您在现在,并在下个月使您陷入过去。在冲浪时没有理由穿混凝土靴子,您的客户也没有理由这样做。


基本上是最后一句话。 - BoltClock
我完全同意:“坚持标准可以帮助您未来证明您的工作,并且它可以帮助您养成良好的习惯。” - paulsm4
不再正确。HTML5 定义了一个解析算法,因此所有符合规范的浏览器都会以完全相同的方式呈现无效标记。 - mgol
@m_gol,现在我们只需要等待所有浏览器(过去、现在、未来、嵌入其他程序中的浏览器等)都完全符合指定的解析算法,这样我们就可以继续编写错误的HTML了吗? - mu is too short
@muistooshort 我只是描述了趋势。一切都取决于您的网站目标,但所有当前的浏览器(包括IE10+)都符合HTML5标准,而IE9在这方面只有轻微的错误。 - mgol

2
我在阅读Steve Saunders关于高性能网站的书时,他提到了许多违反W3C验证器但可以加速页面并提供更好用户体验的技巧和诀窍。更好的用户体验将带给我更好的收益,因此作为业主,我希望有更好的用户体验。另一方面,不兼容、标准或最佳实践相反的系统需要更多的维护和关注。所以作为开发者,我希望有一个符合标准的页面。明智地选择你的立场,你会找到一个折中的方法。请不要认为我的评论是标准兼容页面提供了较差的用户体验。就像他们说的那样,没有银弹。我不认识他们,但他们似乎是正确的。

让我补充一下你的论点:有时候你不能严格遵守标准并满足客户(或雇主)的要求。顾客肯定是第一位的。但是偏离标准应该始终是“最后的手段”(依我之见)。而且,我对任何声称“增强用户体验”的“技巧”都非常怀疑。在一个平台上有效的“技巧”可能会在另外三个平台上造成问题... - paulsm4
@paulsm4,让我补充一下你的论点。是的,有时候你必须在遵守其他事情之间进行权衡。我提到Steve Suanders的名字是因为他是一个专家,并且他所说的也是我的经验。我自己讨厌肮脏的标记,但我在一个域上运行它,所有的工作都是我完成的。但是没有人关心a)因为它可以在大多数平台上运行,而不是所有平台b)它在周末按时交付c)如果不是非常有用,它是有用的,并且正在发挥其作用。正如我所说,没有银弹。 - Kumar

1

尽可能使用W3C约定,这些约定将是最具跨浏览器兼容性的。 话虽如此,并非所有浏览器都完全正确地实现了W3C标准。 您会发现,您必须打破合规性以调整这些怪癖。 随着主要罪魁祸首Internet Explorer更加接受标准,情况并不像过去那么糟糕。


0

验证的重要性是个人观点问题。网站不需要遵守W3C标准才能在各种浏览器上运行。

这有点像开车,有些人不遵守交通规则却逃脱了惩罚。最终他们会受到惩罚。验证也是如此;无效代码的风险包括糟糕的SEO表现、未来的浏览器不兼容等。

拥有有效的代码只是“正确的事情”,并且得到大多数我认识的开发者的鼓励。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接