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.
Archive
- Juli 2010 (2)
- Juni 2010 (3)
- Mai 2010 (7)
- April 2010 (4)
- März 2010 (10)
- Februar 2010 (7)
- Januar 2010 (4)
- Dezember 2009 (5)
- November 2009 (3)
- Oktober 2009 (8)
- September 2009 (2)
- August 2009 (9)
- Juli 2009 (7)
- Juni 2009 (6)
- Mai 2009 (3)
- April 2009 (4)
- März 2009 (7)
- Februar 2009 (6)
- Januar 2009 (2)
- Dezember 2008 (1)
- November 2008 (7)
- Oktober 2008 (13)
- September 2008 (2)
- August 2008 (5)
- Juli 2008 (9)
- Juni 2008 (5)
- Mai 2008 (4)
- April 2008 (4)
- März 2008 (1)
- Januar 2008 (3)
- Das Neueste ...
- Älteres ...