Mehr von Jürgen Gutsch

Mehr von Jürgen Gutsch

Empfehlungen von Jürgen Gutsch

Blog-Empfehlungen von Jürgen Gutsch

Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe

Jürgen Gutsch

ASP.NET und mehr...

News

Barrierefreie Webseiten mit ASP.NET 2.0 - Teil 1

Wie viele wissen, war es mit dem 1.1er Framework ein Ding der Unmöglichkeit barrierefreie Webseiten zu erstellen, wenn vorhandene ASP.NET Controls genutzt wurden. Seit ich mit dem 2.0 er Framework arbeite bin ich also den  ASP.NET Controls aus dem Weg gegangen, wenn ich barrierefreie Webseiten gestalten wollte. Das heißt ich habe eigenes, sauberes XHTML raus gerendert.
In dem Artikel „Building ASP.NET 2.0 Web Sites Using Web Standards“ (1) von Stephen Walther (2) wird allerdings beschrieben, wie es mit einigen Tricks dennoch möglich ist ASP.NET 2.0 Webseiten zu gestalten, die den aktuellen Standards entsprechen.

Mit diesem Beitrag möchte ich eine kleine Serie starten, welche die Erstellung einer barrierefreien Website dokumentiert. Zum mitverfolgen des Fortschritts steht das Webprojekt unter http://demosite.gutsch-online.de online zur Verfügung. Zu jedem Artikel dieser Serie gibt es den aktuellen Stand des Projekts unter http://www.gutsch-online.de/show/german/downloads/barrierefreies_asp.net_2.0_.aspx zum Downloaden.

Um die verschiedenen Browser zu zwingen sich an die aktuellen Standards zu halten, werde ich das YAML Framework (3) von Dirk Jesse (4) verwenden. Falls es mit den ASP.NET Controls dennoch Probleme geben sollte, werde ich versuchen die „CSS Control Adapters“ (5) einzusetzen. Wenn auch das nicht zur Lösung „Barrierefreie Webseite mit ASP.NET 2.0“ beitragen sollte ist das Projekt gescheitert.

Starten werde ich mal mit einer Grundkonfiguration der Webanwendung wie es von Stephen Walther beschrieben wird. Ich erstelle eine Masterpage (hier „demosite.master“) und ersetze den DOCTYPE durch den für XHTML-Strict:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Strict deswegen, weil ich absolut keine Fehler erlauben möchte.
Als nächstes wird der „head“-Tag erweitert:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
Hier wird der Namespace für das XHTML sowie die Standartsprache auf Deutsch festgelegt (wird auch für die Aussprache der Screenreader benötigt).

Stephen Walther schreibt, dass ein kleiner Eintrag in die „web.config“ die ASP.NET Controls dazu veranlasst standartkonformes XHTML zu rendern. Dazu wird folgender Eintrag in die „web.config“ unter „system.web“ geschrieben:
<xhtmlConformance mode="Strict" />

Des Weiteren habe ich ein Webform mit dem Namen „Default.aspx“ erstellt, die nur die Pagedirektiven beinhaltet:
<%@ Page Language="C#" MasterPageFile="~/demosite.master" CodeFile="Default.aspx.cs" Inherits="Default" Title="Demo Seite" %>

Als letztes für diesen Teil wird in die Global.asax eine Methode eingefügt, die den Contenttype entsprechend dem Standart setzt, vorausgesetzt der Browser akzeptiert diesen:
void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
 if (Array.IndexOf(Request.AcceptTypes,
"application/xhtml+xml") > -1)
 {
  Response.ContentType = "application/xhtml+xml";
 }
}

Diese Methode kann als Hack für den IE angesehen werden, da mal wieder fast alle Browser außer der IE diesen Contenttype unterstützen.

DemoSite ansehen
Teil 1 downloaden

(1) http://msdn2.microsoft.com/en-us/library/aa479043.aspx
(2) http://www.superexpert.com/
(3) http://www.yaml.de/
(4) http://www.highresolution.info/
(5) http://www.asp.net/CSSAdapters/

Posted: Freitag, 23. März 2007 09:30 von Jürgen Gutsch
Abgelegt unter: , , , ,

Kommentare

Peter Bucher sagte:

Sally Jürgen

Hey gefällt mir richtig gut, bin schon auf die nächsten Teile gespannt!

Wieviele werdens denn? :-)

Etwas habe ich aber zu bemängeln... eine (auf den ersten Blick) leere Beispielseite kommt nicht soo gut an, würde ich mal schätzen.

Knall doch dort ein Text àla "i am valid xhtml strict" rein ;-)

Grüsse aus der Schweiz, Peter

# März 26, 2007 14:21

Jürgen Gutsch sagte:

Sally Peter,

danke für den Hinnweis, das mit der leeren Seite ist richtig, allerdings mit dem nächten Teil hinfällig.

Ich weis noch nicht wie viele Teile es werden (über 10 sicher). Entweder so viele bis eine vollwertige barrierefreie WebSite entstanden ist, oder bis ich mit ASP.NET Controls nichtmehr in der lage bin standardkonformes HTML zu erzeugen.

# März 26, 2007 14:32

jolli sagte:

ich denke, dass gerade das css adapter tool einiges dazu beitragen wird, dass die seite wirklich barrierefrei gerendert wird. denn damit liegt es dann nur noch an den fähigkeiten des programmiereres, wie er die mitgelieferten controls rendert, oder irre ich mich?

# März 27, 2007 22:00
Anonyme Kommentare sind nicht zugelassen