Donnerstag, 24. September 2009

Accessibility (Zugänglichkeit, Barrierefreiheit) - Einfach ist anders!

War früher die Sicherstellung der Zugänglichkeit eher eine Frage der Ethik oder verordnete Pflicht, stellt die Zugänglichkeit heute vor allem sicher, dass eine Webseite mit der explodierenden Anzahl an verschiedenen Endgeräten vernünftig erfasst und dargestellt werden kann. Dies geht Hand in Hand mit der Erkenntniss, dass kostenloser, natürlicher Traffic von Suchmaschinen in dem Maße wächst, wie man eine maschinelle Analyse der Websiteinhalte ermöglicht. Nicht zuletzt ermöglichen die neuen Screenreader-Versionen bei entsprechenden Vorraussetzungen nicht nur die bessere Bedienung klassischer Webseiten sondern auch die Erfassung komplexer Interaktionen mit Rich Internet Applications.

Das Thema Barrierefreiheit bezieht fast alle Elemente einer Seite mit ein und wirkt sich insbesondere auf die Struktur des Markup, Alternativinhalte für Bilder, Videos und auditive Inhalte, Formulare, Navigations-Elemente (auch die Bedienung mit alternativen Eingabegeräten), JavaScript-Komponenten und ganz allgemein auf den Prozess der Webentwicklung aus.

Das W3C gibt dabei mit den Web Content Accessibility Guidelines (WCAG) in den Versionen 1.0 und 2.0 die Richtung vor. Darüber hinaus gibt es weitere Standards, die speziell auf bestimmte Arten von Webinhalten ausgerichtet sind. Eine Einhaltung aller Richtlinien und Standards ist zwar kaum ohne Zugeständnisse an Layout und Inhalt der Website möglich, aber mit der Einhaltung einiger wichtiger Richtlinien sind bereits viele Verbesserungen möglich, ohne Kompromisse in Kauf nehmen zu müssen.

In Deutschland tritt besonders die Initiative Einfach für Alle für ein barrierefreies Internet ein. Allein an der Anzahl der dort veröffentlichten Artikel läßt sich erahnen, wie komplex das Thema Barrierefreiheit ist.

Sehr empfehlenswert ist die Lektüre des englischsprachigen Buches Universal Design for Web Applications von Matthew May und Wendy Chisholm, welches bereits die relativ neue zweite Version der WCAG berücksichtigt. Für eine Überprüfung der eigenen Projekte im Sinne der WCAG 1.0 eignet sich die Accessibility Firefox Extension von Jon Gunderson. Verschiedene Displaygrößen, Dokumentengliederungen und Kontratseinstellungen lassen sich mit der Web Developer Extension simulieren.

Neue Jasmin-Servlet-Version

In einigen Projekten setzen wir bereits eine neue Version des Jasmin-Servlets ein. Zu den Neuerungen zählen:

Unterstützung von JavaScript am Ende der Seite

Aus Performance-Gründen empfiehlt es sich, JavaScript am Ende der Seite direkt vor dem schließenden body-Tag zu laden. Aus verschiedenen Gründen ist das an dieser Stelle aber recht schwierig zu realisieren. Vor allem stellen Inline-Scripte, welche von der Existenz extern geladener Ressourcen ausgehen, ein Problem dar. Um dieses Problem zu umgehen, wurde eine Möglichkeit entwickelt, diesen Inline-Code für eine spätere Ausführung zu registrieren.

2 Requests pro Ressource statt bisher einem

JavaScript und CSS werden mit 2 Requests statt bisher einem Request geladen. Dies stellt ein verbessertes Caching sicher. Mit dem ersten Request werden die Ressourcen geladen, die für alle Seiten benötigt werden (das sind für gewöhnlich die Basis-Projekt-Styles und Framework-Scripte). Dieser Request macht den größten Anteil an den Ressourcen aus und kann nach dem initialen Laden auf den Folgeseiten unverändert aus dem Cache bezogen werden. Mit dem zweiten Request werden seitenspezifische Ressourcen geladen. Diese können von Seite zu Seite variieren, haben aber in den meisten Fällen eine moderate Größe. Dieser variable Anteil führte bei der früheren Version mit nur einem Request dazu, dass kein Caching genutzt werden konnte, da sich der Request seitenspezifisch immer wieder veränderte. Die gewonnene Ladezeit durch das verbesserte Caching-Verhalten überwiegt dabei eindeutig die Performance-Einbußen, die durch den zusätzlichen Request entstehen.

Definition eines Prä- und Suffix

Dieses Feature ist besonders in Zusammenhang mit JavaScript sinnvoll. Dem ersten Request kann ein Präfix vorangestellt werden, welcher ganz grundsätzliche Angaben zu z. B. Namespaces oder Fehlerroutinen erlaubt. Genau so kann dem zweiten Request ein Suffix angehängt werden, welcher Code enthält, der nach dem kompletten Laden des JavaScripts ausgeführt werden soll. Dazu zählt die Ausführung der registrierten Inline-Scripte.

gZip-Komprimierung

Die CSS- und JavaScript-Ressourcen werden jetzt nicht mehr nur minimiert sondern bei einer Unterstützung durch den Browser auch mit gZip komprimiert. Dies reduziert die Größe der zu übertragenden Daten um bis zu 80%.

Expires-Header

Um ein verbessertes Caching-Verhalten zu erreichen, werden die ausgelieferten Ressourcen mit einem Expires-Header versehen. Der Zeitraum ist momentan auf 10 Minuten begrenzt, da eine Versionierung der Requests, welche ein zuverlässiges Neuladen bei einer Änderung der Ressourcen sicherstellt, aussteht.

Blog abonnieren

RSS 2.0 Feed

Suche

Kalender

Zurück September '09 Vorwärts
Mo Di Mi Do Fr Sa So
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 25 26 27
28 29 30        

Verwaltung des Blogs

Blogroll

Projects/Web

vCard

  • Nico Steiner
  • www.nicosteiner.de
  • Karlsruhe/Germany
  • Senior Frontend-Developer at 1&1