2011-01-20 132 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),但仍然被屏幕閱讀器讀出。

這兩種解決方案都不是你真正想要的東西我害怕,但可能會給你一些想法。

相關問題