Back to the original French page Read this page in Italian by Google Translation Read this page in Portuguese by Google Translation Read this page in English by Google Translation Read this page in German by Google Translation Read this page in Spanish by Google Translation Read this page in Arabic by Google Translation Read this page in Hebrew by Google Translation

L’accessibilité des applications AJAX

Aller au début du contenu sans utiliser la barre Consultation et Partage Mode d'emploi de la barre Consultation et Partage Ecoutez le contenu principal de cette page
Imprimer Imprimer le contenu principal de cette page Envoyer Envoyer par courriel le contenu principal de cette page Partager Partager cette page sur TwitThis Partager cette page sur Facebook Partager cette page sur Wikio Partager cette page sur Google Partager cette page sur LinkedIn Partager cette page sur Digg Partager cette page sur del.icio.us Partager cette page sur Netvibes

Avertissement : la version originale de ce document est Accessibility of AJAX Applications : Accessibility Issues. Cette traduction en français a été réalisée par Ideose dans le cadre d’un accord entre WebAIM et Ideose.

Note : consulter la page Documents sur l’accessibilité du Web pour obtenir la liste de tous les documents déjà traduits. D’autres ressources sur l’accessibilité du Web sont également listées dans le Portail du numérique accessible.

C’est quoi AJAX ?

AJAX est un mélange de technologies Web permettant à des interactions dynamiques client-serveur de se produire dans les applications Web sans avoir besoin de recharger les pages ou de les rafraîchir. AJAX signifie Asynchronous JavaScript And XML. AJAX n’est pas une technologie – c’est une combinaison des technologies utilisées d’une certaine manière. AJAX utilise les technologies suivantes :

  • XHTML (ou HTML) et CSS pour créer les interfaces et les informations visuelles de mise en page. Les éléments XHTML et CSS peuvent être modifiés dynamiquement pour afficher des informations nouvelles ou modifier le style. Ces changements sont typiquement faits en utilisant le DOM.
  • JavaScript est utilisé pour manipuler les éléments d’interface et il est aussi utilisé pour établir une communication avec un serveur Web via XMLHttpRequest. Cela permet aux données (typiquement en format XML) d’être échangées entre le client et le serveur Web sans nécessiter le rechargement de la page ou son rafraîchissement.

Pour utiliser AJAX, les applications Web peuvent demander de hauts niveaux d’intéractivité et de traitement mais évite l’intéraction standard client-serveur :

  1. L’interface de la page Web s’affiche.
  2. L’information sur l’utilisateur est collectée (via des formulaires, des liens, etc.).
  3. L’utilisateur envoie les informations (validation de formulaires, activation de liens, etc.).
  4. Le serveur traite l’information envoyée.
  5. La nouvelle interface de la page Web est envoyée à l’utilisateur.

Avec AJAX, l’ensemble de ces actions peuvent être traitées dans une seule interface. Voici des exemples de mise en oeuvre d’AJAX : applications de cartographie, recherches en temps réel, chats, formulaire de validation et de traitement en temps réel, applications de commerce électronique en temps réel, applications e-mail, etc. Les types d’applications Web et les interactions permises par l’utilisation d’AJAX ont donné lieu à l’expression « Web 2.0″ – ce qui indique certainement une grande révolution dans la façon dont le Web peut être utilisé. Si aucune des technologies qui composent AJAX sont nouvelles, l’augmentation de la popularité d’AJAX oblige les développeurs à être conscient des conséquences sur l’accessibilité du Web de ces technologies.

Pourquoi utiliser AJAX ?

Comme indiqué ci-dessus, AJAX permet de créer des fonctionnalités riches, des applications Web dynamiques qui utilisent le traitement côté serveur sans nécessiter la méthodologie traditionnelle « soumettre des données – récupérer la page Web ». En utilisant XMLHttpRequest, les données sont transmises en processus de fond de votre application Web et le JavaScript est utilisé pour manipuler l’interface de l’application et l’affichage dynamique d’informations. Cela permet de rationaliser davantage les applications qui nécessitent ainsi moins de traitement et de transmission de données parce que les pages Web ne doivent pas être générées à chaque changement qui se produit. Au lieu de cela, une application Web côté client reflète tous les changements qui se produisent. JavaScript peut également être utilisé pour permettre des niveaux plus élevés d’interactivité que le HTML (par exemple, les raccourcis clavier, cliquez et glissez, etc. sur Google Maps).

Pourquoi ne pas utiliser AJAX ?

AJAX ne fonctionne pas dans tous les navigateurs Web. Comme son nom l’indique, AJAX nécessite JavaScript. Cela signifie que les applications AJAX ne fonctionnent pas dans les navigateurs Web et dans les dispositifs qui ne supportent pas le JavaScript. Pour cette raison, il n’est pas accessible à de nombreux utilisateurs du Web typique. Les recommandations d’accessibilité (Web Content Accessibility Guidelines) exigent que les applications Web fonctionnent également quand le JavaScript est désactivé ou quand il n’est pas pris en charge. AJAX requiert également que XMLHttpRequest soit supporté, ce que ne font pas de nombreux navigateurs.

La solution actuelle à ces problèmes est de fournir une alternative non AJAX à l’application ou de permettre à l’application AJAX de continuer à fonctionner si JavaScript et XMLHttpRequest ne sont pas supportés. Une telle exigence peut être très difficile à atteindre. Bien que les développeurs puissent choisir d’exiger des utilisateurs qu’ils utilisent un navigateur qui interprète AJAX, ils doivent comprendre que de telles exigences peuvent ne pas être possibles pour tous les utilisateurs – en particulier pour ceux qui utilisent des appareils portables ou d’anciens navigateurs Web.

Par sa nature, AJAX tend à mettre à jour et à manipuler les éléments de l’interface « à la volée ». AJAX peut également présenter des informations au serveur, sans action de l’utilisateur ou le faire par des méthodes qui ne sont pas évidentes pour l’utilisateur. Par exemple, la plupart des utilisateurs s’attendent à des formulaires qui seront présentées, validées et traitées quand un bouton de validation est sélectionné, mais avec AJAX cet envoie et ce traitement peuvent se produire à tout moment (par exemple, toutes les 5 secondes, quand un champ de formulaire prend le focus, etc.). Cela peut ne pas être évident pour les utilisateurs de savoir que les informations sont entrain d’être traitées et enregistrées – et cette confusion peut être renforcée par le fait que AJAX peut effectuer ces opérations très rapidement. La plupart des utilisateurs attendent qu’il y ait un certain délai avant qu’un retour ou des renseignements supplémentaires ne soient présentés et attendent généralement que la totalité de la page soit actualisée – avec AJAX, ces repères visuels peuvent ne pas être apparents.

Un autre problème avec AJAX est de savoir comment l’interface de l’application est mise à jour. Lorsque des mises à jour de l’interface se produisent, il peut ne pas être visible qu’un changement a eu lieu. Le problème est encore plus gênant pour les utilisateurs de lecteurs d’écran. Les lecteurs d’écran généralement lisent de manière linéaire. Lorsque des changements se produisent dans l’interface, l’utilisateur de lecteur d’écran peut ne pas être au courant de ce changement et le nouveau contenu ne sera sans doute pas lu.

En bref, pour permettre aux changements de l’interface dynamique d’être accessibles, l’application doit avertir l’utilisateur que le changement a eu lieu, permettre un accès direct au nouveau contenu, puis permettre le fonctionnement continu de l’application Web. Ce processus, bien que difficile à réaliser surtout pour les utilisateurs de lecteur d’écran, est possible à réaliser dans de nombreuses applications AJAX. La partie 2 de cet article présente les solutions possibles à un bon nombre de ces questions, y compris les moyens par lesquels ARIA peut rendre plus accessible le contenu dynamique.

WebAIM est une initiative de :
Center for Persons with Disabilities (CPD) Utah State University

Copyright 1999-2009 WebAIM

Haut de la page