检测使用辅助功能访问我们网站的用户



我们已经实现了具有辅助功能的响应式网站。它是在Angular 1.x中构建的。我想知道用户是否通过辅助功能访问该网站。如何在 javascript 中访问设备参数?

使用屏幕阅读器的人使用标准浏览器(Firefox,Chrome,Internet Explorer/Edge等(。它们通过辅助功能 API 为屏幕阅读器提供有关页面结构的信息。但不可能知道用户是否使用辅助功能 API。

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

辅助技术用户之间有很多截然不同的现实:各种软件和/或硬件,用于各种残疾。 因此,您的问题很模糊:您要检测屏幕阅读器吗?屏幕放大镜?为无法使用双手的人提供指点设备(用声音和/或眼睛驱动(?阅读有助于解决 DIS 问题 ?别的? 如您所见,辅助技术的范围非常广阔,并且通常有多少用户就可以自定义它们。

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

对于检测屏幕阅读器或放大镜,就难度而言,这更难一步。什么是典型的 scren 阅读器用户?键盘,没有鼠标,没有触摸?也许不是。如果我有足够的视力来区分主要区域,但不足以精确点击带有小图标的按钮怎么办? 如果我正在使用听写软件并且由于某种原因无法使用键盘,或者只是因为现在我的手很忙怎么办? 在 iOS 上存在旁白,因此屏幕阅读器可能具有触摸屏。等等。

检测还有另一个问题:我有一只鼠标,但这并不意味着我一定会使用它。可以在笔记本电脑模式和平板电脑模式之间切换的计算机呢? 相反,我可以成为屏幕阅读器用户,并且可能会因错误而移动鼠标。 您的网站只会对我是什么做出错误的结论,并会向我展示一个不合适的界面。

啊,还有最后一个:如果我是盲人,尝试使用您的网站,但无法做到,最后打电话给视力正常的人来帮助我怎么办?此人将无法帮助我,因为您的网站采用了屏幕阅读器界面?

这是事实:不要假设用户拥有或没有/他是谁或不是谁。 认为用户可以同时使用所有输入方式,或者他可以随时更改它们。

D'ont be faoul:提供替代文本并使您的组件始终可访问,而不仅仅是当您知道用户正在使用屏幕阅读器时。

以这样一种方式设计你的东西,你不需要尽可能多的设备检测。

相关内容

最新更新