原文:Progressive Enhancement and Graceful Degradation: Making a Choice 链接:https://www.sitepoint.com/progressive-enhancement-graceful-degradation-choice/ 翻译:Robin

上一篇文章中,我们讨论了优雅降级和渐进增强两个概念,来丰富浏览器支持以及获得更多的受众。简单来说:

  • 优雅降级 是一种在现代浏览器中构建应用的同时保证旧浏览器的功能性的实践。
  • 渐进增强 则按照一个用户体验的基线去构建应用,并随着浏览器的支持程度提升功能性。

一个无障碍的 web 应用可能会同时使用两种方式。无论你采用那种实践方式可能最终的目标是一致的。

访问应用的无障碍要求

创建一个对所有浏览器支持的网站或者应用显然是一个理想情况。然而,你的计划、预算和功能集都可能带来限制。同时,你还需要警惕无障碍立法带来的法律风险,例如美帝的508条款还有腐国的残疾歧视法案。你最好从现在开始就考虑你的无障碍要求。

当然有例外,也许你的应用非常依赖于脚本或者插件,迎合旧版本或者不兼容的系统的要求有点说不通。例如,在线视频编辑器多数需要Flash、Silverlight或者其他类似技术,纯HTMl版本可能并不可行。

许多开发者觉得他们的网站或者应用是针对专用浏览器的以及仅支持这些的应用。例如,Mozilla 插件对于非火狐用户不可用。然而,运行 Mozilla 插件的网站在多数浏览器中也运行的很好:

  • 1、 Mozilla 支持 Web 标准,他们没理由去创造一个火狐专用的网站,并且
  • 2、 使用其他浏览器的用户可能访问了一个有插件的页面并找出了更多关于火狐的信息。阻止这样的用户或者提供一种更差的体验并不会拉近用户与火狐的距离。

另一个极端是一些电商网站例如亚马逊。如果他们限制一些用户的访问可能会损失数以千计美刀。

选择你的开发道路

在我看来,优雅降级在解决问题的方向上走在了错误的道路。渐进增强通常提供了一种更加合理的方法:

  • 你可以构建一个更加稳定的应用,能够在任何设备上运行并提供可靠的基础功能。
  • 随着新技术和浏览器的更新去逐步增强你的应用,而不需要改变核心功能。相反,优雅降级需要浏览器支持名单,一旦新的浏览器更新了,你可能需要更新应用。
  • 增强让用户更加快速和容易到达目标而这些不是前提条件。例如,一个 JavaScript 滑块可以让用户快速的选择一个值,但是也可以使用标准的 HTML 输入框。

有一些例外情况下优雅降级可能更加适用:

  • 如果保持系统仍然可用的话,美观问题通常可以被接受。旧浏览器对于 CSS 的支持有更多的限制——在核心功能保留的情况下布局可能会不同甚至变得丑陋。
  • 像 Google 地图这样视觉复杂的应用非常依赖JavaScript,没有 JavaScript 的支持整个应用可能要重新开发。这并不是说 Google 地图没有使用优雅降级,但是我猜想开发两个应用可能更加简单和划算。

总之,渐进增强能提供更好的稳定性和浏览器支持。初始的开发成本很高但是应用的长期维护更少。

接下来:一系列文章为你展示如何使用渐进增强技术构建简单的小部件。

查看上一篇:渐进增强和优雅降级:抉择

相关阅读: