5. 梦想虽然很美,但实际上到底怎么样?
- 详细资料
- 发布于 2012年9月18日
- 点击数:3785
序言
到目前为止,我已向你们介绍了Web标准的美好构想。使用Web标准,可以实现所有类型浏览器之间的可互通性(interoperability),使Web程序能在每一种操作系统上运行,甚至可以让网页在每一种电子设备上显示。但这已真正成为现实了吗?所有的Web浏览器都百分之百地符合Web标准吗?所有的Web开发员都适当地使用了Web标准吗?Web开发员是否是在使用Web标准制作了一个网页后,就确信网页能跨浏览器、跨平台、跨设备地访问,不再需要做后续工作了呢?
对最后一个问题的回答很简单:不是。尽管这是一种理想的状况,但离现实还很遥远。在本篇文章中,我将讲述以下内容:
你如何检查Web站点是否符合Web标准?
在进行下一步的学习前,你可能问这样一个问题:“我怎么知道一个Web站点是否使用了Web标准呢?”它看起来和其他Web站点是不是就不一样?
答案:是,同时又不是。符合Web标准的Web站点,如果是使用恰当的方式开发的,其外观和那些使用一切都混杂在一起的标记所编写的Web站点应该是没有差别的。但是Web站点的源代码则会呈现出巨大的差异(要查看网页的源代码,可以点击右键,选择“源代码”或“查看源代码”选项,依据不同的浏览器而定)。一个符合Web标准的Web站点是以精简、清洁的标记代码写成的,在页面本身中只有很少或没有嵌入的格式代码。仅看一下Web站点的外观,你可能难于发现符合与不符合Web标准的Web站点之间的差别,但请相信我,那些使用屏幕阅读器上网的视力受损人士和搜索引擎是会发现两者之间的明显差别的。在上一篇文章中,我已讲述了使用Web标准所具有的很多优点。
要检查Web站点是否符合Web标准,最简单的方式是使用一个可在线获取的被称为“校验器”的便捷工具。万维网联盟(W3C)免费在线提供“校验器”,网址为http://validator.w3.org/,如图1所示。你可以(也必须)使用这个工具来检查你正在开发的Web站点是否存在HTML/XHTML错误。同时,你也可以使用可在线获取的CSS校验器检验CSS,网址为http://jigsaw.w3.org/css-validator/。请点击这些链接,随意检查几个你最喜爱的Web站点。
图1:万维网联盟提供的标记校验服务,可检查你编写的网页,指出标记可能存在的任何错误。
校验你编写的网页只是完成了工作的一半。我们如何检查浏览器是否符合Web标准呢?Web标准组织已开发出一系列检查浏览器是否符合Web标准的测试,被称为“Acid 测试”,即使用一些复杂的HTML和CSS规则(加上其他一些标记和代码),检查某一浏览器是否能正确地渲染测试屏幕。最新版本的“Acid测试”,即Acid3,尚在开发中。想了解“Acid测试”更多的信息,可以访问http://www.acidtests.org/。你同时还可以到该站点的测试页面,测试你的浏览器是否符合Web标准。
Web站点是否符合Web标准的现状
主要的Web站点正在使用Web标准,还是依然在沿用那些过时的方法和习惯呢?让我们考察几家大公司的Web站点,看看使用万维网联盟的标记校验服务对它们进行校验后给出的结果。你也许会感到惊异,原来有那么多大网站未能通过Web标准校验测试。不过你不要因此就感到沮丧,你是可以做得更好的,是可以使你的站点通过Web标准校验测试的。当你阅读以下的报告时,记住一点,那就是一般说来,一个Web站点越大、越复杂(其他一些因素如所使用的技术等,也有影响),就越难通过Web标准校验测试。
亚马逊网站:它符合Web标准吗?
如果你在网上购过物的话,很可能访问过 Amazon.com(或是它的某一个特定国家网站)。亚马逊网站是一个巨型网上商店,出售很多种类的商品,从书籍、CD到食品杂货等等。Amazon.com通过Web标准校验测试了吗?答案请看图2。
图2:Amazon.com完全未能通过Web标准校验测试。不仅网页中存在不合法的标记,甚至未声明网页的文档类型 (即未声明所使用的是哪一种版本的HTML/XHTML)。
要符合Web标准,亚马逊网站还有一段路要走。我并不了解亚马逊网站的内情,不过我可以推测一下出现这种情况的原因。我估计由于亚马逊网站建站已经很久了,他们可能一直在使用同一种软件进行站点开发。Web标准在21世纪初期才成为业界焦点,而亚马逊网站的在线销售系统很可能是在Web标准发布前或能被支持前就已经开发出来的。我不是很确定,但我推测亚马逊网站出现的问题应该就是一直沿用Web标准发布前的方法在进行Web开发和设计。
新闻网站CNN: 它符合Web标准吗?
新闻网站的情况又是怎么样的呢?CNN.com 是全球最大的媒体网站之一。通过整合全球媒体资源,CNN实时报道全球各地的新闻,他们应该有一个专业的Web开发和设计团队,确保网站是以符合Web标准的有效标记制作的。果真是这样的吗?请看图3。
图3:CNN.com (2008年4月15日的页面)未通过Web标准校验测试,出现33个错误。他们将文档类型标为HTML 4.01 Transitional,但很多标记看起来有些像XHTML。
考虑到CNN网站是一个庞大、复杂的网站,出现33个错误并不算严重。我推测出现这33个错误的原因可能是,他们使用的内容管理系统尚未能完全升级到能生成符合Web标准的标记的水平,或这些标记错误是由负责写新闻,而不是负责制作网站的制作工作人员造成的。这两种可能性都是存在的。
苹果公司:在创意设计方面出类拔萃,那校验呢?
苹果公司以其美观实用的软硬件产品而著称。对苹果产品的忠实用户来说,苹果公司的新产品发布会几乎等于是神圣的宗教庆典。Apple 公司的网站(见图4)被认为是设计漂亮、构建良好的Web站点,但它在符合Web标准方面的情况又是怎么样的呢?
图4:Apple.com基本上已使用了有效的HTML 4.01 Transitional标记,仅有6个错误,包括标记的“打字错误”和一处仅适用于Safari浏览器的标签用法。
苹果公司的网站已基本上能通过Web标准校验测试。实际上要修正仅有的几处错误,花5分钟就够了。不过我要简要谈谈其中的一个错误,那就是苹果公司网站在其搜索框内使用了一个仅适用于Safari浏览器的属性(即为搜索框赋予了type="search"这一属性)。在Safari浏览器中,这种属性可以让你通过点击一个放大镜小图标,看到一个最近进行的搜索的列表。在其他浏览器中(如Opera或Internet Explorer),只会显示为一个通常样式的文本框。
是否符合Web标准的小调查
下面我不再像以上那样列举很多实例了,而是用一个直观的饼形图,显示其他一些Web站点是否符合Web标准的情况。我从世界500强公司的网站中挑选了40家公司的网站,以及一些Alexa网站流量排名中最靠前的网站,测试它们是否符合Web标准,测试结果见图5。
图5:在所测试的Web站点中,85%的站点存在不同程度的问题,未能通过校验。其中有的Web站点有多达上千个错误,而有的只有不多的几处标记“打字错误”。
为什么缺乏符合Web标准的Web站点?
我们可能会悲叹:“为什么这些Web站点就不能通过Web标准校验呢?”这也许有点夸张,不过现在你们至少应该注意到了这个问题。为什么只有很少的Web站点符合Web标准呢?我已经向你们讲述过几个原因,如电子商务系统或内容管理系统存在的问题等,不过还有几点更为根本性的原因,包括:
教育
我去过的那个大学设有一个管理信息系统课程项目、一个计算机科学课程项目,以及一个新媒体课程项目,每个课程项目都有与Web站点制作有关的课程,尽管也教授了很多理论知识,但关于如何实际编写Web站点代码的内容,则教授得较少。很多大学中那些与Web有关的课程给我的总体感觉是:Web语言如HTML, CSS and JavaScript ,低于大多数计算机科学课程项目的技术门槛,但高于大多数管理信息系统课程项目和新媒体课程项目的技术门槛。
我在此想说的是,许多教育课程都未详细地教授HTML, CSS and JavaScript这类Web语言。我敢说如果你询问10个使用Web标准工作的Web开发员是在哪里学到如何使用Web标准的,有9个都会回答说是自学的(另外一个却不会回答你,因为她正忙于让其开发的站点能在IE6中正确地渲染)。
负责制订Web标准的万维网联盟(W3C), 以及Web标准组织(WaSP),正在着手处理这一问题,努力向浏览器开发商和Web开发员普及和推广Web标准方面的知识。
我们之所以要推出这个课程,根本原因就是希望免费向大家提供一套关于Web标准的好教学材料,以及一种如何使用这套教学材料进行学习的方法。鉴于采用Web标准有那么多优点(以后的课程中会一一讲述的),又有了这个Web标准课程,再以“缺乏教育”为借口不去采用Web标准,就真的没有道理了。
商业原因
我经常访问一个针对互联网初创企业负责人的Web站点,该站点就在“Web 2.0 应用程序”中使用Web标准,组织过一系列讨论。在讨论中,常常会看到这样一种有趣的交锋:一些人认为应该使用Web标准,因为它确实有很多优点;而另一些人则回应道“那又怎么样呢”。
确实,Web浏览器是可以处理一些写得很糟的代码,你编写的网页并不需要通过Web标准校验就可以在多数的主流浏览器上正常显示。从商业角度看,既然时间就等于金钱,何必还要多花费一些额外的时间去让站点通过Web标准校验呢?设想一下,你可以花30分钟以混杂在一起的代码编写出用HTML表格布局的网页,或是用30分钟分别编写网页的HTML代码和CSS代码,再用30分钟确认它们都通过校验,并能跨浏览器地正常工作,而用这两种不同的方式编写出来的网页在主流桌面浏览器中显示出来的效果看起来也差不多,很多人就会选择第一种虽然不好,但是省事的工作方式。
我们这一代人(我现在已经30多岁了),在最初学习构建Web站点时,所学的就是用表格来进行页面布局,用font标记来格式化文本等。这样在这些旧方法尚能应付Web开发和设计工作时(以旧方法构建的Web站点在多数浏览器中看起来还是不错的),很多人就没有动力去学习新的更好的方法。雇主一般并不知道这两种工作方法之间的差别。在绩效面谈中,就从没有一位经理谈起过我写的标记的质量。那么,激励人们使用新方法的动力又在哪里呢?
我想指出的是,采用那种将代码混杂在一起的旧方法进行Web开发和设计是短视的行为。根据我的经验,使用Web标准重新设计一个达标的Web站点,比去对那些充斥着代码错误的网页进行修修补补,要容易得多(这两种方式我都试过)。虽然我还没有达到XHTML/CSS 标准所许诺的理想状态,即在再设计一个基于XHTML/CSS的网站时,只需修改CSS即可,但已经很接近这种理想状态了。
此外你们还需注意一点,目前越来越多的公司在招聘Web工作人员时,要求应聘者具有Web标准方面的知识。
还有一些直接的商业原因也值得考虑。一般而言,使用Web标准,可提高Web站点在搜索引擎中的排名地位,即在Google等搜索引擎的搜索结果中排名尽量靠前,便于被很快找到。此外,使用Web标准和最佳习惯,可以让网页更容易被那些有残疾的上网用户所访问,同时也更容易被用手机上网的用户所访问。用户增多和网站可见性的提高,对企业来说始终都是好事。
总结
在本篇文章中,我讲述了采用Web标准的现状,包括如何检查某个Web站点是否适当地使用了Web标准,有多少Web站点恰当地使用了Web标准,以及人们为什么未采用Web标准的原因。正如你们已了解到的那样,这些不采用Web标准的原因都是站不住脚的,同时采用Web标准并不难。
一个有远见、有事业心的Web开发员该做些什么呢?是努力掌握Web标准并继续学习本课程呢,还是依然启动一个图形编辑程序,用表格来进行站点的页面布局呢?
那些说使用Web标准进行Web开发是浪费时间的人,最主要的一条理由就是,要抛弃那些过时的方法并学习使用Web标准,以及开发能在所有浏览器中正常工作的Web站点,需要太长的时间。那为什么不一开始就学习正确的方法,并省去很多麻烦呢?既然你已决定学习如何构建Web站点,为什么不去学习构建Web站点的正确方法呢?
延伸阅读
- 万维网联盟的标记校验服务
- 万维网联盟的网站(介绍各种Web标准和新的推荐规范)
- Web标准组织
练习题
- 我们考察了很多大网站,看它们是否能通过Web标准校验测试。请使用“校验器”测试你经常访问的网站。它们能通过校验测试吗?如果未能通过,看一下它们出的错误,了解它们主要在哪些方面出了错误。
- 什么是文档类型(doctype)?其作用是什么?
- 你能从商业角度,举出一个支持采用Web标准的例子吗?