Windows では、スクリーンリーダーが使用されているかどうかを検出する方法についていくつかの議論がありました。Flash 内でアクション スクリプトを使用して、WMicrosoft アクティブ アクセシビリティ レイヤーが使用されているかどうかを確認するという、可能性のある (ただし信頼できない) 方法が 1 つ挙げられました。(http://www.paciellogroup.com/blog/?p=61)
デバイスで Flash をサポートしていないボイスオーバー ユーザーをターゲットにしているため、明らかにこれはあまり役に立ちませんが、他のプラットフォームが何をしているのかを知ってもらうために言及します。私は Apple にあまり詳しくないので、使用できる Flash に似たものがあるかどうかはわかりません。
あなたの場合、リンクを含む非表示のテキストを利用できます。これは、スクリーンリーダーによってピックアップされますが、目の見えるユーザーではなく、スクリーンリーダーのユーザー向けの代替ページを指します。この代替ページは、マップが埋め込まれていなくても、既存のページを複製できます。
別の方法として、ボイスオーバー\スクリーンリーダーのユーザーがマップをスキップしてスキップできる非表示のリンクを用意し、VoiceOver が「スタック」する問題を警告することができます。
非表示のテキストは、CSS を使用してテキストを負のマージンで配置することで実現できます。
.hiddenText {
position: absolute;
margin-left: -3000px;
}
このようにテキストを使用すると、(CSS を無効にしない限り) 目の見えるユーザーには表示されませんが、スクリーンリーダーによって読み上げられることを意味します。
どちらの解決策もあなたが本当に探しているものではありませんが、いくつかのアイデアが得られるかもしれません。