与拥有可在所有主流浏览器上使用的无效HTML相比,确保所有页面均有效的优点和缺点(如果有)是什么?
另外,在执行Javascript之后拥有有效的HTML是否同样重要?
与拥有可在所有主流浏览器上使用的无效HTML相比,确保所有页面均有效的优点和缺点(如果有)是什么?
另外,在执行Javascript之后拥有有效的HTML是否同样重要?
Answers:
我认为这绝对是值得做的,但您永远不应成为验证的奴隶-这是一个傻瓜的游戏。
http://www.codinghorror.com/blog/2009/03/html-validation-does-it-matter.html
验证您的HTML。知道具有有效的HTML标记的含义。了解工具。多提供信息总是比少提供信息更好。为什么盲目飞?
没人关心您的HTML是否有效。除了你。如果你想。不要再想生产完全有效的HTML比运行网站,提供使用户满意的功能或完成工作更重要。
我认为这是值得的,因为我通过寻求验证捕获了许多标记和逻辑错误。这是那些“必要但不足”的事情之一。有效的标记(如可以编译(或通过JSlint检出)没有错误,警告和提示的代码)是正确解决问题的良好第一步。
有效HTML的最大优点是,您的页面将比“主要浏览器”更易于访问。所有“主流浏览器”都具有无穷无尽的解决方法来处理填充WWW的所有无效垃圾。但是,坚持使用有效的HTML会有所帮助,例如,如果某人正在使用视觉障碍者的浏览器,或者离线访问您的页面等。
最好的方法是了解哪些无效的HTML是有害的,哪些无效的HTML无关紧要。
例如,忘记关闭<div>
标签非常糟糕,因为您的布局几乎肯定会在一个或多个浏览器中搞乱。
但是,在XHTML中使用<br>
代替<br />
没关系-所有浏览器都会将两者都解释为换行符而没有问题。target
在链接上使用属性无效,但是最坏的情况是浏览器没有在新窗口中打开链接。
target
在过渡XHTML中有效,并且仅受虐狂使用严格。省略斜杠将使您的页面无效XML,这可能会使屏幕抓取器感到困惑。如果选择使用XHTML,则页面至少应为有效XML。
运行验证器时,您需要根据具体情况检查它给您带来的错误。验证重要吗?对我来说,这很重要。但这是一个要求吗?没有。
诸如多次使用相同的ID(而不是类),将块级元素放入内联级元素(通常这些元素在语义上也不适合这种方式),缺少图像的alt属性(残障人士的可访问性差)之类的事情),都很重要。诸如标签上的未知属性之类的东西并不重要。完全没有 诸如Dojo之类的Javascript框架或糟糕的Meebo社交媒体栏使用自定义属性作为钩子,HTML规范指出允许这些属性,并且任何未知属性都将被忽略。验证器不会忽略它们,但是会引发错误。这些错误可以忽略。
验证时,不要仅仅假设如果您有错误,那说明您做错了。语义在很大程度上更为重要,而且恰恰是发生这样的情况,即有效HTML通常不是拥有适当语义的自然结果。
测试您的网站是否为有效HTML的原因之一是,它确保搜索引擎蜘蛛将能够完全索引并确定页面的含义。如果他们由于HTML格式不正确而无法这样做(主流浏览器可能会因为历史原因而无法正常运行),则可能会限制搜索引擎排名。
也有人猜测,尽管主要的搜索引擎在处理格式错误的HTML方面表现出色,但它们也可能会为有效性分配页面质量“点”,从而进一步影响您对内容应具有的最高排名。
我真的认为这不再重要了。我曾经是验证的奴隶,现在很少检查它。也许我因为确保自己的网站有效而精疲力尽,或者也许我只是不在乎,因为没有其他人会这样做。我可以保证99.9%的访客甚至不知道这是什么,甚至不在乎。将来可能会使用浏览器软件,但是那天到来时,我会担心它。
还没有人提到,无效的HTML可能会导致渲染时间变慢,而浏览器试图在显示时理解非标准的HTML。
有有效的html没有缺点。有一个理由为什么要首先制定规范,以及为什么要在规范中投入大量精力来定义事物的工作方式。
基本上,您所获得的只是满足规格要求。这反过来意味着,如果出现问题,则读取html的程序(浏览器,自动程序)不能怪罪您未达到规范。并且其中一些程序会给您带来额外的收益(如果漫游器报告“符合规格”,则在搜索引擎中的排名会更高)。如果您符合规范,那么如果某些浏览器未按照您认为的方式呈现损坏的html,您将大为惊讶。
因此,符合规格并编写有效的html对您有好处,完全没有缺点。
没有人提到的一点是未来浏览器的发展。尽管当今所有的浏览器都可以很好地处理无效标记,但情况并非总是如此。
将来,浏览器制造商将确保其浏览器符合HTML / XHTML标准,因此这也是Web开发人员应该追求的目标。仅仅因为无效标记的特定部分现在可以正常工作,并不保证它将在将来的浏览器中正常工作。
<font>
标签或其标签。
有效性可以帮助您避免不兼容性,并有助于保持代码的可维护性。浏览器从标记错误中恢复,但是有时以非常不直观的方式恢复。
基于DTD(HTML4,XHTML1 @ W3C)—可能不值得。DTD是原始的,例如,无法检查大多数属性的有效性。您几乎会很难理解有关实体和嵌套的错误。
HTML5验证程序 - 是。绝对是 HTML5更加实用,并且允许使用一些曾经是错误的无害构造。OTOH Henri的验证器在发现实际问题方面更加全面和出色。
JS生成的代码的有效性可能很重要,因为浏览器在DOM上运行,而不管其创建方式如何。如果您使用document.write()
,那么您甚至还必须注意确保语法正确(它与页面源通过相同的解析器)。
即使您的HTML在所有主要的浏览器上都可以使用,仍然值得这样做,因为它有时可能会导致诸如googlebot之类的搜索引擎抓取工具出现问题。例如查看此:
http://www.codeproject.com/KB/server-management/Google_Indexing_Problem.aspx
Google和Bing不会,也不会,也永远不会使用CSS或HTML验证作为排名因素。
大多数网站都有数十到数百个错误,您不必担心,因为所有搜索引擎都在乎页面的呈现方式。只要确保您的网站在所有主要浏览器和Google的Fetch中都能正确显示即可。