我为一个基金会工作,该基金会旨在提高人们对互联网无障碍的认识。为了演示,我们想提供一个小型研讨会,模拟不同的残疾/缺陷。这是通过一个专门为这次演示创建的网站来完成的。

其中一个被证实的缺陷是有震颤,这意味着经历颤抖,难以控制的手部运动。由于这种缺陷,当鼠标在链接上时,很难准确地移动鼠标光标并按下鼠标按钮。一些老年人和有疾病的人,如帕金森氏症患者,都可能患有震颤。

现在我想以一种不可预测的方式移动鼠标光标,这样人们就很难点击一个小按钮。因为JavaScript不允许直接移动鼠标光标,所以我正在寻找其他方法来实现这一点。我有以下想法:

使用模拟鼠标晃动的鼠标驱动程序/实用程序。 通过CSS隐藏鼠标光标,在原始光标的位置放置一个晃动的鼠标光标的GIF动画(使用JavaScript),然后让目标链接每隔几秒就可以点击一次,持续一秒钟左右。这至少会给人一种感觉,好像总是在错误的时刻点击。

虽然第一个想法很酷,但我找不到这样的工具,无论是Mac还是Windows。我自己也没有任何编程技能。

第二个想法似乎有点笨拙,但我认为它会达到预期的效果。

有人有别的想法吗?


当前回答

你不能指望任何人都能把他们的手握得非常稳定,所以你可以考虑的一件事是,

向用户解释你在做什么, 让演示页面上的可点击元素比正常情况下要小得多。 将示例系统上的鼠标灵敏度提高到最大。

我的理由是(注意,我不是用户体验或医学专家)通过缩小可点击元素,你为大多数人创造了一个类似的问题,患有帕金森病的人每天都会面对一个网站。

其他回答

这是我的xdotool脚本使用AutoIt的windows版本。这是我的第一个AutoIt脚本,只花了几分钟就写好了,所以我相信它可以改进。只需保存扩展名。au3并使用AutoIt (run Script x86)运行它。

HotKeySet("{HOME}", "GStart")
HotKeySet("{PAUSE}", "Gpause")
HotKeySet("{ESC}", "Gexit")

While 1
    Sleep(100)
WEnd

Func Gstart()
While 1
    sleep(100)
    $pos = MouseGetPos()
    $x = $pos[0] + 10 - Random(0, 20, 1)
    $y = $pos[1] + 10 - Random(0, 20, 1)
    MouseMove($x,$y)
Wend
Endfunc


Func Gpause()
While 1
   sleep(100)
Wend
Endfunc

Func Gexit()
    MsgBox(0, "exit box", "Script exited")
    Exit 0
EndFunc

控制

Home:开始模拟。 pause:暂停模拟。 Esc:退出模拟。

或者使用我在这里编译的版本。

你不能指望任何人都能把他们的手握得非常稳定,所以你可以考虑的一件事是,

向用户解释你在做什么, 让演示页面上的可点击元素比正常情况下要小得多。 将示例系统上的鼠标灵敏度提高到最大。

我的理由是(注意,我不是用户体验或医学专家)通过缩小可点击元素,你为大多数人创造了一个类似的问题,患有帕金森病的人每天都会面对一个网站。

这只是一个让震颤“正确”的想法,你可以记录一个真实病人的鼠标运动,这使它更真实,当你告诉人们数据来自哪里。

这里有一个脚本,让猫跟随你的鼠标光标,你可以调整一个,让第二个光标跟随(跳跃)你的光标。该页面正在计算第二个游标的位置,因此它还可以确定单击事件是否成功。

如果可以的话,请让它基于网络,这样你会接触到更多的人,而不是让他们安装一个程序或激活flash或其他任何东西。

为什么不使用硬件解决方案呢?有一些特定的鼠标你可以添加重量,比如罗技G500。不放重物,而是放一个小的振荡马达,让鼠标轻微摇晃。这也更加模拟了实际的混乱:不仅仅是光标在抖动,而是整个手和鼠标都在抖动。这也意味着你可以展示网站以外的其他软件。

你也可以把一些东西粘在鼠标上,而不是带重量槽的鼠标,但这样更明显。

你可以使用一套模拟老年人的服装,比如本文中描述的那种……我怀疑手颤抖的部分只是一个振动电机绑在手腕上,加上一些厚手套,使手通常笨拙。