2011-01-20 90 views
6

我们目前正在使用touchmaplite JavaScript库在我们的移动web应用上部署“slippy”地图(即,用手指在触摸屏设备上移动的地图)。该地图作为iframe嵌入到我们的网页中。是否可以检测iPhone上的网页上是否启用了VoiceOver?

当我们使用VoiceOver在iPhone上测试此设置时,我们发现VoiceOver在地图上“卡住”,并且不会读取它(或确实滚过它)。这对我们来说是一个巨大的绊脚石,我们不希望在我们的网站上向后兼容无障碍支持。

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

感谢

回答

1

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

显然,这是没有太大用处,因为你的目标是用户的语音,他们的设备上没有Flash支持,但我提到它只是让你意识到其他平台的作用 - 我不太熟悉苹果,所以不知道是否有类似于Flash的东西可以使用。

就你而言,你可以利用隐藏文本,包括一个链接,它可以被屏幕阅读器找到,但不是有远见的用户,它会指向屏幕阅读器用户的备用页面;这个替代页面可以复制你现有的页面,只是没有嵌入式地图。

另一种方法是,只有一个隐藏的链接,配音\ screenreader用户可以跳过地图,也许提醒他们VoiceOver发生“卡住”的问题。

隐藏的文本可以通过使用CSS来定位具有负余量的文本来实现,例如,

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

以这种方式使用文本意味着它是不是视力正常的用户可见的(除非他们禁止CSS),但仍然被屏幕阅读器读出。

这两种解决方案都不是你真正想要的东西我害怕,但可能会给你一些想法。

相关问题