7

我们目前正在测试使用 touchmaplite JavaScript 库在我们的移动网络应用程序上部署“滑动”地图(即,用手指在触摸屏设备上移动的地图)。该地图作为 iframe 嵌入到我们的网页中。

当我们在带有 VoiceOver 的 iPhone 上测试此设置时,我们发现 VoiceOver 会“卡在”地图上,并且不会读过去(或者实际上滚动过去)。这对我们来说是一个很大的绊脚石,我们不想在我们网站上的可访问性支持上倒退。

是否可以将元素标记为被 VoiceOver “忽略”,或者检测 VoiceOver 是否以任何其他方式(可能是 JS)启用,然后隐藏/删除 iframe?

4

2 回答 2

2

我知道对于 Windows,关于如何检测是否正在使用屏幕阅读器已经进行了一些讨论。提到了一种可能(但不可靠)的方法,它涉及在 Flash 中使用 actionscript 来查看是否正在使用 WMicrosoft Active Accessibility 层。(http://www.paciellogroup.com/blog/?p=61)

显然,这并没有多大用处,因为您的目标是语音用户,他们的设备上不会支持 Flash,但我提到它只是为了让您了解其他平台的功能 - 我对 Apple 并不太熟悉,所以不知道有没有类似Flash的东西可以用。

在您的情况下,您可以使用隐藏文本,包括一个链接,该文本将被屏幕阅读器而非有视力的用户拾取,这将指向屏幕阅读器用户的备用页面;这个备用页面可以复制您现有的页面,而无需嵌入地图。

或者,只有一个隐藏链接,画外音\屏幕阅读器用户可以跳过地图,也许会提醒他们VoiceOver 被“卡住”的问题。

隐藏文本可以通过使用 CSS 以负边距定位文本来实现,例如

.hiddenText {
position: absolute;
margin-left: -3000px;
}

以这种方式使用文本意味着有视力的用户看不到它(除非他们禁用 CSS),但屏幕阅读器仍会读出它。

恐怕这两种解决方案都不是您真正想要的,但可能会给您一些想法。

于 2011-01-24T10:31:52.413 回答
0

aria-hidden就是你要找的。

<div>some stuff</div>
<div aria-hidden="true">stuff you want to hide from the screen reader</div>
<div>more stuff</div>
于 2019-04-07T16:13:00.290 回答