2012-02-08 14 views
3

キーボードでアクセスしたい地図を作成しています。 V3はデフォルトでキーボードからアクセスできますが、地図がクリックされるまでキーボードの機能にアクセスできないようです。私はマップを含むdivタグにあなたを連れて行く選択するためのリンクを追加しましたが、これはうまくいきませんでした。実際にマウスを使わずに一般的な地図のクリックイベントを有効にする方法はありますか? GoogleマップV3キーボードアクセシビリティ

グラム

+0

はここアプローチを参照してください:http://stackoverflow.com/a/13060527/1417588 –

答えて

0

あなたはfocus()機能を使用してみました、ありがとう!

+0

私はフォーカス機能を使用してみました。私はgetfocus()と呼ばれる関数を参照するonclickイベントを持つボタンを作成しました。関数は次のようになります:function getfocus(){document.getElementById( "map")。focus(); }私はこれがトリックをすることを望んでいたが、それはしなかった。タブをタップして選択する方法もありません。 – user1178632

5

私が通常やっているのは、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; 
    } 
}); 
+0

私はこのコードが何をしているのか正確にはわかりません。私は基本的に、自分のサイトに、地図上でクリックイベントをアクティブにするリンクを選択させるか、ユーザーが地図をタブダウンしてEnterを押してマップを選択できるようにしたいとします。 – user1178632

+0

このコードでは、余分なリンクは必要ありません。これにより、ユーザーのタブが地図に表示され、上/下/左/右/ +/- を押してパン/ズームすることができます。キーボードのユーザーは、地図のキーボードにアクセスできるようにするためのリンクを見つける必要はありません。また、既にフォーカスがあるときにフォーカスを与えるためにenterを押す必要はありません。 – DaveS

+0

私はあなたのコードを試して、それは働いた!問題と思われる唯一のことは、キーボードで地図マーカ/クラスタにアクセスすることです。 infowindowが表示されているマーカをクリックしても、今はキーボードでマーカを選択する方法がありません。これが可能ならば私はちょうど興味があった。 – user1178632

関連する問題