互联网发展的速度超乎你我的想象。不过“水能载舟,亦能覆舟”。快速发展虽然创造了无限机会,但是也同样衍生了其他问题。Mozilla 向大家阐述目前的网络环境,以及我们最关心的问题:跨浏览器兼容性。
据统计,现有数百万个网站对一个甚至多个主要浏览器产生兼容性的问题,也造成极差的用户体验。Web 开发者社区应该修正此问题。
互联网在过去 20 年里有着大幅度的转变。1996 年大约只有100 万个网站;现在已经超过 10 亿个网站。同样,当年大约只有 5000 万个网民;现在已超过 30 亿上网人口。面对如此多的网络内容,现在大约有 24000 款移动设备,共达到 81 亿台联网设备让大家随时享受。
从上图可看出:与 20 年前相比,上网人口成长了 60 倍、网站数量是以前的 1000 倍、上网设备种类增长了 24000 倍。
内容、设备、用户的爆炸性增长,让「跨浏览器兼容性」也是自 1996 年以来更亟待解决的问题。知名网站〈Stack Overflow〉上就有 55,000 个问题包含了「跨浏览器(cross-browser)」的关键词在内,更有数不清的问题是在询问「在某个浏览器中的运作情形」。任何有关特定浏览器显示特定网站的问题,当然也就是潜在的兼容性问题。
上图说明:在〈Stack Overflow〉网站中,包含以上关键词在内的问题数量。
所以,跨浏览器兼容性还是个不小的问题。除了 Mozilla 长期注意这件事情之外,我们认为其他人也该时时关心一下。为什么要关心这个问题?开发者怎能确定所有人都跟你用一样的浏览器?每个人的需求与习惯不尽相同。几乎没有人会因为仅一个网站不能正确显示内容,就换个浏览器。满足所有人的需要,就代表你确实掌握了自己的实力。而且现在有很多工具可以用协助你轻松达成。
那么到底是哪些因素造成了跨浏览器不兼容呢?答案很复杂。以下是目前最常见的原因:
上图说明:其实 W3C 已经规范 12,106 组 API,但未有任何一款浏览器完全实现。而且开发者使用 Chrome 的比例失衡,远超过用户的比例。
在互联网发展初期就有某些挑战等着我们去解决。当然,Web 的开发水平在这些日子以来已有很大进步。许多产品与工具可帮助我们在所有浏览器上构建绝佳的体验。
开发者应改详细阅读以下几点并认真思考,让自己的下个网站能向所有人提供更丰富的内容。
使用其他浏览器的人比你想象的要多
许多开发者认为自己使用的浏览器,就是其他人所用的唯一浏览器,因此只针对该浏览器开发网站。根据某些统计数字指出, 70% 的 Web 开发者在台式机上使用 Chrome,但只有 45% 的网民是跨所有设备都使用 Chrome,也只有 57% 的网民在台式机上使用 Chrome。只在 Chrome 构建并测试网站,就忽略了将近一半的全球用户。
浏览器市场占有率也依地理位置不同而有所不同。Chrome、Firefox、IE/Edge 在许多地方都独占鳌头,但用户的比例不一。德国人比较爱用 Firefox;日本人则常用 IE;不少澳洲人选用 Safari。每 5 个越南人就有超过 1 人使用 Chromium 的分支「Cốc Cốc」浏览器。只对单一浏览器设计自己的内容,就会错失这些较独特的市场。
其实,你爱用的浏览器功能,不一定适用于其他浏览器。浏览器厂商对不同功能往往有不同的开发安排。所以可能一堆人无法享受某浏览器的新 API。
这些因素往往会在意外状况下一起发生:选用了所有浏览器不支持的 API,只用单一浏览器测试自己的网站,接着在该浏览器并不普及的市场中发布了网站,结果就可能先丧失超过一半的潜在用户,也就等于错失了许多收益与客户。我们当然应该多花点心思避免类似的情况。
兼容性将影响网站亲和度
可跨浏览器兼容的网站,代表着它必须针对未知的客户端环境设计并撰写程序代码,才能尽可能让最多人接触到网站内容。而用户当然也可能是身心残疾人士,且相关人数可能超乎你的想象。如果你的网站能在所有浏览器上都运作畅通,却忽略了屏幕阅读软件(Screen reader),也就又失去了可能的机会。
身心残疾者也是一个庞大的市场。举例来说,光是美国国内视力障碍的网民总人数,就超过全加拿大的上网人口。最新的 Web 功能早就可以满足这类用户的需要,就等开发者实际开发而已。
关于网站亲和度的存取技术,可不仅是对身心残疾者有所帮助,举例来说:
用户不切换浏览器,只切换网站
你可能想说用户会换浏览器再进入你的网站,但其实许多人不会换,或根本无法换浏览器。
用户对无法运作的东西没什么耐心,而是直接换去竞争对手的网站就好。某个关键环节要是发生错误,就可能让潜在用户一去不回。根据 Akamai 的统计:
不只如此,许多用户根本不知道该如何安装新的浏览器,甚至不知道什么是浏览器;其实很多人不知道「网站」、「浏览器」、「搜索引擎」之间的差异。
即使知道可以、想要安装新的浏览器,也可能没办法安装。许多公司限制员工只能用某款浏览器,或是如图书馆中的公用计算机也无法安装其他软件。
举例来说,微软(Microsoft)曾要求用户在 2016 年 1 月 12 日之前改用新版浏览器,但直到 2016 年 3 月为止,IE 用户仍超过 1/3 继续在用过期且再无安全更新的版本。从 2015 年 6 月到 2016 年 5 月的这一年里,还有 2.07% 的用户在用已停止更新的 IE8;同一年里超过 3/4 的时间,还有 1.59% 的人在使用 IE9。而 IE10 在全年有 10.95% 的市场占率。另外值得一提的是,从 3 月开始,这些浏览器的使用率已经大幅度下滑。
不顺畅的上网体验绝对会赶走用户。如果网站有一半流量是来自于不同的浏览器,而你也想维持这些流量,当然就应该用此款浏览器测试自己的网站。
上图说明:至少有 43% 网民使用的浏览器,与开发者所偏好的不同。而且不同国家所爱用的浏览器也大有不同。
兼容性=你自己的实力
构建 Web 内容需要非常专业的技术,可不像简单的打扫环境而已。我们都为自己的作品而自豪,不断磨练自己的技术,企图展现自己的专业程度。因此必须:
因此,身为网站开发者,你所成功发布的网站也就代表你自己的履历。你的客户、同事、目前与未来的老板,都会在乎是否能享有绝佳体验。
但往往时间与业务上的限制而无法尽善尽美。你必须先满足交件期限;你的老板可能只在乎 iPad 上是否能正常显示网站,根本没听过「网站亲和度」或「可存取性」。你在期限内根本无暇修正 IE 错误。即使无法达到最理想的状态,也应当在规定时间内尽力完成。
期限逼近时,你会希望自己所用的框架也能测试跨浏览器兼容性,这样可帮你省下许多工夫。但你的网站并非纯粹的框架程序代码,而且你必须全权负责。跨浏览器兼容性的测试工作应脚踏实地,不能想着抄捷径去完成。
写程序代码必须努力坚持;为需要的人提供信息;所建立的丰富功能也要能让所有人享受。这些都是优秀 Web 开发者的终极目标。
许多新工具都能帮上忙
现在你知道「重视自家网站兼容性」的理由了,但要怎么做呢?