1174 sujets

Accessibilité du Web

Bonsoir à tous,

Un problème a été maintes fois soulevé sur les forums consacrés à Google Map : l'impossibilité de naviguer sur les cartes en utilisant le clavier. Plus précisément, il n'est possible d'utiliser la navigation au clavier que si, au préalable, on a cliqué sur la carte avec la souris... ce qui est évidemment un non-sens total.

Après avoir passé plusieurs jours a mener des recherches sur ce sujet, et avoir testé quelques unes des solutions proposées, la solution la plus simple à mettre en œuvre me semble être celle proposée par ce test. Elle consiste à ajouter 2 liens "en dur" permettant d'activer ou de désactiver la navigation au clavier à l'intérieur de la carte. Ces liens sont accessibles par la touche "tab", et permettent donc de manipuler la carte uniquement en se servant du clavier. Étant donné le peu de code à ajouter, cela me semble être une solution facile à déployer pour toutes les cartes d'un site.

Cette solution me pose néanmoins quelques problèmes :
1). Qu'en dites-vous, tout d'abord, sur le plan de l'accessibilité ? Cela vous paraît-il être effectivement satisfaisant ?

2). Cette solution se base sur la version 2 de l'API Google Map. J'utilise, en ce qui me concerne, la V3 (puisque Google a indiqué que la V2 ne sera plus disponible d'ici 2 ou 3 ans). Mais je ne trouve pas d'équivalent dans cette version ! Et sur ce point (j'y ai pourtant consacré pas mal d'heures ces derniers jours) mes recherches sont restées vaines. Le code à intégrer est le suivant :
function setKeys() {
	var event = {srcElement: mapContainer, target: mapContainer, nodeType: 1}; 
	GEvent.trigger(document, "click", event); 
}

Quelqu'un connaîtrait-il l'équivalent dans la version 3 de l'API Google Map ?

3). Pour finir, dans la solution proposée, les liens proposés sont inscrits "en dur" dans le code HTML de la page :
<a href='javascript:setKeys();'>Use keyboard in map</a>

Cela signifie que, si le JavaScript n'est pas disponible, on se retrouve avec 2 liens évidemment totalement inactifs, donc inutilisables et inutiles. Quelqu'un sait-il s'il est possible d'insérer de tels liens via le code JavaScript ?

Merci de vos avis et de votre aide éventuels, et bonne soirée à tous !
Je ne connais strictement rien à l'API de google, mais je peux répondre à la dernière question: bien sûr qu'il est possible d'ajouter les liens directement en javascript, en se servant du DOM, ou au pire de document.write (absolument pas dommageable dans ce cas de figure).

Petit exemple rapide :

var a = document.createElement('a');
var container = document.getElementById('linkContainer');
a.setAttribute('href', '#');
a.appendChild(document.createTextNode('Activer la navigation clavier sur la carte'));
a.onclick = function () {  };
container.appendChild(a);
Merci QuentinC. Il me semble avoir trouvé l'équivalent pour l'api V3... mais ça ne fonctionne pas :
var a = document.createElement('a');
var container = document.getElementById('bord-map');
a.appendChild(document.createTextNode('Activer la navigation clavier sur la carte'));
var event = {srcElement: map, target: map, nodeType: 1};
a.onclick = function () { google.maps.event.trigger(map, 'click', event); };
container.appendChild(a);

La carte réagit bien comme si elle était cliquée (par exemple, la fenêtre d'infos sur mes markers disparaît), mais la navigation au clavier ne fonctionne toujours pas... Pourquoi ? Merci de votre aide !
Bonjour Patidou Smiley cligne

Je connaissais cette page... mais elle est malheureusement pour la version 2 de l'API Google Map. Merci quand même !