01|2005 年,Web 标准阵营决定不讲大道理了
写到第三篇,CSS 已经走到一个很尴尬的阶段。
规范在修,浏览器在追,开发者在中间受夹板气。
这时候再发一篇长文,讲“互操作很重要”“大家应该尊重标准”,其实已经没什么用了。因为所有人都懂道理,问题是不见得有人真改。
于是 2005 年,Web Standards Project,简称 WaSP,换了个办法。
不劝了。直接出题。
这张考卷,就是 Acid2。
它不是一篇规范,不是一份提案,也不是哪家公司开的发布会。它就是一张网页。你把浏览器打开,访问它,如果浏览器真够标准,它就会乖乖显示出一张脸:上面一行 Hello World!,下面一个古怪的笑脸,鼻子悬在中间,鼠标移上去还会变蓝。
看起来像个恶作剧。
但恰恰是这种恶作剧,最伤人。
因为规范文字你可以说“还在讨论”,会议纪要你可以说“理解不同”,可一张脸画得像不像,赖不掉。
02|这张笑脸,几乎就是冲着 IE6 去的
Acid2 于 2005 年 4 月 13 日正式发布。
WaSP 的说法很明确:它是写给浏览器厂商看的,目的是逼他们把那些网页设计师已经念叨很多年的问题,老老实实修掉。
它测的东西并不玄乎。反而很接地气:
- HTML
- CSS 2.1
- PNG 透明
- data URI
这些东西,放到今天看像常识;放到 2005 年,却正好是最容易把浏览器的短处照出来的地方。
尤其是 IE6。
它当时还是最有存在感的浏览器之一,也是 Web 标准阵营最头疼的对象之一。Acid2 从设计之初,就有一种很明显的火药味:不是为了表扬谁写得好,而是为了让最难看的问题在大庭广众之下难看到没法装没看见。
Håkon Wium Lie 提过这个想法,Ian Hickson 把最终测试页写了出来,WaSP 再把它推成公共战场。按照后来广泛流传的记述,2005 年 4 月 13 日它一上线时,所有主流浏览器全都失败得很难看。
这就很妙。
以前大家争“我支持标准”时,还能靠新闻稿互相吹。
Acid2 一出来,吹不动了。
脸长歪了,就是长歪了。
03|为什么偏偏是一张笑脸?
这件事很值得玩味。
如果 Acid2 做成一份 200 页的互操作报告,当然更严肃,也更像专家文件;但它很可能不会变成圈内外都记得的名场面。
笑脸就不一样了。
它有一种近乎残忍的传播效率。
你根本不需要读 CSS 规范,也不需要理解盒模型、透明 PNG、默认样式表、错误处理规则这些术语。你只要看一眼,就知道:
哦,这个浏览器考砸了。
这就是 Acid2 真正厉害的地方。
它把复杂的标准之争,压缩成了一个连产品经理、记者、老板都能看懂的视觉结果。
从那一刻开始,浏览器支持标准这件事,就不再只是工程师内部的专业纠纷,而变成了一场可以被围观、可以被截图、可以被羞辱、也可以被拿来做市场宣传的公开考试。
换句话说:
WaSP 干的不是测试,它干的是“把标准争议做成公众可消费的竞赛”。
04|第一批过线的人,拿它当战利品到处举
Acid2 发布后,浏览器团队反应很快。
因为这玩意儿太适合拿来当奖杯了。
谁先通过,谁就能说自己在 Web 标准这条路上比别人更像未来。
时间线很漂亮:
- 2005-04-13:Acid2 正式发布
- 2005-04-27:Safari 私有构建先通过
- 2005-10-31:Safari 2.0.2 成为首个正式发布且通过 Acid2 的浏览器
- 2005-11-29:Konqueror 3.5 跟上
- 2006-06-20:Opera 9 通过
- 2008-06-17:Firefox 3 通过
- 2009-03-19:Internet Explorer 8 终于过线
这串时间你读着像榜单,其实背后很能说明问题。
先冲出来的是 Safari / WebKit,这让 Apple 在那几年标准口碑上狠狠吃了一波红利。后来 Opera 也很快跟进,它本来就一直把自己包装成“更懂标准”的那一派。再后面才轮到 Firefox、IE。
尤其是 IE8。
你看到这个日期时,差不多就能理解 Acid2 当年为什么让很多人又爱又恨了。
从 2005 到 2009,够一个测试页把一家大公司的历史包袱反复鞭四年。
05|这不是考试,这是公开处刑
Acid2 之所以有效,不只是因为它技术上设计得刁。
更因为它太会制造羞耻感了。
浏览器之间本来就在竞争。竞争什么?功能、性能、市场份额、开发者口碑。Acid2 等于往这场竞争里又塞进一个简单粗暴的新指标:
你能不能把这张脸画对。
只要有一个对手先画对,剩下的人立刻就难受。
这和规范本身完全不是一个打法。
规范靠的是共识、讨论、草案、修订。
Acid2 靠的是另一种东西:谁先在聚光灯下不丢人。
所以它对浏览器厂商最致命的地方,不在于它覆盖了多少标准点,而在于它把“是否尊重标准”这件事,变成了一种会直接伤害品牌形象的公共表演。
很多时候,技术进步不是靠大家突然变得更高尚。
而是靠有人把“做不好会很丢人”这件事设计得特别到位。
Acid2 就是这种设计。
06|但 Acid2 也不是万能神谕
写到这里,得给它降降温。
Acid2 很重要,但它不是圣经。
它本身也明确不是“全面认证”。通过 Acid2,不等于浏览器就完全符合所有标准;没通过,也不等于一切都一无是处。它测的是一组关键能力,而不是整个 Web 世界。
这点在历史叙述里很容易被忽略。
因为 Acid2 实在太好讲了:一张笑脸,几个大厂,谁先过线,谁后过线。这样的故事太像体育比赛,太适合媒体写标题。
可工程师知道,浏览器不是这么简单的东西。你通过一个测试页,不代表从此天下太平;你没通过,也不等于所有页面都没法用。
但即便如此,Acid2 还是完成了它最重要的使命:
它把“标准支持”从一堆专家术语,变成了浏览器厂商不能不回应的现实压力。
这已经很够了。
07|Acid2 的真正遗产,是让后来的 Acid3 有了舞台
如果说 Acid2 是一张笑脸,把 CSS 2.1、HTML、PNG、data URI 这些基础能力钉在墙上公开示众;
那么接下来的 Acid3,就不再满足于只盯着 CSS 了。
2008 年 3 月 3 日,Ian Hickson 发布 Acid3。它更大、更杂、更像一整套综合考试,DOM、JavaScript、SVG、部分 CSS3 特性,全往里塞。
结果也更戏剧。
2008 年 3 月 26 日,Opera 和 WebKit 几乎同时冲到 100/100。WebKit 很快宣布公共 nightly 达标,Opera 也拿出内部构建跟上。WaSP 当时还专门提醒:分数到了,不代表整张卷子连渲染和性能都完全过关。
这其实已经能看出 Acid 系列的命运了:
它们越来越像一场公开军备竞赛。
而 Acid2,恰恰是这场竞赛真正把观众带进场的第一张门票。
如果你只记一句,那就记这句:
Acid2 最狠的地方,不是它多难,而是它让“浏览器不守标准”这件事,第一次变得肉眼可见。
编者注(事实核对):Acid2 正式发布时间为 2005-04-13,以 WaSP/相关历史条目互证;其测试内容通常概括为 HTML、CSS 2.1、PNG 透明、data URI。Ian Hickson 为最终测试页主要作者,常见史料也提到 Håkon Wium Lie 参与初稿思路。Safari 2.0.2 于 2005-10-31 成为首个正式发布且通过 Acid2 的浏览器,后续主要浏览器通过时间线采用公开汇总资料与 WaSP/相关时间线交叉整理。Acid3 于 2008-03-03 发布,Opera 与 WebKit 于 2008-03-26 达到 100/100 的说法,结合 WaSP、WebKit 官方博客与 Acid3 历史条目表述;分数达标不完全等于整体验收通过,这一点在当年 WaSP 文章和 WebKit 说明中都有提示。
关键人物速览
- Ian Hickson:Acid2 最终测试页的主要作者。第四篇里那张“笑脸考卷”,基本就是他把标准争议变成视觉羞辱的代表作。
- Håkon Wium Lie:Acid2 初稿思路的重要参与者之一。你会发现,他不仅是 CSS 的共同发起人,也一直很关心“怎样逼浏览器把标准认真做出来”。
- Dave Hyatt:WebKit 重要工程师。Safari / WebKit 之所以能早早把 Acid2 当成战利品举起来,背后离不开这条实现线。
- Kimberly Blessing:WaSP 当年写 Acid3 进展文章的人之一。她不是引擎工程师,但代表了标准倡导组织把这场“考试”持续推向公众视野的力量。
参考与延伸阅读
WaSP:Acid2 Guided Tour
https://www.webstandards.org/action/acid2/guide/index.htmlAcid2 条目(时间线、测试内容、通过情况汇总)
https://en.wikipedia.org/wiki/Acid2Acid Tests 官方历史页
https://www.acidtests.org/Acid2 时间线整理
http://www.hyperborea.org/journal/2005/11/acid2-timeline/WaSP:Acid3 Passed in 23 Days!
https://www.webstandards.org/2008/04/07/acid3-passed-in-23-days/index.htmlWebKit:The Acid 3 Test
https://webkit.org/blog/158/the-acid-3-test/WebKit:WebKit achieves Acid3 100/100 in public build
https://webkit.org/blog/173/webkit-achieves-acid3-100100-in-public-build/Acid3 条目(发布时间与 100/100 历史)
https://en.wikipedia.org/wiki/Acid3
下篇预告:CSS3 越红火,前端越像在扫雷。