Web标准真的是标准吗?

作者:网络 来源:佚名 更新时间:2008-01-05 00:33:56 点击:

  引言:
  一群会用table蹩脚布局的网页初学者嘲笑着那些对网页制作一窍不通的门外汉;而一群自认为 table布局无所不能的table布局拥护者则嘲笑着那群用table蹩脚布局的网页初学者;那些刚试着将几个页面中的table换成div的所谓的 web标准设计者则嘲笑这那群死抱table布局不放的table布局设计者;而一群焦头烂额终于在网站上贴上“w3c验证通过html网站”图标的自认高高人的web标准设计者则嘲笑这那群以为“div+css”就是web标准的web标准设计初学者;但是当我们把我们的网页放在不同的浏览器中的时候,却发现我们全部都被“web标准设计”嘲笑了……

  正文:
  标准:衡量事物的准则。例句:惟极贫无依,则械系不稍宽,为标准以警其余。——清•方苞《狱中杂记》
  standard: an acknowledged measure of comparison for quantitative or qualitative value; a criterion.

  无论是中外古今的对于标准一词的解释都很相近。即:标准是一个准则。那么冠以“标准”前缀的词,则必须符合此准则。如:
  标准大气压(standard atmospheric pressure):指在纬度为45°的海平面上,温度为0°c时的大气压,相当于76厘米高的水银柱所产生的压强。
  标准照(official portrait):指人的正面半身免冠相片。

  那么冠以“标准”前缀的web标准设计,也必须有一个衡量的准则方可。但是我们发现所谓的衡量web标准是否标准的准则并不存在,至少目前还没有成型。没有衡量准则,标准何以言之为标准?

  推荐遵循标准不是严格意义上的标准

  当你试图在网上查找“什么是web标准”时,找到的多数是将web标准进入中国的先驱阿捷的文章《什么是web标准》。虽然里面提到了各个组成部分的“推荐”遵循标准,但是那些也都只是w3c组织“推荐遵循”的标准。大家都知道w3c标准不是强制性标准,所以像微软这样喜欢“卖标准”的一流公司并不完全买w3c的帐。所以那些所谓的“推荐标准”从严格意义上来说并不是全面的、严格意义上的认证标准。

  注:虽然w3c的推荐标准不是严格意义上的标准,但是我们绝对不可以无视。因为它们的确很有指导意义。而且我们非常欣慰的看到:虽然ie7为了向前兼容,保留了一些ie6的诡异解析方式,但是它也正在逐渐的遵循这些标准。所以这些标准现在是“推荐遵循标准”,但是在不久的将来极有可能成为真正的标准准则,那个时候就是“web标准大统一”的黄金年代。所以还没有看过下面这些文章的朋友要抓紧时间啦。

  w3c推荐遵循web标准文档列表:
  xml方面:《extensible markup language (xml) 1.0 (second edition)》
  xhtml方面:《xhtml 1_0 the extensible hypertext markup language (second edition)》
  dom方面:《w3c dom规范》
  css方面:《cascading style sheets, level 2 css2 specification ver.12-may-1998》
  script方面:《ecmascriptlanguage specification》

  web标准与否不能被有效验证

  即使我们暂且将那些“推荐遵循标准”视为标准,我们仍然有很多问题。例如:怎么检验我们的页面就是符合那些“推荐遵循标准”的呢?的确,我们有验证工具,但是那些验证工具的验证结果就是正确的吗?web标准一个重要的部分就是,根据标签的语义来使用它们。例如table是用来呈现表格数据的,而不是用来分割文档的(也就是平时说的布局)。但是一些利用table布局的页面也能顺利的通过验证工具的验证。所以那些验证工具的验证结果也只能作为一种参考。

  语义是道多选题

  说道标签的语义,这也会带出一些问题。因为当我们决定使用哪种标签的时候,我们会发现我们面对的是多选题,而不是单选题。因为某些情况利用多种标签时都是符合语义的。我们举个最简单的例子:

  你说“name:”应该用什么标签包起来?label?span?其实无论使用哪个都是符合各自的语义的。正是这种“多选题”让web标准显得有些朦胧。

|||

  树欲静而风不止

  即使上面的问题都不再是问题了,我们仍然有一个大问题——各种浏览器对web标准的支持不统一。也正是这种标准不统一的大环境让web标准显得缥缈、遥不可及。看到论坛上天天有人在骂“垃圾ff”、“垃圾ie7”、“垃圾ie6”……纵观世界,能生存下来的只有两种生物——改变环境以适应自身发展的,例如人类;改变自身以适应环境发展的,例如:变色龙。当我们不能改变这个世界的时候,那么就改变自己去适应这个改变的世界吧。

  有限的资源,努力的去做

  web标准不标准,至少是现在没有统一的标准,但是网页还是要做,工程还是要赶。我们能做的,只能是合理的利用手头的有限的资源,努力的去做到最好。这句话包含了两个方面的含义:有限的资源,努力的去做。

  有限的资源:
  当你躺在象牙塔里,努力的让你的个人网站贴上w3c认证标签的时候,你是无可厚非的,因为你的资源是那么的充足,时间、青春、没有项目时间的催促,没有客户的最后通牒。但是当你真正的在做商业项目的时候,你会发现我们能利用的资源是及其有限的。人力资源,物质资源,时间资源都是那么的捉襟见肘。当你有分配这些资源的权利的时候,你才会发现分配这些资源的责任。我们的项目,绝对不会为了那张w3c认证标签而浪费宝贵的资源。

  努力的去做:
  但是有限的资源绝对不是粗制滥造的借口。事实上,我们项目对于质量是及其重视的。项目经理提出的“质量是项目之本”的结论已经在我们团队达成共识。给测试部门的测试资源,我们向来都安排在整个工程的1/5以上。(分析设计过程3/5以上,代码coding1/5以下,其余的给测试部)。

  但是努力的去做,到底要做成什么样?其实也并不是没有参考。当你看andy budd的《样式指南示例》中我们可以看到一些国际上对此问题的处理方法的端倪,他在1.4小结提到了browser support的概念。然后他提出了对不同浏览器支持的不同程度:

  target – most popular browsers at present. everything must work as intended
  supported – old but popular browser. all content and functionality must work with minimal degradation.
  partially supported – old and buggy browsers. not supported but not officially unsupported. content and functionality must work. degradation must be graceful and should not obscure content.
  unsupported – buggy and unsupported browsers. advice current users to upgrade.

  我认为这是正确的做法,选定主流的浏览器,然后对主流的浏览器进行target支持,而对于次之的浏览器进行supported支持。而对于一些老版本的浏览器进行partially supported甚至完全不去管。这样就能最大可能的让网站被浏览者正常的浏览。当然将哪些浏览器,哪些版本进行target支持,需要根据项目的使用群来决定。例如我们最近的一个日本母公司内部使用的b/s系统,因为我们知道他们那边使用者的电脑软件配置情况,所以我们进行了如下的浏览器支持定义:

  ie7+:target
  ie6+:supported
  ff :partially supported
  other:partially supported or unsupported

  正是有了这个浏览器支持表单,让我们调画面的时候有的放矢,有所侧重。而不是一味的让所有的浏览器都正常支持而浪费时间(而且让所有的浏览器正常支持也只能是一种理想状态)。

  web标准难不难?

  没进来的人说:很难!
  刚站在门框上的人说:不过如此。
  站在门里面的人则说:web标准的路还有很长一段要走……

  后记:
  当初起这个名字的时候就知道会遭到很多人的炮轰。反正早已练就“无敌厚脸皮”神功。骂也无妨,驳也无妨,炮轰也无妨。因为正是你们的留言,你们的论点,你们的讨论让web标准之路能够走的更远,走的更平坦。