2011-01-20 8 views
6

Obecnie testujemy wdrażanie "poślizgów" (tj. Tych, które poruszają się palcem po urządzeniu z ekranem dotykowym) w naszej mobilnej aplikacji internetowej przy użyciu biblioteki JavaScript Touchmaplite. Ta mapa jest osadzona jako element iframe na naszej stronie internetowej.Czy można wykryć, czy VoiceOver jest włączony na stronie internetowej iPhone'a?

Kiedy przetestowaliśmy tę konfigurację na iPhonie z VoiceOver, okazało się, że VoiceOver "utknął" na mapie i nie będzie go czytał poza (lub przewinął). To dla nas wielka przeszkoda, nie chcemy cofać się wraz z obsługą ułatwień dostępu na naszej stronie.

Czy można oznaczyć element jako "ignorowany" przez VoiceOver lub wykryć, czy VoiceOver jest włączony w inny sposób (być może JS), a następnie ukryć/usunąć element iframe?

Dzięki

Odpowiedz

1

wiem z Windows, nastąpiła pewna dyskusja na temat sposobu wykrywania, czy czytnik ekranu jest używany. Wspomniano o jednej możliwej (ale niewiarygodnej) metodzie, która wymagała użycia ActionScript w programie Flash, aby sprawdzić, czy używana jest warstwa Aktywnej Dostępności WMicrosoft. (http://www.paciellogroup.com/blog/?p=61)

Oczywiście nie jest to zbyt użyteczne, ponieważ kierujesz głos na użytkowników, którzy nie będą obsługiwać Flasha na swoich urządzeniach, ale wspominam o tym tylko dlatego, że jesteś świadomy tego, co robią inne platformy - nie jestem zbyt obeznany z Jabłkami, więc nie wiem, czy istnieje coś podobnego do Flasha, którego możesz użyć.

W twoim przypadku możesz użyć ukrytego tekstu, w tym linku, który zostanie pobrany przez czytniki ekranu, ale nie przez widzących użytkowników, co wskazywałoby alternatywną stronę dla użytkowników screenreadera; ta alternatywna strona mogłaby powielać twoją istniejącą stronę, bez samej mapy osadzonej.

Alternatywą jest ukryte łącze, dzięki któremu użytkownicy lektora ekranowego mogą pomijać mapę, prawdopodobnie ostrzegając o problemie z zablokowaniem VoiceOver.

Ukryty tekst można uzyskać, używając CSS do pozycjonowania tekstu z marginesem ujemnym, np.

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

Korzystanie tekst w ten sposób oznacza, że ​​nie jest widoczna dla widzących użytkowników (chyba że wyłączenie CSS), ale nadal jest odczytywane przez czytniki ekranowe.

Żadne z rozwiązań nie jest tym, czego naprawdę szukasz. Obawiam się, ale mogę podać kilka pomysłów.

Powiązane problemy