Barrierefreiheit von Ajax Anwendungen

Ajax
Von Yves
[toc]

Was ist AJAX?

AJAX ist eine Sammlung von Netzwerktechnologien, die es ermöglichen Interaktionen zwischen Benutzer und Server dynamisch umzusetzen, ohne dass ein Neuladen oder ein Aktualisieren der Seite notwendig wird.
Die Bezeichnung AJAX steht für Asynchronous JavaScript And XML, also zu Deutsch “nicht zeitgleiches JavaScript und XML”. AJAX selbst ist keine eigenständige Technologie, sondern eine Kombination mehrerer bestehender Technologien, die auf eine bestimmte Art und Weise genutzt werden. AJAX nutzt dabei folgende Technologien:

* XHTML (oder HTML) und CSS, um eine Benutzeroberfläche und Darstellungsinformationen umzusetzen. Die XHTML- and CSS-Elemente können dynamisch verändert werden, um neue Informationen oder Darstellungsweisen anzuzeigen. Diese Änderungen werden typischerweise mit Hilfe eines Document Object Models (DOM).

* JavaScript wird genutzt, um die Elemente der Benutzeroberfläche zu verarbeiten. Darüber hinaus sorgt das JavaScript mittels XMLHttpRequest für die Herstellung der Verbindung mit einem Server des Netzwerks. Dadurch können Daten (üblicherweise im XML-Format) zwischen dem Benutzer und dem Server ausgetauscht werden, ohne dass ein Neuladen oder Aktualisieren der Seite notwendig wird.

Durch die Nutzung von AJAX können Netzwerkanwendungen hohe Interaktivitäts- und Verarbeitungsraten erzielen, benötigen dabei aber nicht die standardmäßige Benutzer-Server Interaktion, die wie folgt aussähe:

  1. Die Benutzeroberfläche einer Internetseite wird dargestellt.
  2. Informationen über den Benutzer werden gesammelt (z.B. über Formulare, Links, etc.).
  3. Der Benutzer übermittelt seine Informationen (z.B. durch Absenden von Formularen, Aktivieren von Links, etc.).
  4. Der Server verarbeitet die übermittelten Informationen.
  5. Die Oberfläche einer neuen Internetseite wird an den Benutzer übermittelt.

MIt AJAX können all diese Schritte durch eine Oberfläche abgearbeitet werden. Beispiele einer AJAX-Implementierung sind Karten Anwendungen, Suchen in Echtzeit, Chats, Validierung und Verarbeitung von Formularen in Echtzeit, Anwendungen zur automatischen Aktualisierung des Warenkorbs, Anwendungen für E-mails und noch vieles mehr. Die Liste der Verwendungsbeispiele von AJAX ist lang. Die verschiedenen Sorten von Internet-Anwendungen and -Interaktionen, die nur durch die Nutzung von AJAX möglich wurden, haben dem Begriff “Web 2.0″ zu seinem Aufschwung verholfen. “Web 2.0″ ist damit zu einem Begriff geworden, der für eine revolutionäre Verwendung des Internets steht. Obwohl keine der von AJAX genutzten Technologien wirklich neu oder bahnbrechend sind, bringt die zunehmende Verbreitung von AJAX-Entwicklungen für die Entwickler neuer Anwendungen die Notwendigkeit mit sich, sich der Folgen dieses Trends bewusst zu sein.

Warum AJAX?

Wie bereits zuvor verdeutlicht, ermöglicht AJAX Web-Anwendungen mit einer Vielzahl von serverseitig verarbeiteten Funktionen, ohne dabei nach der traditionellen “Sende Daten – erhalte Internetseite”-Methodik vorzugehen. Durch die Nutzung von XMLHttpRequest, werden Daten praktisch “hinter den Kulissen” der Web-Anwendung übertragen. JvaScript wird dabei dazu genutzt, die Benutzeroberfläche des Anwendung zu beeinflussen und dynamische Informationen darzustellen. Dadurch ist es möglich schnellere Anwendungen zu erstellen, die weniger Datenverarbeitung und -übertragungen benötigen, denn es ist nun nicht mehr nötig die Seite nach jeder neuen Eingabe oder Änderung neu zu generieren. Stattdessen spiegelt eine einzige Web-Anwendung alle vorgenommenen Veränderung wieder. JavaScript kann auch genutzt werden um höhere Interaktivitätsraten zu erlauben, als sie bisher durch HTML ermöglicht werden (z.B. Tastenkombinationen, Klicken und Ziehen und ähnliches auf Google Maps).

Warum AJAX gerade nicht?

AJAX funkioniert nicht mit allen Browsern. Wie der Name schon vermuten lässt, benötigt AJAX JavaScript. Allein diese Tatsache bedeutet, dass AJAX-basierte Anwendungen auf Browsern und Endgeräten, die JavaScript nicht unterstützen, nicht funktionieren werden. Aus diesem Grund sind AJAX-basierte Anwendungen für eine Vielzahl der typischen Nutzer des Internets nicht aufrufbar. Die Richtlinien für die Erreichbarkeit von Internetinhalten fordern aber auch, dass, auch wenn JavaScript gesperrt oder nicht unterstützt wird, Web-Anwendungen funktionieren. Darüber hinaus muss für die Nutzung von AJAX auch XMLHttpRequest unterstützt wird, was viel Browser momentan aber nicht vermögen. (siehe auch Web Content Accessibility Guidelines)

Der momentane Lösungsansatz für die Probleme ist entweder die Bereitstellung einer nicht auf AJAX basierenden Alternative zur eigenen Anwendung oder es der AJAX-Anwendung zu ermöglichen, auch ohne die Unterstützung von JavaScript und XMLHttpRequest weiter zu funktionieren. Solche Anforderungen jedoch zu erreichen, dürfte schwierig sein. Während die Entwickler es vielleicht eher bevorzugen werden, einen Browser mit AJAX-Unterstützung einfach zu verlangen, müssen sie auch einsehen, dass diese Anforderung für viele Nutzer schlicht unmöglich ist. Besonders die Nutzer mobiler Endgeräte oder älterer Browser können dieser Anforderung nicht gerecht werden.

Gemäß seiner Natur tendiert AJAX dazu, Elemente der Benutzeroberfläche von einer Sekunde auf die andere zu aktualisieren oder zu verändern. AJAX kann daher Daten ohne eine Interaktion durch den Benutzer übertragen oder Informationen so übertragen, dass es für den Benutzer unbemerkbar geschieht. Zum Beispiel erwarten viele Nutzer, dass Formulare erst übertragen, geprüft und verarbeitet werden, wenn sie den “Senden”-Button betätigen. Mit AJAX aber kann die Übertragung und die Verarbeitung zu jeder Zeit geschehen (z.B. alle 5 Sekunden; wenn ein Teil des Formulars nicht ordnungsgemäß bearbeitet wird, etc.). Es kann daher für den Benutzer nicht ersichtlich sein, dass Informationen verarbeitet und gespeichert werden und die Verwirrung des Nutzers kann durch die Geschwindigkeit, mit der AJAX diese Operationen vornimmt, noch vergrößert werden.
Viele Nutzer rechnen damit, dass es einige Zeit dauert, bis sie eine Rückmldung erhalten oder zusätzliche Informationen angezeigt bekommen. Darüber hinaus rechnen sie eher damit, dass die gesamt Seite für die Anzeige neuer Informationen neu geladen wird. Bei AJAX wird dem Nutzer keiner dieser visuellen Hinweise auf neue Inhalte ersichtlich.

Ein weiteres Problem von AJAX ist, wie die Benutzeroberfläche der Anwendung aktualisiert wird. Wenn Aktualisierungen für die Benutzeroberfläche eingearbeitet wurden, können diese unter Umständen für den Nutzer nicht ersichtlich sein. Die Problemstellung verschlimmert sich noch für Nutzer von Bildschirmleseprogrammen. Bildschirmleseprogramme lesen üblicherweise auf lineare Weise. Werden dann Änderungen eingefügt, kann es passieren, dass das Bildschirmleseprogramm die Veränderung nicht bemerkt und der neue Inhalt sehr wahrscheinlich nicht vorgelesen wird.

Kurz gesagt muss die Anwendung den Benutzer darüber informieren, dass sich auf der angezeigten Seite eine Änderung ergeben hat, dem Benutzer direkten Zugang zu den neuen Inhalten gewähren und kontinuierliche Funktionalität besitzen, damit die dynamische Oberfläche für alle nutzbar und erreichbar ist. Dieser Vorgabe lässt sich in vielen AJAX-Anwendungen umsetzen. Bei Bildschirmleseprogrammen jedoch, ist es bislang schwierig diese Technologie umzusetzen. Teil 2 dieses Artikels präsentiert mögliche Lösungsansätze für viele dieser Problemstellungen, inbegriffen Lösungsansätze mit Hilfe von ARIA (Accessible Rich Internet Applications), die dynamische Inhalte erreichbarer machen sollen.

 

Original Quelle: webaim.org/techniques/ajax

Über den Autor

Yves

Hallo. Mein Name ist Yves. Ich ranke seit 13 Jahren erfolgreich Webseiten und möchte in diesem Blog meine Erfahrung aus den Bereichen Suchmaschinenoptimierung, online Marketing, Conversion Optimierung und Webseiten Erstellung mit euch teilen.