7

現在、touchmaplite JavaScript ライブラリを使用して、モバイル Web アプリに「滑りやすい」マップ (つまり、タッチスクリーン デバイス上で指で動き回るマップ) の展開をテストしています。この地図は、iframe として Web ページに埋め込まれています。

VoiceOver を使用して iPhone でこのセットアップをテストしたところ、VoiceOver がマップで「スタック」し、それを読み飛ばさない (または実際にスクロールして通過する) ことがわかりました。これは私たちにとって大きな障害です。私たちのサイトのアクセシビリティ サポートを後退させたくありません。

要素を VoiceOver によって「無視」するようにマークしたり、VoiceOver が他の方法 (おそらく JS) で有効になっているかどうかを検出したり、iframe を非表示/削除したりすることは可能ですか?

4

2 に答える 2

2

Windows では、スクリーンリーダーが使用されているかどうかを検出する方法についていくつかの議論がありました。Flash 内でアクション スクリプトを使用して、WMicrosoft アクティブ アクセシビリティ レイヤーが使用されているかどうかを確認するという、可能性のある (ただし信頼できない) 方法が 1 つ挙げられました。(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 に答える