【问题标题】:Do browsers with accessibility support CSS or JavaScript?具有可访问性的浏览器是否支持 CSS 或 JavaScript?
【发布时间】:2012-07-07 22:30:20
【问题描述】:

我目前正在研究一种蜜罐解决方案,以防止在我的网站中出现垃圾邮件,该解决方案包括添加一些具有随机名称的字段,并通过在 HTML 元素中添加 style="display : none;" 来使用 CSS 隐藏它们。提交时,如果这些字段中的任何一个不为空(应该如此),则表示垃圾邮件机器人刚刚提交了表单。那个或恶意用户。无论哪种方式,帖子都会被拒绝。

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

通过 JavaScript 删除每个 CSS display 属性等于 none 的字段可能会阻止不支持 CSS 的浏览器显示本应隐藏的字段。

因此,这对于支持以下功能的浏览器来说可以正常工作:

  • CSS 和 JavaScript
  • 仅 CSS
  • 仅 JavaScript

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

【问题讨论】:

    标签: javascript css browser accessibility blind


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      为盲人或任何其他无障碍浏览器做浏览器

      如今,没有面向残障人士的浏览器。过去有几个项目,但主要的辅助技术 (AT) 制造商齐心协力,让他们的软件首先与 IE 一起工作,然后在 Firefox 上工作。您正在尝试将 Chrome 或 Opera 与 AT 一起使用,无论支持还是失败。

      支持 CSS 和 JavaScript,只支持 CSS,只支持 JavaScript 还是不支持?

      这真的归结为使用了什么 JS、CSS 和 AT 组合。一般来说,AT 对 CSS 很好。有四个方面可能会导致问题:颜色/对比度、display:tabledisplay: nonevisibility:hidden。由于前两个不是问题的一部分,我们将跳过它们。 JAWS 仅公布在 <span> 上具有 display:nonevisibility:hidden 的内容。我将省略太多关于 JS 的评论,但 WebAIM 有一篇文章提供了an overview of JS and accessibility

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

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

      阅读:

      Screen Readers and display: none

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

      【讨论】:

      • 感谢您的回答! (以及其他所有人)。我认为我不会遵循的唯一建议是添加“忽略此字段”标签,因为它会使垃圾邮件机器人非常容易识别它。
      • 鉴于-根据文章- display : none 在几乎所有情况下都有效并且 JS 也有效,用户很可能甚至看不到该字段,因此我猜测缺少标签在这里不会成为可访问性问题
      • 我不是垃圾邮件机器人专家,但我认为他们不会特别解释 label 标签中的措辞。机器人可能只是抓取一个页面寻找inputs 并试图将垃圾推入。所以忽略这将是针对 AT 的。如果您有一篇文章表明机器人知道使用“忽略”、“跳过”等词跳过输入,请分享。
      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        如果您因为恶意用户而这样做,那是没用的方法 - 我的意见。我不是那些坏人,但我只需单击一下即可禁用 CSS 样式。现代浏览器中的简单插件。有利于 Web 开发,也可能适用于其他事情。这就像重新发明轮子以使用固定形式的随机隐藏输入名称。 Catch 1 工作组合(读取源代码 F4),您可以使用它任意多次。

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

        或者放一个<input type="hidden" 并带有额外的代码(哈希或其他任何东西),您的应用程序可以识别这些代码。

        【讨论】:

        • 大多数垃圾邮件机器人都愚蠢到无法使用这些技巧,因为他们的愚蠢方法在其他任何地方都有效,而且它不起作用的网站也是活跃的网站管理员删除和打击垃圾邮件的网站,所以没有必要去)坚持。除非您是 Google、Hotmail、银行或任何能够破解他们的反垃圾邮件而获得丰厚回报的网站。然后会付出巨大的努力。
        【解决方案5】:

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

        就其他浏览器而言:自 Netscape 4.something 以来,每个主要的网络浏览器都支持基本的 CSS 规则,如 display: none。如果有人使用的浏览器根本不支持 CSS,那么他们将面临比您的注册表单更大的问题。

        【讨论】:

        • 普通网页浏览器和Internet Explorer同句?!
        • 公平点!我的意思是“正常”,因为它是一个主流浏览器,而不是一些特殊用途的渲染引擎。
        猜你喜欢
        • 1970-01-01
        • 2010-10-27
        • 2011-07-03
        • 1970-01-01
        • 2010-11-23
        • 1970-01-01
        • 2014-02-01
        • 2016-10-19
        • 1970-01-01
        相关资源
        最近更新 更多