[译]HTML验证的价值探讨

[译]HTML验证的价值探讨

作者:Nicholas C. Zakas

原文:http://www.nczonline.net/blog/2010/08/17/the-value-of-html-validation/

这篇文章我已经酝酿了很久,期间还拜读了 Chris Heilmann 关于 Remy Sharp’s site这篇大作。我和Chris曾就这个话题多次交换意见,最终我们彼此的观点都有所改变,接受了一些过去无法接受的意见。我曾经在公开的、私下的各种场合直言不讳地表示过,目前的HTML验证状况对我来说纯粹是浮云。要了解我的看法,你需要先明白HTML验证到底是什么。

什么是HTML验证

HTML验证是对你的网页代码执行一系列验证任务,主要包括:

  1. 代码语法验证 - 检查语法错误。从技术上说,尽管 *不是HTML规范中的一个标签,* 在语法上也是正确的,所以语法验证唯一的作用就是确保编写出合法的HTML代码。
  2. 标签嵌套验证 - 检查标签是否正确地按照打开的先后顺序关闭。比如一个

<div>标签没有被正确关闭的话,在这项检查中就会报错。 3. DTD定义验证 - 检查你的代码是否遵循了指定的DTD的定义。这项验证检查的内容包括标签名称、属性名称、以及标签包含关系(某个标签是否允许被嵌套在另一个内部)。 4. ****异常实体验证***** - 检查是否存在DTD规范中不曾提及的任何东西。通常自定义标签和自定义属性就会在这一项验证中报错。 (*译者注:关于原文中的Outlier Validation,指的是对不属于DTD定义范围内的实体的验证。在数学上,把这种游离于基准之外的值成为离群值,因而在数学上有Outlier Validation - 离群验证的概念。但是在HTML中,对于DTD中的元素、属性,均是实体,这项验证要做的是找出不在定义范围内的异常实体,因此暂译为“异常实体验证”,若您有更好的翻译方案,欢迎探讨。)

请记住:以上这四项验证任务只是为了便于理解而进行的逻辑划分,而不一定是验证器真正的实现方式。如果在某个验证任务上失败了,就说明HTML代码在该项对应的方面存在问题,是不符合规范的。

关于HTML验证的争论

HTML验证的支持者的主要观点是:HTML验证能够保证网页在不同浏览器下的互用性。不同核心的浏览器拥有不同的语法分析器以及HTML验证的具体实现。只有同时满足所有浏览器的要求,你的代码才能始终正常工作。由于每个浏览器在其语法分析器中各自以不同方式来实现纠错功能,因此对于不规范的代码,我们无法预计浏览器会如何呈现它。

而HTML验证的反对者则认为:HTML验证过于严格,而且没有考虑到浏览器的真实工作情况。HTML中的某些情况虽然从技术角度看可能是不合规范的,但是所有的浏览器都能按照相同的方式处理它们(注:并不总是相同的方式)。如果我自己能对自己编写的不规范代码负责,那我就不需要担心什么HTML验证——我真正关注的只是让这个网页正确呈现。

我的观点

我很少会就某个争论的问题公开表态,这恰好是其中之一,希望你喜欢。基于“HTML验证过份严格,不符合实际工作场景”的原因,我一直都属于反对HTML验证的阵营。有一些被浏览器广泛支持的东西(里面的

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

在你的网站集成Wiki系统 WikiPlex

Wikiplex 是一种在 .NET Framework 上所开发,具有处理 Wiki 编辑宏功能的小型函式库组件,它提供了数种编辑样式的格式,以让使用者可以类...

22580
来自专栏数据小魔方

数据地图系列6|Stata数据地图(下)

今天要跟大家分享的是数据地图系列6——Stata数据地图(下)! 接着前一篇的节凑,这一篇会给大家介绍比较全面的Stata热力地图代码实现。 版本仍然是基于S...

70540
来自专栏北京马哥教育

LaTeXila:Linux 的多语言 LaTeX 编辑器简介

豌豆贴心提醒,本文阅读时间7分钟 LaTeXila 是一个多语言 LaTeX 编辑器,专为那些偏爱 GTK+ 外观的 Linux 用户设计。这个软件除了操作简...

36290
来自专栏哲学驱动设计

产品前端重构(TypeScript、MVC框架设计)

最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容。 公司期望把某一管理类信息系统从项目代码中抽取、重构为一个可复用的产品。该系统的...

28180
来自专栏WeTest质量开放平台团队的专栏

Android性能优化典范(1)

2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程...

12220
来自专栏phodal

让你的「微信小程序」运行在Chrome浏览器上,让我们使用WebStorm

「微信小程序」的开发框架体验起来,还不错——自带了UI框架。但是问题是他的IDE,表现起来相当的糟糕——其实主要是因为,我当时买WebStorm License...

78660
来自专栏FreeBuf

跟我学姿势:极客教你如何科学的看电影

俗话说自己动手丰衣足食,小米盒子之类的弱爆了,极客看片自然有极客的做法!相信看完本篇狠涨姿势的文章,你就可以像我一样吃着火锅唱着歌,喝着饮料吃着爆米花,用树莓派...

26250
来自专栏進无尽的文章

扒虫篇- Bug日志 Ⅷ

不执行的原因是 在VC中使用这个ImageUploaderManager时,需要设置为全局变量,如果是局部变量的话,很快会被销毁掉,其中的代理自然不会执行了。

20430
来自专栏大数据挖掘DT机器学习

python爬取网易云音乐并分析:用户有什么样的音乐偏好?

发现自己有时候比挖掘别人来的更加有意义,自己到底喜欢谁的歌,自己真的知道么?习惯不会骗你。 搭建爬虫环境 1.安装selenium pip install s...

2.1K80
来自专栏V站

WordPress丨AutoTagSlug插件优化标签Url格式

大部分WordPress用户都是懒懒散散,SEO不做好,导致收录频率极低,整天抱怨凉凉。今天无聊时发现Tag可以优化,才发现原来西顾博客也有瑕疵。在此介绍一款插...

33680

扫码关注云+社区

领取腾讯云代金券