キーボードでアクセスしたい地図を作成しています。 V3はデフォルトでキーボードからアクセスできますが、地図がクリックされるまでキーボードの機能にアクセスできないようです。私はマップを含むdivタグにあなたを連れて行く選択するためのリンクを追加しましたが、これはうまくいきませんでした。実際にマウスを使わずに一般的な地図のクリックイベントを有効にする方法はありますか? GoogleマップV3キーボードアクセシビリティ
はグラム
キーボードでアクセスしたい地図を作成しています。 V3はデフォルトでキーボードからアクセスできますが、地図がクリックされるまでキーボードの機能にアクセスできないようです。私はマップを含むdivタグにあなたを連れて行く選択するためのリンクを追加しましたが、これはうまくいきませんでした。実際にマウスを使わずに一般的な地図のクリックイベントを有効にする方法はありますか? GoogleマップV3キーボードアクセシビリティ
はグラム
あなたはfocus()
機能を使用してみました、ありがとう!
私はフォーカス機能を使用してみました。私はgetfocus()と呼ばれる関数を参照するonclickイベントを持つボタンを作成しました。関数は次のようになります:function getfocus(){document.getElementById( "map")。focus(); }私はこれがトリックをすることを望んでいたが、それはしなかった。タブをタップして選択する方法もありません。 – user1178632
私が通常やっているのは、tabindex="0"
を追加して、マップdivに焦点を合わせることから始めることです。これにより、ブラウザの自然なタブ順に追加されます。次に、押されたキーに応じてmap.panByまたはmap.setZoomを呼び出すスイッチでkeyup
のイベントリスナーを追加します。ここにjQueryの例がありますが、google.maps.event.addListener(map, 'keyup', function() {...etc.});
でも同じことができます。 jQueryはイベントを作成します。あなたのためにクロスブラウザを使用するので、コードは簡単です。
$('#map').keyup(function(event) {
var o = 128; // half a tile's width
switch(event.which) {
case 37: // leftArrow
map.panBy(-o,0);
break;
case 38: // upArrow
map.panBy(0,-o);
break;
case 39: // rightArrow
map.panBy(o,0);
break;
case 40: // downArrow
map.panBy(0,o);
break;
case 109: // numpad -
case 189: // -
map.setZoom(map.getZoom()-1);
break;
case 107: // numpad +
case 187: // =
map.setZoom(map.getZoom()+1);
break;
}
});
私はこのコードが何をしているのか正確にはわかりません。私は基本的に、自分のサイトに、地図上でクリックイベントをアクティブにするリンクを選択させるか、ユーザーが地図をタブダウンしてEnterを押してマップを選択できるようにしたいとします。 – user1178632
このコードでは、余分なリンクは必要ありません。これにより、ユーザーのタブが地図に表示され、上/下/左/右/ +/- を押してパン/ズームすることができます。キーボードのユーザーは、地図のキーボードにアクセスできるようにするためのリンクを見つける必要はありません。また、既にフォーカスがあるときにフォーカスを与えるためにenterを押す必要はありません。 – DaveS
私はあなたのコードを試して、それは働いた!問題と思われる唯一のことは、キーボードで地図マーカ/クラスタにアクセスすることです。 infowindowが表示されているマーカをクリックしても、今はキーボードでマーカを選択する方法がありません。これが可能ならば私はちょうど興味があった。 – user1178632
はここアプローチを参照してください:http://stackoverflow.com/a/13060527/1417588 –