2012-02-08 2 views
3

저는 키보드 액세스가 가능한지도를 만들고 있습니다. V3는 기본적으로 키보드에서 액세스 할 수 있지만지도를 클릭하기 전까지는 키보드 기능에 액세스 할 수없는 것으로 보입니다. 지도를 포함하고있는 div 태그로 이동하는 select 링크를 추가했으나 작동하지 않았습니다. 실제로 마우스를 사용하지 않고 일반지도 클릭 이벤트를 활성화하는 방법이 있습니까? 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 divide를 만드는 것으로 시작하는 것입니다. 브라우저의 자연스러운 탭 순서에 추가됩니다. 그런 다음 키 누름에 따라 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