Acid2是什么?关于Acid2的科普介绍

创闻用户
创闻用户 2022-07-27 14:50:12

Acid2是由网页标准计划发布和推广的一个测试页面,用于揭露网络浏览器和其他渲染超文本标记语言的应用程序中的网页呈现的缺陷。它因金的酸性测试而得名,是根据Acid1的精髓开发的,Acid1是符合级联样式表1.0 (CSS1)标准的规模较小的一个测试,于2005年4月13日发布。Acid2与Acid1一样,如果应用程序显示测试页面的方式与参考图像匹配,则该应用程序通过测试。

Acid2可以用于测试超文本标记语言、CSS 2.1样式、PNG图像和数据URIs的各个方面。Acid2测试页将在遵循万维网联盟和互联网工程任务组技术规范的任何应用程序中正确显示。这些规范被称为网络标准,因为它们描述了网络上使用的技术如何发挥作用。

Acid2是专为微软浏览器设计的。Acid2的创作者对Internet Explorer没有遵循网络标准感到沮丧。它倾向于以不同于其他浏览器的方式显示网页,导致网络开发人员需要花时间调整他们的网页。Acid2向微软提出挑战,要求其遵守网络标准。

Acid2于2005年4月13日发布。2005年10月31日,Safari 2.0.2成为第一个通过Acid2的浏览器。Opera、Konqueror、Firefox等紧随其后。随着Internet Explorer 8于2009年3月19日的发布,所有主要桌面网络浏览器的最新版本现在都通过了测试,直到IE10发布,其没有通过测试。它的继任者Microsoft Edge能够在Windows 10版本1607中正确地渲染它。在Acid2之后,Acid3测试也随之发布。

当浏览器符合当前CSS重叠和边距标准时,测试失败。

历史

 

 

Acid2最早由Opera软件首席技术官、广泛使用的层叠样式表网络标准的创建者kon Wium Lie提出。在2005年3月16日在CNET发表的一篇文章中,Lie对微软的Internet Explorer不能正确支持网络标准并因此不能与其他浏览器完全互操作的情况表示失望。他宣布,Acid2对需要设计并开发Internet Explorer 7的微软来说将是一个挑战,以达到比以前版本的互联网浏览器更高的标准合规性。最初的Acid1测试迫使浏览器制造商不修复他们的应用程序就得直面令人尴尬的问题;Lie希望Acid2也会起到同样的作用。

李和他的同事伊恩·希克森在2005年2月创作了测试的初稿。伊恩·希克森与网络标准项目和更大的网络社区合作编写了最终测试代码。它于2005年4月13日正式发布。当时,在这个测试之下,每个网络浏览器都以惊人的失败告终。

2005年4月23日,Acid2进行了更新,以修复一个有些离谱的错误。在多次被投诉后,该测试在2006年1月再次更新,取消了对不受欢迎的SGML样式注释的一项测试,该测试从未得到广泛实施。在不支持SGML样式注释功能的浏览器中,原始版本的测试在面部底部显示“ERROR”一词。

2008年3月,伊恩·希克森发布了Acid3作为Acid2的后续。虽然Acid2主要测试CSS,但Acid3更注重JavaScript和其他“网络2.0”技术。

微软的回应

2005年7月,Internet Explorer平台架构师克里斯·威尔逊指出,通过Acid2不是互联网资源管理器7的优先事项,他将测试描述为功能的“愿望清单”,而不是对于标准合规性的真正测试。2007年12月,微软宣布,通过Acid2所需的所有更改将在互联网浏览器8中提供,但默认情况下这些更改不会启用,这意味着IE8实际上不会通过测试。人们担心,新的变更的浏览器的行为会给网页带来太多问题,反倒不如指望Internet Explorer原来的旧的、不符合标准的行为。然后在2008年3月,微软发布了IE8测试版1,并最终默认启用了这些更改。IE8的产品经理詹姆斯·普拉特解释说,做出这个决定是为了“开发人员可以花更多的时间构建特性和酷的东西,同时花更少的时间试图在不同的浏览器上调整他们的网站。”

如果不是测试的所有元素都由同一台服务器托管的话,就会出现另一个未解决的标准符合性问题导致IE8 beta 1失败。2008年8月,微软发布IE8测试版2,解决了这个问题。但是,从该测试版开始,默认情况下,加载到“内部网区域”的页面不会打开标准模式。对于通过UNC路径加载的页面、不带点的命名地址(如http://mysite/)和绕过代理设置的站点,此区域处于活动状态。因此,如果在这些情况下加载,IE8将无法通过Acid2测试。

测试标准概述

Acid2可用于测试万维网联盟和互联网工程任务组发布的各种网络标准。除了CSS 2.1之外,所有测试的网络标准都是在2000年之前编纂的。CSS 2.1在Acid2发布时是候选推荐的网络标准,截至2009年4月23日仍是候选推荐的网络标准。

具体来说,Acid2可以测试:

 

  • PNG格式图像中的Alpha合成:笑脸表情图的眼睛描绘需要使用Alpha合成,这是1996年便携式网络图形规范的一部分。Alpha合成将眉毛平滑优雅地融入脸部。这是一个重要的问题,因为在Acid 2发行时使用最广泛的网络浏览器——Internet Explorer 6不支持Alpha合成。Internet Explorer 7纠正了这一缺陷,使IE浏览器在这方面与其他网络浏览器保持一致。
  • 对象元素:笑脸表情的眼睛也可以测试Html中的对象元素是否被支持。自从1998年HTML 4发布以来,对象元素就一直是HTML的一部分,但是到了2005年,它仍然没有在所有的网络浏览器中得到完全支持。Acid2的创建者认为能够支持对象元素很重要,因为它允许内容回退——如果一个对象无法加载,那么浏览器可以在其位置显示替代(通常更简单、更可靠)的内容。
  • 数据URIs:构成眼睛的实际图像被编码为数据URIs,它允许多媒体嵌入网页,而不是存储为单独的文件。Acid2测试最常见的情况,即二进制图像以base64的编码方式编码成文本,然后该编码文本被包含在网页的数据URI中。尽管IETF在1998年发布了数据URI规范,但他们从未正式采用它作为标准。尽管如此,HTML 4.01规范引用了数据URI方案,数据URI支持现已在大多数浏览器中实现。
  • 绝对、相对和固定的CSS定位:绝对定位意味着网页开发人员指定了元素要放入页面的精确的X和Y坐标。相对定位意味着网页开发人员指定了与元素通常位置相对的一个X和Y偏移量。固定定位意味着元素相对于浏览器窗口放置,并随窗口滚动,而不是随页面的其余部分滚动。
  • CSS框模型:该功能允许网页设计者指定尺寸、填充、边框和边距,并且是最初Acid1测试的重点。Acid2不仅测试边缘支撑,还测试最小和最大高度和宽度,这是针对CSS 2.0的新功能。
  • CSS表格格式:CSS的这一部分允许网页设计者应用表格格式,而不用传统的HTML表格标记。
  • CSS生成的内容:使用CSS生成的内容,网络开发人员可以向指定的元素添加装饰和注释,而不必向每个元素单独添加内容。
  • CSS解析:Acid2中存在许多非法的CSS语句来测试错误处理。符合标准的浏览器应该按照CSS规范的指示来处理这些错误。这有助于确保跨浏览器的兼容性,使所有浏览器都以相同的严格程度对待CSS,这样在一个浏览器中工作的内容就不会在另一个浏览器中引起错误。
  • 绘制顺序:Acid2要求浏览器具有标准的绘制顺序。也就是说,重叠的元素应该以正确的顺序放置或绘制在彼此之上。
  • 悬停效果:当用户将鼠标移到笑脸的鼻子上时,它会变成蓝色。这被称为悬停效果,虽然它传统上用于超链接,但它应该适用于各种各样的HTML元素。

 

因为Acid 2不是一个全面的测试,它不能保证完全符合任何特定的标准。不测试数据URI支持的Acid2测试的变体也可从网络标准项目中获得。

通过条件

只有在使用浏览器的默认设置时,通过的分数才被视为有效。更改字体大小、缩放级别和应用用户样式表等操作可能会破坏测试的结果显示。这是预期中的影响,与浏览器的合规性无关。

以下浏览器设置和用户操作使测试无效:

 

  • 卷动
  • 调整浏览器窗口的大小
  • 放大或缩小
  • 禁用图像
  • 使用Opera的适应宽度或小屏幕渲染模式
  • 应用自定义字体、颜色、样式等。
  • 用户JavaScript或Greasemonkey脚本
  • 启用IE浏览器的“兼容性视图”

 

兼容应用程序

 

 

 

 

如果渲染正确,在用户浏览器的文本“hello world”之下,Acid 2将以笑脸表情的形式展现,当鼠标光标悬停在笑脸的鼻子上时,鼻子将变成蓝色。在测试发布的时候,每个浏览器都失败了,但是现在很多浏览器都通过了测试。请看下面的列表。

正式发布

 

  • Microsoft Edge的桌面版本通过了测试,从Windows 10版本14393.105开始。
  • Internet Explorer,Windows附带的网络浏览器。
  • 奥德赛网络浏览器,一个专为AmigaOS和MorghOS系统设计的网络浏览器。
  • 基于壁虎核心的浏览器
    • Mozilla Firefox是一款适用于Windows、苹果操作系统和Linux的网络浏览器
    • SeaMonkey,一个适用于Windows、苹果操作系统和Linux的互联网套件
    • Songbird是一款适用于Windows、苹果操作系统和Linux的媒体播放器和网络浏览器
    • 卡米诺,一个苹果操作系统的网络浏览器
    • Mozilla Thunderbird是一款适用于Windows系统、苹果操作系统和Linux的电子邮件客户端
    • 手机火狐,移动设备的网络浏览器
    • 米罗,一个RSS聚合器,BitTorrent客户端,网络浏览器和媒体播放器
    • Mozilla太阳鸟,一个用于Windows系统、苹果操作系统和Linux的日历应用程序
    • Spicebird 0.8,一个用于Windows系统、苹果操作系统和Linux的个人信息管理器
    • 网络跑步者(前身为棱镜),一个用于Windows系统、苹果操作系统和Linux的网络应用平台
  • 基于WebKit和KHTML的浏览器
    • 苹果操作系统中的网络浏览器Safari
    • 谷歌浏览器,一个用于Windows系统、苹果操作系统和Linux的网络浏览器
    • Konqueror,一个面向Linux的网络浏览器
    • OmniWeb,一种面向苹果操作系统的网络浏览器
    • 什叶派,苹果操作系统的网络浏览器
    • iCab,苹果操作系统的网络浏览器
    • Web,官方的GNOME网络浏览器
    • 美岛莉,Xfce官方网络浏览器
    • 谷歌地球集成网络浏览器
  • 基于Presto的浏览器
    • Opera是一款面向视窗、苹果操作系统、Linux、BSD和Solaris的网络浏览器,所有手机、平板电脑和苹果产品(如iPad)都有移动版本
    • 互联网频道,一个为任天堂Wii游戏机设计的Opera浏览器版本。
  • 普林斯,一个用于视窗、苹果操作系统和Linux的XML到PDF的转换器

不合规的应用程序

 

  •  

     

    Internet Explorer 6

  •  

     

    Internet Explorer 7

  •  

     

    Firefox 1.0, Mozilla 1.7.13, Camino 1.6, 和 Netscape 7.2

  •  

     

    Firefox 1.5 和 2.0, SeaMonkey 1.1

  •  

     

    Opera 8.0

  •  

     

    Opera 8.54

  •  

     

    Konqueror 3.4

  •  

     

    Midori 0.1.10-r2 on SHR

  •  

     

    NetSurf 1.2

  •  

     

    NetSurf 3.0 in Q2/2011

  •  

     

    Opera Mini 4

  •  

     

    Nst OS 3.1.9运行于Nokia Nst-4

  •  

     

    Safari 3.1移动版

  •  

     

    黑莓Storm浏览器4.7.0.122

  •  

     

    Palm Pre / webOS v1.4.0

  •  

     

    Microsoft Edge移动版本14393.105

  •  

     

    移动Chrome测试版未通过Acid2测试。

尽管Opera Mini与Opera都是基于相同的个人电脑渲染引擎开发,但它没有通过Acid2测试。这是因为Opera Mini有意对网页进行重新格式化,以使它们更适合小屏幕设备。

通过的应用程序的时间表

以下是通过测试的重要应用程序版本的发布列表。自Acid2首次正式发布以来已通过的新应用程序不包括在时间表中。

 

日期 浏览器 是否可用 笔记
2005年4月27日 Safari 私有构建  
2005年5月18日 iCab 私有构建 该版本已于2005年5月20日提供给注册的iCab用户。
2005年6月4日 Konqueror 私有构建  
2005年6月6日 iCab 公共版本 这个版本的iCab是否真的通过了测试受到质疑,因为它在测试页面上显示滚动条。CSS规范指出,正确呈现的Acid2不应有滚动条,但也表示“在特定情况下可能存在合理的理由”来忽略这一要求。
2005年6月6日 Safari 源代码可用 Safari的基础网络工具包于2005年6月6日开放源码。当Safari使用最新版本的WebKit运行时,它通过了Acid2测试。
2005年10月31日 Safari2.0.2 官方发布 包含在苹果OS X 10.4.3中。首次正式发布通过测试的网络浏览器。
2005年11月29日 Konqueror3.5 官方发布 第一个通过测试的兼容Linux的浏览器,尽管它没有隐藏滚动条。
2005年12月7日 王子5.1 官方发布 第一个通过测试的非网络浏览器。
2006年3月10日 Opera 9开发8249 公共周刊 第一个通过测试的微软视窗兼容浏览器,也是第一个通过测试的Linux兼容浏览器,包括隐藏滚动条。4月20日发布了一个公开测试版,也很成功。
2006年3月28日 Konqueror3.5.2 官方发布 更新以隐藏滚动条。
2006年4月11日 Mozilla Firefox 公共试行版本 “回流重构”每夜构建,其代码从Gecko 1.9/Firefox 3.0主干分支,通过Acid2。
2006年5月24日 塞班操作系统的Opera Mobile 私有构建 首个通过测试的移动浏览器。
2006年7月20日 OmniWeb5.5 beta 1 公共版本 OmniWeb将其渲染引擎切换到WebKit,这是Safari中使用的、已经通过Acid2测试的渲染引擎。
2006年6月20日 Opera 9.0 官方发布  
2006年7月4日 奥比戈浏览器 私有构建 第二款通过测试的移动浏览器。
2006年8月17日 iCab3.0.3 官方发布 隐藏滚动条的首次公开发布。
2006年9月6日 OmniWeb5.5 官方发布  
2006年12月8日 Mozilla Firefox,Camino,SeaMonkey 公共试行版本 回流重构分支合并到壁虎主干中。火狐、卡米诺和西门基主干构建现在通过Acid2。
2008年3月5日 Internet Explorer 8Beta 1 公共版本 Beta 1在www.webstandards.org托管时通过测试,但在webstandards.org或acid2.acidtests.org托管时未通过测试
2008年6月17日 Mozilla Firefox 3. 0 官方发布 Mozilla Firefox 3.0、3.5和3.6通过Acid2测试。
2008年8月27日 Internet Explorer 8Beta 2 公共版本 Beta 2和更高版本通过测试,除非它是从内部网区域托管的。
2008年9月2日 谷歌铬0.2 beta 公共版本  
2008年10月14日 Flock 2.0 官方发布  
2008年12月11日 谷歌chrome1.0 官方发布  
2009年3月19日 Internet Explorer 8 官方发布  
2009年10月27日 SeaMonkey2.0 官方发布  
2009年11月18日 Camino2.0 官方发布  
2010年6月24日 Spicebird0.8 官方发布  

本文转载于:搜狗科学,baike.sogou.com/kexue/d10695.htm,本内容使用CC-BY-SA 3.0授权,用户转载请注明出处