我目前正在研究一种蜜 jar 解决方案,以防止在我的网站中出现垃圾邮件,该解决方案包括添加一些具有随机名称的字段,并通过添加 style="display : none;" 用 CSS 隐藏它们在 HTML 元素中。提交时,如果这些字段中的任何一个不是空的——它应该是空的——这意味着垃圾邮件机器人刚刚提交了表单。那还是恶意用户。无论哪种方式,帖子都会被拒绝。
现在,这会完美地工作,但我假设所有用户都拥有支持 CSS 的浏览器。
通过 JavaScript 删除 CSS display 属性等于 none 的每个字段可以防止不支持 CSS 的浏览器显示假定的隐藏字段。
因此,这对于支持以下功能的浏览器来说效果很好:
那么我的问题是,盲人浏览器或任何其他以可访问性为目标的浏览器是否支持 CSS 和 JavaScript,仅支持 CSS,仅支持 JavaScript,还是不支持?
最佳答案
do browsers for the blind or any other accessibility-targeted browser
现在没有专为残障人士设计的浏览器。过去有几个元素,但主要的辅助技术 (AT) 制造商齐心协力,让他们的软件首先与 IE 兼容,然后再在 Firefox 上运行。您正在尝试将 Chrome 或 Opera 与 AT 一起使用,支持是偶然的还是失败的。
support CSS and JavaScript, only CSS, only JavaScript or none?
这实际上取决于所使用的 JS、CSS 和 AT 组合。一般来说,AT 与 CSS 没问题。有四个方面可能会导致问题:颜色/对比度,display:table , display: none和 visibility:hidden .由于前两个不是问题的一部分,我们将跳过它们。 JAWS 仅公布具有 display:none 的内容或 visibility:hidden在 <span> 上.我将省略对 JS 的过多评论,但 WebAIM 有一篇文章提供了 an overview of JS and accessibility .
consists in adding a few fields with random names and hiding them with CSS by adding
style="display : none;"in the HTML element.
我假设您正确添加了 <label> s 到你所有的表单元素。请将它们添加到蜜 jar 字段中,以防它们被读取。我会将“忽略此字段”添加到 <label>
阅读:
关于javascript - 具有辅助功能的浏览器是否支持 CSS 或 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11379571/
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No
我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel
只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您
我正在使用Rails3.1并在一个论坛上工作。我有一个名为Topic的模型,每个模型都有许多Post。当用户创建新主题时,他们也应该创建第一个Post。但是,我不确定如何以相同的形式执行此操作。这是我的代码:classTopic:destroyaccepts_nested_attributes_for:postsvalidates_presence_of:titleendclassPost...但这似乎不起作用。有什么想法吗?谢谢! 最佳答案 @Pablo的回答似乎有你需要的一切。但更具体地说...首先改变你View中的这一行对此#
我有一个div,它根据表单是否正确提交而改变。我想知道是否可以检查类的特定元素?开始元素看起来像这样。如果输入不正确,添加错误类。 最佳答案 试试这个:browser.div(:id=>"myerrortest").class_name更多信息:http://watir.github.com/watir-webdriver/doc/Watir/HTMLElement.html#class_name-instance_method另一种选择是只查看具有您期望的类的div是否存在browser.div((:id=>"myerrortes
我有一个Controller,我想为这个Controller创建一个助手,我可以在不包含它的情况下使用它。我尝试像这样创建一个与Controller同名的助手classCars::EnginesController我创建的助手是moduleCars::EnginesHelperdefcheck_fuellogger.debug("chekingfuel")endend我得到的错误是undefinedlocalvariableormethod`check_fuel'for#有没有我遗漏的约定? 最佳答案 如果你真的想在Controll
我从用户Hirolau那里找到了这段代码:defsum_to_n?(a,n)a.combination(2).find{|x,y|x+y==n}enda=[1,2,3,4,5]sum_to_n?(a,9)#=>[4,5]sum_to_n?(a,11)#=>nil我如何知道何时可以将两个参数发送到预定义方法(如find)?我不清楚,因为有时它不起作用。这是重新定义的东西吗? 最佳答案 如果您查看Enumerable#find的文档,您会发现它只接受一个block参数。您可以将它发送两次的原因是因为Ruby可以方便地让您根据它的“并行赋
RSpec似乎按顺序匹配方法接收的消息。我不确定如何使以下代码工作:allow(a).toreceive(:f)expect(a).toreceive(:f).with(2)a.f(1)a.f(2)a.f(3)我问的原因是a.f的一些调用是由我的代码的上层控制的,所以我不能对这些方法调用添加期望。 最佳答案 RSpecspy是测试这种情况的一种方式。要监视一个方法,用allowstub,除了方法名称之外没有任何约束,调用该方法,然后expect确切的方法调用。例如:allow(a).toreceive(:f)a.f(2)a.f(1)
我有一个模块stat存在于目录结构中:lib/stat_creator/stat/在lib/stat_creator/stat.rb中,我在lib/stat_creator/stat/目录中有我需要的文件,以及:moduleStatCreatormoduleStatendend当我使用该模块时,我将这些类称为StatCreator::Stat::Foo.new现在我想要一个存在于应用程序中的根Stat类。我在app/models中制作了我的Stat类,并在routes.rb中进行了设置。但是,如果我转到Rails控制台并尝试在应用程序/模型中使用Stat类,例如:Stat.by_use