具有辅助功能的浏览器是否支持CSS或JavaScript?

时间:2012-07-07 23:44:34

标签: javascript css browser accessibility blind

我目前正在开发蜜罐解决方案,以防止我的网站中的垃圾邮件,其中包括添加一些具有随机名称的字段,并通过在HTML元素中添加style="display : none;"将其隐藏在CSS中。提交时,如果这些字段中的任何一个不是空的 - 它应该 - 它意味着一个spambot刚刚提交了表单。那个或恶意用户。无论哪种方式,帖子都被拒绝了。

现在,这可以完美地运行,但我假设所有用户都拥有支持CSS的浏览器。

通过JavaScript删除每个CSS display属性等于none的字段都可以阻止没有CSS支持的浏览器显示所谓的隐藏字段。

因此,这适用于支持的浏览器:

  • CSS和JavaScript
  • 仅限CSS
  • 只有JavaScript

我的问题是,盲人或任何其他可访问性目标浏览器的浏览器是否支持CSS和JavaScript,只支持CSS,只支持JavaScript或 none

5 个答案:

答案 0 :(得分:4)

  

为盲人或任何其他可访问性目标浏览器执行浏览器

现在没有针对残障人士的浏览器。曾经有过一些项目,但主要的辅助技术(AT)制造商共同采取行动,让他们的软件首先使用IE,然后使用Firefox。你正在冒险使用Chrome或Opera与AT,支持被击中或错过。

  

支持CSS和JavaScript,只支持CSS,只支持JavaScript还是没有?

这实际上归结为使用JS,CSS和AT组合。一般情况下,AT对CSS很好。有四个区域可能会导致问题:颜色/对比度,display:tabledisplay: nonevisibility:hidden。由于前两个不是问题的一部分,我们将跳过它们。 JAWS仅宣布display:none上有visibility:hidden<span>的内容。我将遗漏对JS的过多评论,但WebAIM有一篇提供an overview of JS and accessibility的文章。

  

包括添加一些具有随机名称的字段,并通过在HTML元素中添加style="display : none;"将其隐藏在CSS中。

我假设您正确地将<label>添加到所有表单元素中。请将它们添加到蜂蜜罐领域以防它们被阅读。我也会在<label>添加“忽略此字段”。

阅读:

Screen Readers and display: none

JAWS, Window-Eyes and display:none: Return to 2007

答案 1 :(得分:2)

现代屏幕阅读器通常通过将文本到语音界面“挂钩”到普通的Web浏览器(例如,Internet Explorer)上来工作。因此,它们支持浏览器通常支持的所有CSS和Javascript。 display:none完全是犹太人。

就其他浏览器而言:自Netscape 4.something以来,每个主要的Web浏览器都支持像display: none这样的基本CSS规则。如果有人使用的浏览器根本不支持CSS,那么他们处理的问题比你的注册表格要大得多。

答案 2 :(得分:2)

当我有时对这个世界感到失望时,我会使用Lynx,而且它不支持CSS。在这种情况下我做的是在隐藏字段中写入默认值,如:Please DON'T fill anything into this field

照顾任何看不见的人,但愚蠢的机器人仍会覆盖它。然后,如果价值与完全 Please DON'T fill anything into this field和利润不同,我会检查我的代码!

顺便说一句 这种隐藏的字段方法无论如何都不会阻止确定的攻击者,所以如果攻击者检查页面的来源,讨论会发生什么是一个没有实际意义的问题。我们只是希望停止群集机器人 - 能够识别这样的文本的机器人(每个开发人员使用他们自己的语言来传达信息)远远不会落入脚本小子的手中,即使它们确实存在。那么最后一部分就是猜测。

答案 3 :(得分:1)

如果你是因为恶意用户而这样做是无用的 - 我的意见。我不是那些坏人,但只需点击一下即可禁用CSS样式。在现代浏览器中轻松插入。适用于Web开发,也可能用于其他方面。它就像重新发明轮子一样,以固定形式随机隐藏输入名称。捕获1个工作组合(阅读源代码F4),您可以根据需要多次使用它。

为什么不简单地额外命名可见输入并将其名称存储在会话中并在提交后进行比较?

或者在其中添加一个<input type="hidden",其中包含额外的代码(哈希或其他任何内容),您的应用只能识别这些代码。

答案 4 :(得分:0)

添加其他人的答案,我会说像JAWS这样的辅助软件甚至支持显示属性的动态变化(例如,通过按下按钮显示/隐藏div)。