타일 레이어에 'alt'태그를 추가하고 응용 프로그램의 액세스 가능성 점수를 높이려면 어떻게해야합니까? 특히 Esri.WorldGrayCanvas이지만 타일은 http://leaflet-extras.github.io/leaflet-providers/preview/ ?액세스 할 수있는 전단지 타일 레이어를 만드는 방법
2
A
답변
2
당신은 타일 이미지를 조작 할 수있다 Jquery를 사용해야합니다.
0
맵로드시 액세스 할 수있는 타일 솔루션은 아래에 나와 있지만 확대/축소 할 때 타일에 대한 해결책은 이 아니며 현재는입니다.
참고 : 아래 해결책은 jQuery를 참조하므로 코드에서 jQuery의 JavaScript를 참조하고 있는지 확인하십시오.
베이스 맵 변수, 예컨대을 : 설정 한 후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를 문서 준비 기능을 추가합니다. 다음으로 각지도 타일이 '지도 타일 이미지'및 해당 색인 번호로 참조됨을 나타내는 함수를 트리거합니다.
참고 :이 솔루션은 응용 프로그램이로드되고 사용자가 확대/축소하면 즉시 대체 이미지가 사라집니다.
esriGray.on('tileload', function (tileEvent) {
tileEvent.tile.setAttribute('alt', 'Map tile image');
});
이미지가 항상 ALT 태그가 그런 식으로도 줌/팬 후 당신이 돈 '그들이 tileload 이벤트에 접선에 의해로드 할 때
$(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);
});
}
감사합니다. iH8! ** tileloadstart **를 포함하도록 코드를 약간 편집했습니다. 다음 업데이트는 다음과 같습니다'esriGray.on ('tileload, tileloadstart', 기능 (tileEvent) { \t \t tileEvent.tile.setAttribute ('고도', '지도 타일 이미지'); \t \t});' – geospatialem
문제 없음 항상 환영합니다. 그러나 tileloadstart 이벤트에서 alt 속성을 설정해야하는 이유에 대해 설명 할 수 있습니까? 내게 쓸데없는 것 같아 ... – iH8
좋은 지적, 그들은 중복됩니다. ** tileload ** 이벤트는 초기 타일로드에서만 작동하지만 ** tileloadstart ** 이벤트는 초기로드 및 후속 타일로드를 처리하는 것으로 보입니다. 따라서 초기 코드를 ** 'tileloadstart'**로 바꾸고 트릭을 수행하십시오. – geospatialem