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

时间:2017-08-01 23:26:36

标签: html5 accessibility

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

辅助技术用户之间存在许多截然不同的现实:各种软件和/或硬件,用于各种残疾。 因此你的问题很模糊:你想检测屏幕阅读器吗?屏幕放大镜?为那些不能用手(用声音和/或眼睛驱动)的人指点设备?阅读有助于解决问题?别的什么? 正如您所看到的,辅助技术的范围非常广泛,并且通常有多种方式来定制它们,就像有用户一样。

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

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

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

啊,另一个最后一个:如果我失明了,试着使用你的网站,不设法做到这一点,最后打电话给有视力的人来帮助我?该人无法帮助我,因为您的网站使用了屏幕阅读器界面?

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

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

以尽可能不需要设备检测的方式设计您的东西。