Как можно добавить тег «alt» к слоям листов и повысить показатель доступности приложения, в частности, для Esri.WorldGrayCanvas, но любой из плиток, найденных по адресу http://leaflet-extras.github.io/leaflet-providers/preview/?
Как сделать слои плитки Leaflet доступными
Ответы (2)
Вы можете манипулировать изображениями тайлов при их загрузке, подключившись к событию tileload:
esriGray.on('tileload', function (tileEvent) {
tileEvent.tile.setAttribute('alt', 'Map tile image');
});
Таким образом, изображения всегда имеют тег alt, даже после масштабирования/панорамирования, и вам не нужно использовать Jquery.
esriGray.on('tileload, tileloadstart', function (tileEvent) { tileEvent.tile.setAttribute('alt', 'Map tile image'); });
- person geospatialem; 22.12.2014
Решение для доступа к плиткам при загрузке карты приведено ниже, однако решение для плиток при увеличении/уменьшении масштаба в настоящее время не найдено.
Примечание. Поскольку приведенное ниже решение ссылается на jQuery, убедитесь, что вы ссылаетесь на JavaScript jQuery в своем коде.
После установки переменной базовой карты, например:
var esriGray = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}', {
attribution: 'Map Tiles © Esri — Esri, DeLorme, NAVTEQ',
maxZoom: 16
});
Добавьте функцию готовности документа jQuery, придав панелям плиток Leaflet атрибут. Затем запустите функцию, указывающую, что на каждый фрагмент карты будет ссылаться «Изображение фрагмента карты» и его порядковый номер.
Примечание. Это решение применимо только тогда, когда приложение загружается, и как только пользователь масштабирует/переворачивает, альтернативные изображения исчезают.
$(document).on('ready', function(){
addMapTileAttr('.leaflet-tile-pane img')
});
function addMapTileAttr(styleClass) {
var selector = $(styleClass);
selector.each(
function(index) {
$(this).attr('alt',"Map tile image " + index);
});
}