在可访问性方面,目前使用的最旧的浏览器是什么?我可以实际编程的最旧的浏览器是什么?

Accessibility wise, what's the oldest browser currently in use? What's the oldest browser I can realistically program for?

如果我想编写一个可以被实际仍在使用的任何设备正确解析的网页,我应该使用哪些语法和功能?

我所说的当前正在使用的设备,其使用情况在统计上没有意义,无法包含在浏览器使用统计信息中,但仍然足够合理,可以在现实世界中使用而不会太过牵强:例如屏幕 reader、Point-Of-Sale/Kiosk 设备、智能电视或游戏机等互联网设备。

我最近被指派开发一个 HTML 登陆页面,需要支持 - 听我说 - 古老的 Microsoft Internet Explorer 6。是的,你没有看错。

长话短说,它在 public 管理项目的要求中,该项目长期处于法律边缘,重新制定这些要求比开发和完成这些要求更成问题.至少根据我的老板。此外,它与撰写当前 HTML 时事通讯应该没有太大区别。

但这让我开始思考 - 我能在野外实际找到的最古老的浏览器(例如,提供最古老 HTML 标准支持的浏览器)是什么?

我不是在谈论相关性或 caniuse-level-of-support 数字,只是出于或多或少的现实原因(不包括“这里是 Windows 3.1 VM getting to the internet”复古挑战)人们仍然会使用它来上网。还有一些安全要求(大部分已更新 SSL/TLS)切断了相当多的旧设备,主要是游戏机,如 Dreamcast、PS2 w/Network Access Disk 和 PSP,或原始的 Nintendo DS , 所以那些也被排除在外。

除了前面提到的 IE6.0,我还可以想到一些遗留手机的 Opera Mini 浏览器(哪个版本?),或者某种仍在使用 Netfront 运行时的互联网设备(IIRC Playstation 3 仍在使用它的 pre-webkit 版本)。

有什么建议吗?

preword - 很抱歉这变得有点啰嗦,我稍后会尝试整理它并更加关注它。我也明白你可能必须听你老板的话,所以这已经成为我代表你向你老板咆哮。我希望你可以使用其中的一些来与你的老板建立一个强有力的论据来改变规范。它也没有回答标题中的问题。可能值得一些反对票,但我喜欢咆哮!

鉴于 OP 提出的评论,此答案适用于此。

我需要支持可访问性的最古老的浏览器标准是什么?

WebAIM annual survey 是获取此信息的好地方。

在'Browsers'部分我们可以看到2.1%的受访者仍在使用IE 6,7或8。

不幸的是,他们没有指出使用 IE6 的用户的比例,但我想总体上应该不到 0.1%,因为很少有网站仍在 IE6 上正常运行。

我个人开发的是 IE9 标准,所以使用 ES5 JavaScript(或编译成 ES5),HTML 5.0 特性和 CSS3 non-experimental 特性。

这是因为使用 IE8 及以下版本的用户由于与他们拥有的软件的兼容性,往往是屏幕 reader 用户。他们还倾向于使用一组非常具体的网站,因为大多数网站都不适合他们。

许多人会争辩说您必须包括所有人,而在理想的世界中您应该这样做。但是,您还必须考虑到您在可访问性方面的目标是为尽可能多的人提供最佳体验。使用 IE8 及以下版本是不可能的,因为您失去了很多对可访问性有用的 HTML5 标准(特定表单相关属性,按区域导航,例如 <main><nav> 等.).

那么那些卡在 IE6-8 上的人呢?

如前所述,他们往往是 reader 屏幕用户。这样做的好处在于,只要您开发有效的 HTML、用户正确的 WAI-ARIA 属性等(基本上获得 AAA WCAG 2.1 评级或尽可能接近,至少 AA 评级)然后在 IE6 中-8 即使不完美,该站点仍将正常运行并可用。

CSS 是您主要的挣扎所在,如果您仍然想遵循最佳实践,那么让网站在 IE6 中运行是非常可怕的(例如,尝试设计一个按钮的样式以使字体大小足够大并且颜色对比度 AAA 级)。另外,你如何在没有数百次黑客攻击的情况下让它对移动用户做出响应?

如果您必须支持旧版浏览器怎么办。

您可以提供网站的单独版本(震惊、恐怖、喘息)。

使用用户代理嗅探将人们重定向到一个单独的、精简的、只有文本的网站版本。请务必在主站点中包含 link,并指明这是为旧版浏览器设计的站点版本。

这需要仔细规划,因为您必须确保在两个站点上维护相同的信息并且在两个站点上复制引入的功能。

这就是为什么没有人这样做的原因,我根本不推荐。要考虑的事情的数量、您可以引入的功能的限制以及更新一个版本而不是另一个版本的可能性非常高(即使使用内容管理系统)。只犯其中一个错误可能会给你带来比根本不实施更多的问题。

结论

HTML5 引入了许多可访问性的重要功能。

导航区域是最大的胜利之一。

按照旧标准进行设计,您最终可能会得到一个较少可访问的站点。

例如,a lot of WAI-ARIA attributes don't work in modern browsers,更不用说在旧版浏览器中。尝试退回到使用 WAI-ARIA 属性是行不通的。

可访问且易于使用的布局怎么样? IE6 是布局表格的时代,因为 CSS 在定位方面非常有限。 (想要一个粘性导航栏?祝你好运!)

为了提供 'best effort' 我会使用 HTML5 垫片来至少修复 IE7 和 IE8 之类的布局,IE6 是不可行的。

另一个论点是安全性。您究竟是如何编写与 IE6 兼容的安全 JavaScript 的。哎呀,今天在 'how do i fix this problem in IE6' 上尝试在互联网上找到一条活跃的信息。也许您的解决方案是根本不使用 JavaScript。 (是的,有人会争辩说渐进增强允许你使用 JavaScript,但是你有 JavaScript 错误,这意味着你在 'Robust' 下无法通过 WCAG)。

哦,你知道吗,你甚至不能使用 <style>*{position:relative}</style><table><input></table>,因为那样会使浏览器崩溃?

作为这个咆哮部分的最后一个想法,Windows 98 将 运行 IE9 和 NVDA。所以我们不能说人们可能没有财力升级,因为 NVDA 是 fee。我们可能会争辩说他们没有关于如何升级的技术知识,在这一点上我只能说在网站上写一篇关于如何升级和重定向那里的人的文章?在这一点上,你画线的地方有点傻。

如何赢得与老板的争论/帮助他们改变规格

你的老板处境不利,但可能没有 'firepower' 他们需要说服规格轻松更改。

这是他们赢得争论的简单方法: WCAG 2.1 AA 是我们可以在不冒被起诉风险的情况下构建此站点的最低法律标准。

在保持与 IE6 的兼容性且不影响辅助功能的情况下,这是不可能的。

错误获取可访问性的成本,加上与尝试开发这样一个旧标准相关的额外开发成本,使得这不可行。

考虑到开发具有大量安全漏洞的应用程序可能会使网站容易受到攻击,我强烈建议我们将最低要求更改为 IE8。

tl;博士

您实际需要担心的最旧的浏览器是 Internet Explorer 9。即便如此,您对兼容性要求也很慷慨。不要尝试开发一个适用于自 2001 年以来遇到的所有浏览器的网站(是的 IE6 是 2001 年),你会破坏更多试图容纳不想升级的人的人的东西(Windows 98 将 运行 IE9 和 NVDA).

不要尝试支持 IE8 及更低版本,因为您实际上最终会做出会对可访问性产生负面影响的决定。

如果您可以创建一个符合 HTML5 valid and CSS3 valid website that is WCAG 2.1 AA 标准的网站,那么您已经比世界上 99% 的网站更容易访问了。

你问的问题不对。

我构建的用户可能与您构建的用户不同。对于一个观众来说,网站是否仅在当前浏览器上加载可能无关紧要。对于其他观众来说,这可能是唯一重要的事情。

此外,一些网站完全需要更新的浏览器功能才能运行...没有基于网络的后备可用。此外,当前的浏览器不支持任何东西(即 Safari、Lynx 等),因此这不一定是年龄问题……而是能力问题。

你应该问的问题是,你如何决定支持什么,不支持什么。没有指出您的分析和日志,这不是技术问题,而是业务问题。