2017-08-01 88 views

回答

0

有很多辅助技术的用户中非常不同的现实:各种软件和/或硬件,用于各种残疾。 因此你的问题是模糊的:你想检测屏幕阅读器?屏幕放大镜?指向不能用手的人(用声音和/或他们的眼睛驱动)?阅读有助于解决dys问题?别的东西?正如你所看到的,辅助技术的范围非常广泛,并且通常有很多方法来定制他们,因为有用户。

但是,无论您试图检测什么,答案总是基本相同:没有100%的证明解决方案,大多数解决方案只适用于某些特定情况。 例如,如果您在stackoverflow或其他任何地方搜索如何检测用户是否有键盘,鼠标,触摸屏等,您将看到有不同的答案,但在所有情况下,它们都不是100%确切或完美的。 你可能会得到或多或少明显的线索,他有或没有这个或那个,但你永远不会100%确定;有时候,你只有在一段时间后才能确定一部分。

为了检测屏幕阅读器或放大镜,难度难度更大。什么是典型的scren阅读器用户?键盘,没有鼠标,没有触摸?也许不是。如果我有足够的视力区分主要区域,但是不足以精确点击具有小图标的按钮,该怎么办? 如果我正在使用听写软件,出于某种原因无法使用键盘,或者因为现在我的双手很忙,该怎么办? 在iOS上有VoiceOver,所以屏幕阅读器可能有触摸屏。等等。

而且有与检测另一个问题:我有一个鼠标,但它并不意味着我一定会使用它。那些可以在笔记本电脑模式和平板电脑模式之间切换的电脑呢?相反,我可以成为屏幕阅读器用户,并且可能由于误会而使鼠标移动一点。 你的网站只会对我的内容做出错误的结论,并会给我一个不适当的界面。

啊,和另一个决赛之一:如果我是盲人,试图使用你的网站,不设法做到这一点,最后调用一个有远见的人来帮助我吗?该人将无法帮助我,因为您的网站采用了屏幕阅读器界面?

这里是一个道理:不要认为什么用户已经或没有他/她是谁,或者是没有什么。 认为用户可以同时使用所有输入手段,或者他可以随时更改它们。

闯到大是faoul:给替代文本,让您的组件访问所有的时间,不仅当你知道用户正在使用屏幕阅读器。

设计你的东西,而你并不需要的设备检测,因为大多数,你可以一个方式。

1

使用屏幕阅读器的用户使用标准浏览器(Firefox,Chrome,Internet Explorer/Edge,...)。他们通过可访问性API向屏幕阅读器提供关于页面结构的信息。但是不可能知道用户是否使用可访问性API。

当然,您可以跟踪简单的事情,比如用户是否通过跟踪onmousemove事件来使用鼠标,或者用户是否使用键盘(例如通过onkeyup事件)。屏幕阅读器将模拟某些操作,如focus(),click()但不是所有标准键盘/鼠标事件。你还必须考虑触摸事件。