从google maps v3中删除tabindex

时间:2018-04-28 12:01:35

标签: javascript google-maps accessibility

我正在尝试从地图api的所有部分删除tabindex,我已经尝试过这个post的答案:

google.maps.event.addListener(MAP, "tilesloaded", function(){
    [].slice.apply(document.querySelectorAll('#map a')).forEach(function(item) {
        item.setAttribute('tabindex','-1');
    });
})

但它不起作用,我在一个简单的地图上尝试然后添加到应用程序,所以这里是简单的页面:

<!DOCTYPE html>
<html>
  <head>
    <title>Simple Map</title>
    <meta name="viewport" content="initial-scale=1.0">
    <meta charset="utf-8">
    <style>
      /* Always set the map height explicitly to define the size of the div
       * element that contains the map. */
      #map {
        height: 50%;
      }
      /* Optional: Makes the sample page fill the window. */
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
    </style>
  </head>
  <body>
    <input type="text">
    <div id="map"></div>
    <input type="text">
    <script>
      var map;
      function initMap() {
        map = new google.maps.Map(document.getElementById('map'), {
          center: {lat: -34.397, lng: 150.644},
          zoom: 8
        });
      }         
    </script>
    <script src="https://maps.googleapis.com/maps/api/js?&callback=initMap"
    async defer></script>
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

如果您希望地图不是互动的,那么使用Static Maps API似乎是一个合理的选择

编辑:根据您的评论,如果您不想为非屏幕阅读器用户提供完全功能,您可以选择将地图插入<div aria-hidden="true">标签,该标签应禁用屏幕阅读器来阅读它。您还可以在地图上方添加“跳过地图”链接,让键盘用户(没有屏幕阅读器)绕过地图。