当甚至移动浏览器都有 JavaScript 时,是否真的有必要考虑潜在的无脚本用户?
15 回答
是的。您的网页不仅被人们使用:它们还被搜索引擎、爬虫和屏幕抓取工具使用。大多数这些自动工具不支持 Javascript,而且基本上没有一个会生成 UI 事件或查看深度嵌套的 AJAX 数据。你想要一个简单的静态 HTML 后备,如果没有别的,那么你的网页可以被搜索引擎很好地索引。
忘记那些禁用 Javascript 的疯子吧;想想机器人!
是的。
人们可以(并且确实)在禁用 javascript 的情况下浏览。如果您的网站无需用户显式为您启用 javascript 即可运行,那么他们会很高兴。
当然,确切的相关性取决于您的目标受众。
我认为你不应该为了适应非 JS 用户而大费周章,原因如下:
所有现代浏览器都支持 JS
这是今天浏览器使用情况的快照:
http://www.w3schools.com/browsers/browsers_stats.asp
即使是最古老的通用浏览器 IE6,也支持基本的 JavaScript 和 AJAX。如果您决定不集成 JS 依赖的某些 b/c 功能,这证明您实际上是在为开始启用 JavaScript 并明确选择禁用它的人做这件事。我认为这些人应该期望某些功能,甚至整个站点不会因此而工作。
很少有人愿意禁用 JS
基于我上面的观点,普通网络用户不知道或不在乎 JS 可以在浏览器中被禁用。大部分是精通技术的人群,他们知道如何做到这一点(包括我自己),作为精通技术的用户,我们也应该知道何时重新打开它。
支持费用
鉴于上述情况,请考虑选择容纳主要自愿禁用 JS 的用户会带来非常实际的成本。如果您正在管理一个对 UI 要求很高的大型项目,您可以轻松地花费大量的开发时间来适应非常小的用户偏好。检查你的预算。如果要让 2 名开发人员在项目上每人额外工作 40 小时来完成这一壮举,那么您很容易会在对绝大多数用户来说根本不是问题的事情上花费数千美元。如何利用这些时间和投资进一步提升您的核心竞争力?
优先级
在这点上我很可能是错的,但我认为很难找到
不依赖 JavaScript 来使其
部分功能正常
工作的主要媒体或社交网站。如果依赖
其网站的运营和可访问性来维持业务的主要企业没有这样做,那么很有可能是因为不需要它。
注意事项:
了解你的市场。继续构建语义化的 XHTML/CSS(最好使用 RDFa W3C 推荐)。仍然努力让视障人士可以访问您的网站。不要相信你读到的一切。;)
免责声明:
我上面的论点很大程度上取决于你如何定义“优雅退化”。如果您的意思是所有链接仍然有效,那是一回事,但如果您的意思是所有链接仍然有效并且袋熊游戏也有效,那是另一回事。我并不是要争辩让您的网站如此依赖于 JS,以至于非 JS 用户无法访问它的任何部分。我试图证明某些功能的可接受性,甚至是一些核心功能,依赖于 JS。
它是相关的,即使在 10 到 20 年后可能到处都支持 javascript,它仍然是相关的。让事情在没有 javascript 的情况下工作是重要的开发技术,因为它迫使你保持简单和declarative
. 理想情况下,javascript 应该只用于增强体验,但您的网站不应该依赖它。
从维护的角度来看,将大部分代码采用声明性格式(html+css)并尽可能少地采用命令式(javascript)具有明显的优势。
我的位置:
我使用 NoScript 浏览,所以如果我访问您的网站,它将无法使用 Javascript。我不期望完整的用户体验。
在打开 JS 之前,我想要的是确保你有足够的能力并且没有恶意,并且我实际上想要你使用 JS 的目的。
这意味着,如果您真的希望我使用您的网站,您应该允许我使用链接环顾四周。(如果我看到一个没有 Javascript 完全没用的网站,我通常认为设计者不称职。)您应该让我知道启用 Javascript 将获得什么样的功能,并且您应该以一种看似合法的方式展示该网站.
我认为这并不过分要求。
优雅的退化/渐进式增强/不显眼的javascript是绝对相关的!
与所有可访问性问题一样:想象一下,在外面无法使用页面的人是什么感觉。
想象一下,你正在环游世界,你在某个旅馆或网吧里,电脑、旧软件、旧浏览器都非常旧,你想查一下你的航班,但你意识到你不能因为某些 javascript 不兼容您正在使用的旧浏览器。(针对不同的场景尝试“旧手机”或“卡在公司防火墙后面”)
想象一下使用屏幕阅读器和网络为盲人打开了一个充满可能性的世界,想象一下因为 javascript 而发现这些可能性再次关闭是什么感觉。
如此吸引你更好的本性。
您可能还希望这样做以使您的网站可被搜索引擎访问。
是的,这是相关的。今天使用的移动浏览器并非都启用了 Javascript。当然,它可以在新手机上使用。但是像我这样的数以百万计的人拥有运行旧版浏览器的手机,而对于我们所有人来说,需要 JS 的浏览体验完全被破坏了。
我什至不打扰访问那些在编码时没有考虑渐进增强的网站。我在技术上并不落后于时代。我的手机用了一年。但我不会因为网络体验受损而重新签订合同并购买新手机。
这取决于你的目标受众是谁。默认情况下,我关闭了 JavaScript,并在我知道网站的意图时将其打开。
在禁用 Javascript 的情况下浏览通常要快得多(digg.com 是没有 JS 的闪电),这就是它受欢迎的原因。
在 Opera 中这非常简单:您只需按 F12 并取消选中 javascript 选项。我总是在没有 Flash、Java(不是 javascript)、动画图像和声音的情况下浏览。我在每个站点(例如 YouTube)上启用 Flash。如果我的系统变慢,有时我会暂时关闭 JS。
不要忘记:
- 屏幕阅读器(我认为他们大多禁用了 JS)
- 文本浏览器或其他非常旧的系统
- 广告拦截器(如果您的文件名发生在他们的雷达之下)
- 任何完全不支持 JS 或 JS 中断的旧浏览器(例如 IE6 不支持一些现代 JS 的东西)。
解决方案是使用渐进增强而不是优雅降级,即从基本的 HTML 开始并添加 CSS。然后将 Javascript 和/或 AJAX 添加到网站的某些部分。
例如,如果您有一个像 Stack Overflow 这样的网站,则对答案进行投票可以正常提交表单。如果启用 JS,它将执行 AJAX 请求,更新投票计数并取消表单提交,而无需离开页面。SO并没有这样做......
我总是打开 NoScript,除非我出于多种原因信任该站点,包括跨站点脚本、点击劫持和 HTML 注入。这不是我偏执,而是因为我认识很多开发人员,并且知道他们中的大多数人不知道什么是网络安全,更不用说如何避免漏洞。
因此,除非我信任一个网站,否则我不可能让它做任何花哨的事情。
对于不熟悉的人,有一些关于这个主题的有趣的博客文章:
我将不得不在这里为对方辩护。人们设计没有 javascript 的网站的原因很大程度上是理想主义的。只要有足够的时间和金钱,目标是可以实现的,并且肯定会向尽可能多的人开放您的网站。然而实际上这样做会减慢您的开发速度,增加您必须处理的测试用例的数量,并最终影响那些使用 javascript 的用户的应用程序质量。
在我看来,选择让你的网站只与支持 js 的浏览器兼容并告诉那些没有它的用户他们错过了它是完全合理的。这使您可以专注于创建大多数用户能够查看的丰富内容。
这条规则当然有例外,但如果你想为大多数用户创建一个好的网站,或者有一个客户在时间或金钱有限的情况下追求华丽的网站,那么决定它是启用 js 的浏览器唯一的做法是合理的。
真正的问题不在于它是否相关,而在于是否使用优雅降级或渐进增强作为您的脚本策略。
当谈到 JS 的优雅降级时,我实际上处于一个有趣的位置。我正在开发一个机器人和爬虫完全没有业务研究的网络应用程序。他们没有什么可以发光的东西应该被索引。
然而,Web 应用程序附带的信息站点应该被索引,因此 JS 在那里优雅地降级。
在 Web 应用程序中,如果您没有启用 JavaScript,那么您可能不应该在那里。它旨在提供丰富的互动体验。Web 应用程序实际上需要启用 JS,并且您不必坐在公司防火墙后面。
我们没有提供任何恶意服务,只是我们对 Web 应用程序的意图和目的不同。我们的 Web 应用程序的目标和我们的信息站点的目标完全不同。
我使用 JavaScript。我总是让我的浏览器保持最新。但有时,我的 Internet 连接非常糟糕,以至于脚本无法加载。
也有以下情况:
- 某些脚本会加载,但其他脚本会失败,在这种情况下,网站的某些部分会停止运行
- 脚本正在加载,但我想点击“提交”而不等待那个花哨的褶边菜单
- 脚本出现故障,因为它被部分加载,然后在该半阶段缓存
- 我太着急了,所以我决定使用 Lynx。
现在,我并不是说我的互联网一直都不好,甚至大部分时间都不好,但它确实发生了。随着互联网迅速扩展到世界各地的许多农村地区,我确信我不是唯一一个。因此,除了上面提到的 Nelson 机器人之外,还要记住另一件事。(提示:检查您的人口统计数据)。
如果您不希望页面在 Javascript 关闭时工作,那么只需将其作为 html 中的消息,如果 javascript 处于打开状态,通过使用不显眼的 javascript,您可以摆脱该消息并使应用程序的其余部分可见。
根据您编写的内容,就javascript版本而言,如果用户拥有的浏览器没有最新版本,您可能需要降级,因此优雅地处理这也很重要。