为什么浏览器对HTML的严格要求不够?

为什么浏览器对HTML的严格要求不够?

为了避免基于观点的答案,这种类型的问题需要基于权威参考资料和可信和/或官方来源的答案。

以下摘录来自W3C验证器帮助与FAQ,涉及第一个问题“为什么浏览器首先接受无效的HTML?”以及其他相关问题。

关于Markup的内容

大多数在万维网上的页面都是用计算机语言(如HTML)编写的,这些语言允许Web作者对文本进行结构化、添加多媒体内容,并指定结果的外观或样式。

就像每种语言一样,这些语言都有自己的语法、词汇和语法规则,使用这些计算机语言编写的每个文档都应遵循这些规则。 (X)HTML语言,包括XHTML 1.1在内的所有版本,都使用可机器读取的语法规则,称为DTDs,这是从SGML继承而来的机制。

然而,就像自然语言中的文本可能包含拼写或语法错误一样,使用Markup语言的文档也可能(由于各种原因)不遵循这些规则。

[...]

概念

计算机编程的重要准则之一是:“在你所生产的东西上保守,在你所接受的东西上开明。”

浏览器通过接受Web页面并尝试显示它们来遵循这个准则的后半部分,即使它们不是合法的HTML。通常,这意味着浏览器将尝试对您可能意味着什么进行有根据的猜测。问题在于,不同的浏览器(甚至是同一浏览器的不同版本)会对相同的非法结构做出不同的猜测;更糟糕的是,如果您的HTML实在太过异常,浏览器可能会变得无可救药地困惑,并产生混乱的结果,甚至崩溃。

这就是为什么您希望遵循准则的前半部分,确保您的页面是合法的HTML。

[...]

有效性可能并不意味着质量,而无效性也不一定意味着质量差

一个有效的网页未必是好的网页,但是一个无效的网页很难成为好的网页。

因此,W3C标记验证器说某个页面通过验证并不意味着W3C认为它是一个好的页面。这只意味着一个工具(不一定没有缺陷)已经发现该页面符合一组特定的规则。不多不少。这也是为什么“有效…”图标不应被视为“W3C质量认证”的原因。

意外的浏览器行为可能意味着它们实际上不接受无效标记

尽管现代Web浏览器越来越擅长解析最糟糕的HTML“标签汤”,但某些错误并不总是能够得到优雅地捕获。不同平台上的不同软件通常无法以类似的方式处理错误,这使得在应用样式或布局时极其困难。

然而,使用标准、互操作的标记和样式表则更有可能使页面在各个平台和用户代理中得到一致的处理。

[...]

兼容性问题

检查网页在多个现代浏览器中的“正常显示”可能是确保该页面今天“工作”的合理保险,但这并不能保证它明天仍然能够工作。

过去,许多作者依赖于Netscape 1.1的怪癖,结果他们的页面在Netscape 2.0中完全空白。虽然最初Internet Explorer试图与Netscape兼容,但在后来的版本中,它也向标准遵从方向发展。

[...]

过度依赖第三方工具

对于这个问题的答案是,标记语言只不过是数据格式而已。因此,一个网站本身并没有任何外观!只有当它被浏览器呈现时才会呈现出视觉效果。

实际上,不同的浏览器可以并且确实会以非常不同的方式显示同一页面。这是故意的,并不意味着任何浏览器错误。有时用于描述这种情况的术语是WYSINWOG - What You See Is Not What Others Get(除非巧合)。这确实是网络的主要优势之一,例如,视力受损的用户可以选择非常大的字体或文本转语音,而无需出版商费力准备单独的版本。

相关推荐

vivo手機突冒煙爆炸機身全毀 女機主拍片上抖音被刪封帳號
365英国上市网正规吗

vivo手機突冒煙爆炸機身全毀 女機主拍片上抖音被刪封帳號

📅 10-02 👁️ 744
4 款 PDF 阅读编辑软件
365彩票最新版app下载

4 款 PDF 阅读编辑软件

📅 07-02 👁️ 8346
宝可梦图鉴
365bet亚洲版登陆首页

宝可梦图鉴

📅 08-08 👁️ 265