Web开发人员是否应该继续努力用JavaScript逐步增强我们的Web应用程序,以确保功能正常降级,从而确保可访问性?还是我们应该花费时间专注于新功能或其他开发领域?您是否有任何项目特别要求JavaScript功能(几乎是我的全部要求),并且这些要求还要求正常降级吗?

为了提出这个问题,我请了程序员。没有启用JavaScript的stackexchange.com,我收到以下消息:“程序员-Stack Exchange在启用JavaScript的情况下效果最佳”。尽管该站点通常可以正常运行,但登录非常困难。 (我无法投票解决任何问题。)

我认为这是一种令人满意的开发方法。想象一下,使网站的所有功能都可以与普通的旧HTML和服务器端逻辑一起使用时所付出的努力。另一方面,我不知道有多少用户被这种方法疏远了。动态功能会正常降低。是这种渐进式增强只是随风而上,还是我们的某些客户实际上在未启用JavaScript的情况下利用某些Web服务吗?

评论

这不是您问题的答案,而是一个有趣的附加轶事:我在代理环境中从事Web开发工作已有4.5年了,在这段时间内,我为一个客户建立了一个网站要求我们确保它在禁用JavaScript的情况下能正常工作-那是一个政府部门,希望W3C的Web内容可访问性指南的所有Priority 1检查点都得到满足(请参阅准则6.3-w3.org/TR/WAI-WEBCONTENT/#gl-new技术)

我在打开NoScript的情况下浏览器,并且我构建的所有内容都旨在在没有JavaScript的情况下很好地降级。通常,这意味着删除完全依赖它们的内容或提供非AJAX后备功能。

通过询问所建网站的人口统计,可以更好地满足您的目的。这是一个充满程序员的网站-精通技术的人。他们知道javascript是什么。以及如何将其关闭。他们知道如何访问禁用JavaScript的浏览器。恕我直言,说...的观众...银行家注定要禁用JavaScript的访问者会少得多。我想您需要相关数据来确定这一点。也许是从相关网站的Google Analytics(分析)数据中得出的。

有时,JavaScript允许您创建一些技巧,这些技巧通常是您不希望失去的安全性。例如,禁止漫游器在此线程上发布评论或答案。

我几乎认为不考虑移动Web开发?由于诺基亚和黑莓的浏览器非常糟糕,它们需要做出特殊的努力(与iPhone / Android不同)。

#1 楼

我使用NoScript,但是将我实际上打算使用的任何站点列入白名单。


安装NoScript时,默认情况下会阻止JavaScript,Java,Flash Silverlight和其他可能的可执行内容。您将能够有选择地在您信任的站点上执行JavaScript / Java /...。如果您只是随机浏览或永久浏览,当您经常访问它并且您真正信任它时,可以允许该网站临时运行脚本。这意味着NoScript会从您自己的浏览器习惯中学习,并且往往会在一段时间后在后台消失,但是如果您偶然发现恶意网页,它会立即返回以节省您的时间。

浏览时显示包含被阻止脚本的站点的通知,类似于由弹出窗口阻止程序发出的通知。
查看该通知或在状态栏图标上了解当前的NoScript权限...




评论


同样在这里;网页必须有权在我的浏览器中运行脚本。我不想在从论坛或其他社区(例如stackexchange)的链接加载的每个页面上运行脚本,直到我更好地了解可以期望得到的内容。

– PeterL
2010-12-13 22:23

我同时运行NoScript,Ghostery和AdBlock。我不同意@Peter。网站必须证明它们都需要JS,并且在我启用它之前值得我花时间。

–meagar
2010-12-04在0:59

哦..所以你们是增加我工作的人..为什么,为什么o ..;;)

– Roopesh Shenoy
2010-12-04 14:28

相当la脚,为什么不回去使用Telnet...。

–黑暗之夜
2010-12-04 16:16

-1 Downvote,OP询问它是否值得努力,您仅描述了如何浏览!

–黑暗之夜
2010-12-04 16:56

#2 楼

我猜没有打开JavaScript的人的比例可以忽略不计。但是要小心搜索引擎机器人!他们通常不使用JavaScript,但是您不希望他们因此而跳过一些重要内容,对吧?

评论


我不能对此表示足够的赞同。您的网站不需要关闭javascript即可看起来漂亮,但是如果无法导航,则搜索引擎排名将受到某种程度的未知。

–robertpateii
2010-12-03 20:35



是的,所有内容都应该可以通过链接访问。 +1。我想,这是渐进式增强革命的核心。

–斯蒂芬
2010-12-03 20:39



相关:w3.org/wiki/…

–起搏器
2014年5月12日在9:54

#3 楼

自从网络浏览器问世以来,我一直在启用JavaScript的情况下进行浏览。

我从来没有遇到过一个值得贬低我的浏览器体验的问题。也许有一些弹出窗口或其他烦人的地方,但我认为带来的好处远大于带来的风险。

评论


我会说你很幸运。我的妻子和其他许多人曾经被《纽约时报》的广告所咬。看来他们租出了广告空间,而且并不是每个人都尽其所能阻止恶意软件。

– David Thornley
2010-12-31 21:06

好的。假设我偶尔会遭到一些恶意软件的攻击。我在计算机上启用了病毒防护功能,并且经常备份所有内容。我在计算生命中修复恶意软件造成的损害的总时间可能少于一周。我愿意承担这种风险,以便在使用互联网时获得更丰富的体验。我并不是说没有风险,只是对我来说这是可以接受的风险。

–JohnFx
2010-12-31 21:23



+1。我看到了一些带有恶意软件的横幅广告。我知道它们具有恶意软件,因为我的病毒扫描程序捕获了它们,并且没有发生任何不良情况。我向网站管理员报告了广告,然后将其删除。

–梅森·惠勒
2010-12-31 21:44

@David Ad Block加上?免费且易于设置

–TheLQ
2010-12-23 23:52

我发现很难相信,因为JavaScript在网络浏览器诞生之初就不存在。

–Jörg W Mittag
2010年12月5日,下午1:36

#4 楼

在Linux上使用控制台时,有时会在GUI不可用时使用Lynx。据我所知,lynx完全不支持JavaScript。

我还使用了较旧的移动浏览器,但对JavaScript的支持却很差。不要期望从该站点获得完全的可用性。我通常只是在使用互联网快速查找内容(例如获取电话号码)。因此,我认为您网站的非JavaScript界面​​应仅限于被动引用角色。 Stack Exchange是一个很好的例子,您可以查找答案,但不能投票。只是作为参考。

评论


是否值得花费额外的$ x千元,几天或几周的工作时间来确保该站点在偶尔使用命令行浏览器的书呆子访问该站点的情况下正常降级?如果该网站是关于如何使用命令行的,那么也许...

–蚂蚁
11年5月16日在8:32



@Ant,我同意这是否会花费数千美元或等价的工作时间,并且命令行用户,NoScript用户和较旧的移动浏览器都不太可能成为您网站的常规用户,那么使用JavaScript并没有错并且无法正常降级。尽管我认为在这种情况下仍然应该向非JavaScript用户显示警告。

–亚当
2011年5月16日15:55

#5 楼

当我不在家或不在办公室时,我会定期通过智能手机的网络浏览器浏览网络。虽然它支持JavaScript(至少是其中的一个子集),但并不总是能够很好地处理它。我发现许多网站无法使用,因为它们消耗了大量资源或只是使浏览器崩溃。

我更喜欢内置浏览器,但是我会保留两个备用浏览器,以防其中一个浏览器做得更好。

评论


我认为这可能比人们在关闭javascript的情况下从台式机冲浪的问题更大。随着智能手机每天变得越来越强大,它可能很快就会消失。不幸的是,我今天没有投票通过:P

– BlackICE
2010-12-03 20:52



@David:智能手机每天都在变得越来越强大,但人们并不是每天都在购买它们……afaik,最合理的合同将您锁定到手机中了几年,然后才可以花钱买到新手机。

–史蒂文·埃弗斯(Steven Evers)
2010-12-3 22:34

@SteveEvers Lol,在2015年末阅读此评论很有趣。

–J.Todd
2015年12月5日17:17

@Viziionary是的。 :)

–史蒂文·埃弗斯(Steven Evers)
2015年12月5日在18:02

#6 楼

该脚本中未提及的一件事是,如果脚本中断,会发生什么。在许多情况下,可能无法在页面上进一步执行脚本,因此需要一种回退到更简单的导航方式的方法。

脚本可能由于各种原因而中断,但最明显的原因是对.js文件的请求不完整,可能会更改DOM(AdBlock等)或引入名称空间命名不正确的对象的各种插件。

与明确禁用脚本的人无关管他呢。附带说明一下,许多现代路由器,防火墙软件等通常都具有从网站禁用/过滤脚本,Flash等的功能,因此甚至可能在网络层上对其进行了配置,从而使用户对此一无所知。公共咖啡馆,学校或其他偏执狂配置了Internet访问权限的其他环境。布局和导航)。

评论


多么好的观点。按照这些思路思考,您对此报价有何看法? developers.stackexchange.com/questions/23535/…

–斯蒂芬
2010-12-04 14:56



我不知道这些情况会如何影响统计信息,但会假设大多数情况不会增加已明确禁用JavaScript的用户数量。我敢打赌,它们大多数是基于某些在页面加载时调用的触发器,而当统计信息已经收集时,javascript可能会在运行时中断。

–吉士
2010-12-04 17:55

#7 楼

我禁用JavaScript的唯一一件事就是测试自己的网站。但是,您可能会对Yahoo所做的一项研究感兴趣,该研究发现1-2%的用户禁用了JavaScript。雅虎的受众群体可能是普通用户的一个很好的代表。

该研究的一个主要报价: />看起来很多,请记住
超过3亿用户访问了
Yahoo!每个月的首页。这意味着
每个月有600万用户访问
,而没有使用JavaScript。因此,即使值得在网站的启用JavaScript的版本上花费时间

仍然有大量用户

谁将无法使用它。


评论


人们禁用它有什么大惊小怪的?我想念什么吗?

–克里斯
2010-12-3 19:56



那句话引人误解。它使用大量数字来吓you您。但是,无论样本集如何,百分比都是百分比。因此,如果一千个人实际使用我的服务,那么根据这些数字,其中有十或二十个将在未启用JavaScript的情况下显示。我认为为他们提供合理的体验而付出的努力是不值得的!真的很贵!我应该给那些人一个消息,说“您将不得不信任我并打开JavaScript。”

–斯蒂芬
2010年12月3日在20:03

@Stephen-这完全取决于您的受众和业务模式。如果您拥有像Yahoo这样的庞大受众群体,则1-2%可能意味着很多收入损失。对于较小的受众,渐进式开发的成本可能会超过收入的损失。另一个必然结果是IE6支持。我在即将进行的重新设计中删除了它,因为使用IE6的受众群体大致相同:1-2%。

– VirtuosiMedia
2010年12月3日在20:16

只需在主题上建立一个及时的链接就可以了。

– MIA
2010年12月4日,0:37

@Eiko或者,您可以开发该站点,以便其正确降级。你知道,有一些标准等等。

–meagar
2010-12-5在5:30

#8 楼

我一直与AdBlock Plus一起使用NoScript。

评论


鬼魂

–起搏器
2014年5月12日上午9:17

#9 楼

当然,您在这里得到的样本确实很偏斜,您可能最好在自己的网站上进行自己的研究。

我个人使用NoScript。我很少愿意将网站列入白名单,但是这样做确实值得。 (换句话说,我需要一个理由,但这并不一定要很有说服力。)

评论


但是,如果您在自己的网站上进行自己的研究,则应记住,您很有可能会获得有偏见的样本。如果您的网站没有JavaScript就被破坏了,那么大多数用户启用了JavaScript的事实就不足为奇了,因为没有JavaScript的用户早就转向了竞争对手...

–Jörg W Mittag
2010-12-05 2:06

确切地说,我记得曾经读过很多人错误地关闭了Javascript。显然,这对我们大多数人都不会发生。

–DistantEcho
2010-12-7 14:04

#10 楼


还是我们中的某些人实际上在没有启用JavaScript的情况下真正利用了某些Web服务?

是的。分为三类。

正常浏览-在Safari或Chrome(Mac OS X)上
-iGoogle,Stack Overflow和一些博客

特殊网站:-Firefox,带有NoScript,AdBlock Plus和FlashBlock
使用不必要的JavaScript的网站。 (如果这很重要,那么一些印度网站会播放宝莱坞电影/音乐。不必要的繁琐脚本-页面本身每5分钟就会重新加载一次) 5310.丢失了。现在我有一台更老的索尼爱立信W700i。我在旅行时使用它进行浏览(Opera Mini很好)。这是(缺少)JavaScript的地方。我不想(主要)与网站互动,只需阅读即可。大部分站点仍然无法查看。

#11 楼

只需阅读实用程序员“ HTML5和CSS3”。作者说有5%的用户关闭了JavaScript。

他的来源:欧盟和美国JavaScript禁用索引编号+ Web Analytics数据收集的影响。


JavaScript禁用索引编号

欧盟:1.4%
美国:3.05%

来源:1.000.000.000使用IndexTools访问了多个行业网站。
(VisualRevenue.com/blog – Dennis R. Mortensen)




百分比似乎也在下降。

评论


2006-2007年的统计数据有多重要?如果这些数据点的趋势沿线性路径继续,那么到2013年,数字将小于零。

–克里斯托弗·约翰逊(Kristopher Johnson)
2013年8月5日14:23



@KristopherJohnson,这将在阈值之后停止线性化,这是常识。无关信息:世界人口的1%是7000万人。

–起搏器
2014年5月12日上午9:20

#12 楼

我倾向于安装NoScript,并且仅安装我信任的白名单网站。否则,在需要时,我会在特定域中使用“暂时允许”。

这只是很好的安全性。否则,您将允许在计算机上运行任意数量的代码!即使是沙盒,也总是存在漏洞。

除了我自己的习惯之外,即使大多数人确实使用JavaScript浏览,开发具有渐进式增强功能的网站仍然很有用。如果您的网站在基线时可以正常运行,则可以为最大的受众群体提供服务。这也意味着您将数据与视觉设计和业务逻辑分开。无论如何,您在客户端使用JavaScript进行的大多数操作无论如何都应该在服务器端完成–这样做应该只是给站点用户带来方便。需要JavaScript的异常,但是通常会有一个期望。例如,有人希望为游戏BioLab Disaster启用JavaScript,但没有为A List Apart这样的网站启用JavaScript,主要是文本。期望我启用了JavaScript提交表单?为什么?这样JavaScript代码可以检查以确保我没有输入数字而不是字母?

评论


就我个人而言,我从来没有在“真实的”网络浏览器中阅读过像A列表这样的网站(因为它只是文本):仅使用rss阅读器或通过instapaper,但我可以理解您的观点。

–狂话
2010年12月4日,0:03

另外,需要javascript提交表单的网站误解了渐进增强的概念,但我仍然认为,仅由于某人可能使用烦人的动画或某某原因而关闭js就像“由于某人可能使用某人而关闭图像”一个令人讨厌的图像”:您损失的多于收益。

–狂话
2010-12-04在0:06



#13 楼

默认情况下,Windows Server上的Javascript被禁用。我们的IT策略阻止了这么多站点,读取某些内容的唯一方法是在服务器上浏览,而JS在默认情况下处于禁用状态。

尽管这不是我的首选配置,但我拥有有时要做。

#14 楼

我使用Google Chrome + AdBlock Plus,并且已打开JavaScript。

编辑:我现在使用NotScript。 :)

Chrome单独阻止了几乎所有弹出式窗口(我只发现了一个闯过一次的网站[Chess.com]),并且AdBlock删除了所有广告,因此我没有遇到任何问题那些。作为“计算机专家” /开发人员,我相信我们应该有非常敏锐的“互联网意识”,并能够判断网站是否可能是恶意的。

评论


绝对没有出售广告空间的可信赖网站。纽约时报网站曾经感染过我妻子的计算机。像这样的网站会向广告代理商出售空间,因此无法保证尽职调查。

– David Thornley
2010-12-5 17:42

#15 楼

在我看来,可访问性比其他任何事情都重要。依赖辅助技术的用户应该始终能够获得网站的大部分功能,即使可能需要更长的时间。有多少用户依赖它无关紧要。我很高兴为一个开放源代码Web项目编写代码,其中可访问性是主要重点之一,而且我实际上学习了如何使事情同时发生-使用和不使用JavaScript。 (以及其他许多与可访问性相关的问题,因为是否使用JavaScript确实只是问题的一小部分。)

有一个有趣的调查表,回答了我刚刚提到的项目用户他们在这里使用什么技术。您可能会感兴趣。

评论


我认为您是在不同的上下文中描述可访问性。这里的讨论将是对所有用户禁用JavaScript的影响,而不是对那些用户的一部分的影响。

–斯蒂芬
11年1月28日在20:18

#16 楼

嗯,现在我感觉就像是欧米茄男人。 :)显然,我是最后一个实际上关闭JavaScript(和cookie)的人。 (除非我对于特定的网站(例如Stack Overflow)需要它。)

我怀疑我缺少很多东西-通常当我为某个网站打开JavaScript时,它所做的事情完全没用,例如让我向大量陌生人吐出大量个人信息,或者向我展示一些动人的广告-就是我想要的,而在我试图专注于阅读文章时,在屏幕上便出现了一些随机移动...

#17 楼

我刚刚在AskUbuntu.com上回答了一个问题-我不得不(暂时-目前)在网站上启用JavaScript。我使用NoScript并在我认为很明确的时候为网站启用JavaScript,但直到现在为止。默认情况下,对于我以前未访问过的网站,JavaScript是关闭的。

#18 楼

我做。一直使用NoScript。我将在对浏览器进行沙箱检查后退出,而不是之前。

评论


很多现代的Internet安全套件沙盒主要浏览器。

–Orbling
2010-12-04 1:35

在osX沙箱上是man -k沙箱,进入* .app查找可执行文件并将其更改为在沙箱中运行;)

–讨厌
2010-12-04 at 2:36

#19 楼

人们一直在谈论这个决定,就好像它是二进制的一样。您可以优雅地降级,也可以不降级。相反,您为什么不考虑适当降低每个功能的成本与收益?例如,您可以确保该网站具有基本功能,但仍然需要使用Javascript的人才能使用特定功能。精简,精简的网站,仅包含基本要素。您可能会花所有的时间让钟声和哨子为那些专门试图避免它们的用户服务。如果您抱怨它有多少工作量,那么您可能正在开发一项值得使用Javascript的功能。 ,使用联系页面并阅读您拥有的任何文章或博客文章。对于任何更复杂的功能,请根据工作与收益进行判断。

评论


大。说得好。

–斯蒂芬
2011年5月17日19:54

#20 楼

我只打开浏览Pr0n(不好的邻居!);-)

我放弃了尝试将其关闭以进行常规浏览,因为事情太多了。有时我什至不知道它坏了,直到我重新打开它。

#21 楼

如果您的网站可供残障人士使用,则最好确保对JavaScript进行备份。

#22 楼

网站策略和规划是针对具体情况的。也就是说,网站根本不需要支持IE浏览器,更不用说考虑诸如CSS3边界半径之类的小问题了。但是其他网站甚至可能需要向后兼容IE6。

我们如何理解我们要为网站计划的内容?部分是根据我们的经验。以程序员和开发人员为目标的网站可以确保其用户使用全新的,更新的浏览器,并且几乎打开了所有功能。但是,新闻网站应该认为,来自地球某个未知地点的人可以连接到他们的网站,以查看正在通过其国家/地区的内部消息。

但是,除了我们的经验和直觉之外,我们还需要在我们的网站上安装某种分析服务,以便基于统计数据,我们未来的决策将更加可靠。例如,谷歌分析是一个非常好的工具。从那里,您可以查看是否确实需要支持旧版浏览器。

但是,如果我们要遵循W3C的Web Accessibility Guidelines,那么我们绝对应该支持很多东西,而无需考虑特定于站点的情况。

在您的特殊情况下,我说不。我们可以放心地忘记中小型网站中的无脚本。但是对于较大的项目,在页面中包含更多标记并不是一个坏主意。

#23 楼

我无法确定此线程上的某些答案是搞笑还是严肃的:cookie比javascript更危险?大声笑

任何网站都应在js和cookie均关闭的情况下进行测试,但这是最低要求。

#24 楼

不要忘记饼干。我认为Cookie比JavaScript更危险。我曾经是NoScript用户,但为了将Cookie网站列入白名单,我已将其关闭。

评论


有人在这里嘲笑您:programs.stackexchange.com/a/23629/24257

–起搏器
2014年5月12日上午9:26

#25 楼

仅当客户端明确请求时,

除非您将要影响大量用户,否则这只是额外的工作。

评论


用户不会向您请求这些内容。他们会离开。

–起搏器
2014年5月12日在9:23

#26 楼

我一直都在使用JavaScript。我也总是有我的最低限度的还原工具包。从控制台和各种检查器来看,至少该功能在WebKit中。

但是,是的,始终启用JavaScript。主要是因为很快人们就会使用Web套接字来破坏各种弊端,就像Flash获得“酷”虚拟机时发生的情况一样。然后,我将关闭JavaScript。如果他们允许我这样做。

我想尽可能多地享受美好。因此,我对这个时代有一些愉快的回忆。我想给我留下深刻的印象,也想对JavaScript愚蠢感到傻笑,因为我真的很想念我们在2007年所拥有的东西,像泉水一样自由的甜蜜信息流,到处都是开源。直到我必须关闭它。

#27 楼

从实时CD / DVD引导(物理上或在VM中)使我对允许Flash和JavaScript执行任务感觉更好。如果我没记错的话,Linux Mint开箱即用地支持Flash。

就网站开发而言,我通常会在JavaScript中进行合理的div交换和菜单操作,但我会尝试使所有内容看起来都正确,并且基本上可以使用CSS。

#28 楼

与其着重于确保整个页面正常降级,不如尝试确保大约75%(或更多,如果可以轻松或快速完成)的页面正常降级(或在没有JavaScript的情况下工作)。我还尝试确保这75%的内容完成了页面的整个功能。例如,我使用JavaScript加载博客中帖子的评论;它使我在注释呈现方面具有灵活性,一致性,并且可以帮助我保持自我施加的单个查询/请求限制。但是,您进入我的博客(阅读帖子)的主要原因仍然是服务器生成的,并且可以在任何浏览器上使用。注释完全包含在一个干净的.js文件中。