Das Rückgrat eines Webauftrittes: Die Navigation

Struktureller Aufbau einer Navigationsleiste

Der direkte Zugriff

Strukturen in der linearisierten Ausgabe

Für Screenreader sind lange Navigationsleisten besonders schwierig zu handhaben, da alle Navigationspunkte linearisiert, d.h. eins nach dem anderen gelesen werden. Dazu kommt, dass in den meisten Seiten die Navigationsleiste vor dem Inhaltsbereich steht. Das bedeutet auf vielen Webauftritten, dass die Gebrauchstauglichkeit in linearen Ausgabegeräten zu wünschen übrig lässt, denn bevor beispielsweise ein Nutzer einer Sprachausgabe zum Lesen der Inhalte der Seite kommt, werden zahlreiche andere Elemente der Seite vorgelesen.

In der [intern] BITV-Bedingung 13.6 wird die Gruppierung von Navigationselementen sowie die Bereitstellung einer Möglichkeit zum Überspringen der Navigationselemente gefordert. Diese Bedingung hat natürlich allgemeine Vorteile und sollte dazu führen, dass Navigationsleisten übersichtlich und überschaubar sind. Zu bedenken ist jedoch auch die technische Ebene: die Gruppierung von Navigationselementen sollte nicht nur am Bildschirm sichtbar sein, sondern muss auch auf der strukturellen - sprich: (X)HTML-Ebene gegeben sein.

Zum besseren Verständnis: Screenreader lesen nicht nur Inhalte einer Seite, sie erkennen auch Strukturen im Quelltext. So erkennen die meisten Screenreader Absätze, Überschriften und Listenelemente, wenn Inhalte als solche ausgezeichnet werden. Gleichzeitig bieten Screenreader die Möglichkeit, zwischen solchen (X)HTML-Elementen zu springen.

Listenelement für die Navigation

Für eine Navigation bietet sich als Strukturierungselement eine Liste an, denn bei Navigationsleisten handelt es sich semantisch gesehen um nichts anderes als eine Linkliste! Wichtig ist aber, dass die Navigationsleiste innerhalb eines (X)HTML-Blockelements eingeschlossen wird. Für das Folgende wird eine Aufzählung als Grundelement für die Navigationsleiste verwendet:

<div>
<ul>
<li><a href="eintrag1.html">Eintrag 1</a></li>
<li><a href="eintrag2.html">Eintrag 2</a></li>
<li><a href="eintrag3.html">Eintrag 3</a></li>
</ul>
</div>

[intern] Schritt 1 (von 10) in der Browserdarstellung anzeigen .

Sie mögen sich vielleicht fragen, ob nicht zum Beispiel eine nummerierte Liste sinnvoller wäre. Als Orientierung sowie semantische Information wäre eine Nummerierung in einer Sprachausgabe zwar hilfreich, aber es gibt zwei Probleme, die den Einsatz nummerierter Listen unzweckmäßig machen. Zum einen bietet (X)HTML keine Möglichkeit die Nummerierung einer Liste fortzusetzen, z.B. bei einer unterbrochenen Liste oder bei kontextabhängigen Nummerierungen z.B. bei einer verschachtelten Liste. Zum anderen müssten die Nummerierungen in aller Regel per CSS versteckt werden, weil sie nicht unbedingt in das visuelle Design passen, was dazu führen kann, dass ein Screenreader die (willkürliche) Nummerierung trotzdem ausgibt. So gesehen ist der unsortierten Liste der Vorzug zu geben.

Sie mögen sich vielleicht auch fragen, warum keine Überschriften für die Navigationspunkte verwendet werden. Im Sinne der Barrierefreiheit würde die Gestaltung der Navigation mit Überschriften dazu führen, dass jeder Navigationspunkt ein eigenständiges (X)HTML-Element ist. Der Nutzer eines Screenreaders ist genau da, wo wir vor nicht allzu langer Zeit waren als Layout noch mit Tabellen gestaltet wurde: Der Nutzer muss von Element zu Element springen, um irgendwann an die Inhalte zu kommen. Nochmal: es ist wichtig, dass Navigationsleisten innerhalb eines Strukturelements zusammengefasst werden, um die Möglichkeit des Überspringens zu gewährleisten.

Natürlich ist die Darbietung nur mit einer geeigneten Formatierung sinnvoll, um Design-Anforderungen zu genügen. Hierfür bieten CSS eine Reihe von Möglichkeiten, das Aussehen der Liste anzupassen.

Zunächst erhält das DIV-Element eine ID, damit die Zuweisung von CSS effektiv vorgenommen werden kann:

<div id="hauptnavigation">
<ul>
<li><a href="eintrag1.html">Eintrag 1</a></li>
<li><a href="eintrag2.html">Eintrag 2</a></li>
<li><a href="eintrag3.html">Eintrag 3</a></li>
</ul>
</div>

Dann müssen die einzelnen Listenpunkte umgestaltet werden. Mit den folgenden CSS-Eigenschaften werden Schriftbild und Farbe geändert. Die Schrift ist selbstverständlich nach [intern] Bedingung 3.4 skalierbar und für ausreichende Kontraste wurde gesorgt (vgl. [extern, englisch] Juicy Studio). Darüber hinaus wird der Listenpunkt, der von allen Browsern standardmäßig vor einen Listeneintrag gesetzt wird, per CSS ausgeblendet:

Darstellung der per CSS fürmatierten Navigationsleiste im Browser

#hauptnavigation {
width: 13em;
background-color: #DFE1F0;
border: 1px solid #A9B0D7;
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #2E3192;
font-size: 0.8em;
}

#hauptnavigation ul, #hauptnavigation ul li {
padding: 0;
margin: 0;
list-style: none;
}

#hauptnavigation a {
text-decoration: none;
display: block;
color: #2E3192;
}

* html #hauptnavigation a {
width: 100%;
}

#hauptnavigation ul li {
font-weight: bold;
border-bottom: 4px solid #A9B0D7;
}

* html #hauptnavigation ul li {
height: 1em;
}

#hauptnavigation ul li a {
padding: 6px;
}

[intern] Schritt 2 (von 10) in der Browserdarstellung anzeigen .

Die CSS-Deklarationen haben folgende Bedeutung:

#hauptnavigation
Die Navigationsleiste erhält einige Layout-Angaben wie etwa eine vordefinierte Breite.
#hauptnavigation ul, #hauptnavigation ul li
Hier werden die unterschiedlichen Abstände verschiedener Browser für Listenpunkte überschrieben, und die Listenpunkte ausgeblendet.
#hauptnavigation a
In der Hauptnavigation sollen die Links keine Unterstreichungen haben. Um die volle Breite der Navigationsleiste anklickbar zu machen, werden die Listenpunkte als Blockelemente dargestellt.
* html #hauptnavigation a
Die Links erhalten zusätzlich eine Breite (für Microsoft Internet Explorer erforderlich).
#hauptnavigation ul li
Einträge der Hauptnavigation werden hier fett formatiert und erhalten außerdem einen dicken unteren Rahmen, um sie vom nächsten Navigationspunkt deutlich abzugrenzen.
* html #hauptnavigation ul li
Noch eine Angabe nur für den Microsoft Internet Explorer: Weil Hintergrund und Rahmen nicht richtig angezeigt werden, muss eine Höhe für die Listenpunkte angegeben werden, die wie min-height wirkt.
#hauptnavigation ul li a
Die Links erhalten einen Innenabstand zum Rand.

Mit einer als Liste strukturierten Navigationsleiste ist es nun für Screenreader-Nutzer möglich, die Navigation mit einem Tastendruck zu überspringen bzw. schnell zu den einzelnen Punkten zu gelangen.

Eine verschachtelte Liste

Eine Navigationsleiste wird sich nicht wie in unserem Beispiel auf drei Einträge beschränken. Neben weiteren Hauptnavigationspunkten kommen oft Unterpunkte hinzu. Die Unterpunkte zu einem bestimmten Hauptnavigationspunkt können entsprechend als verschachtelte Liste zu diesem Navigationspunkt strukturiert werden.

<div id="hauptnavigation">
<ul>
<li><a href="eintrag1.html">Eintrag 1</a></li>
<li class="aktiv">
<a href="eintrag2.html">Eintrag 2</a>
<ul>
<li><a href="eintrag2a.html">Eintrag 2 A</a></li>
<li><a href="eintrag2b.html">Eintrag 2 B</a></li>
</ul>
</li>
<li><a href="eintrag3.html">Eintrag 3</a></li>
</ul>
</div>

Die Unterpunkte der verschachtelten Liste werden auch mit CSS formatiert:

Darstellung der per CSS formatierten Navigationsleiste mit Unterpunkten im Browser

#hauptnavigation ul li ul li {
font-weight: normal;
border-top: 1px solid #A9B0D7;
border-bottom: 0 solid #A9B0D7;
}

#hauptnavigation ul li ul li a {
padding: 6px 14px;
}

[intern] Schritt 3 (von 10) in der Browserdarstellung anzeigen .

Dabei bezwecken die neu hinzu gekommenen CSS-Deklarationen für die Unterpunkte:

#hauptnavigation ul li ul li
Die Unterpunkte vererben Eigenschaften der Hauptpunkte, die hier jedoch überschrieben werden sollen.
#hauptnavigation ul li ul li a
Die Links der Unterpunkte werden durch "Einrückungen" von links und rechts sowie oben und unten etwas kleiner als die Hauptpunkte gestaltet.

Die Gestaltung der Unterpunkte wird hier anders als die Hauptpunkte formatiert. Gestalterisch müssen zwei Aspekte berücksichtigt werden:

Zunächst wird die "aktuelle" Rubrik nicht mehr als Link ausgezeichnet. Der Listenpunkt erhält eine eigene Klasse (aktiv). Der "aktive" Listenpunkt erhält weiterhin ein eigenes Blockelement, damit weitere CSS-Eigenschaften zugewiesen werden können.

<div id="hauptnavigation">
<ul>
<li><a href="eintrag1.html">Eintrag 1</a></li>
<li class="aktiv">
<div class="aktiv">Eintrag 2</div>
<ul>
<li><a href="eintrag2a.html">Eintrag 2 A</a></li>
<li><a href="eintrag2b.html">Eintrag 2 B</a></li>
</ul>
</li>
<li><a href="eintrag3.html">Eintrag 3</a></li>
</ul>
</div>

Der aktive Eintrag und die Links der Unterpunkte werden nun mit CSS weiter verfeinert:

Darstellung der Navigation im Browser mit verschiedenen Farbformatierungen

#hauptnavigation ul li.aktiv div.aktiv {
color: #EE3338;
background-color: #FFF;
padding: 6px 7px;
}

[intern] Schritt 4 (von 10) in der Browserdarstellung anzeigen .

#hauptnavigation ul li a
Die verlinkten Haupteinträge der Navigation erhalten ein wenig Zusatzformatierung.
#hauptnavigation ul li.aktiv div.aktiv
Der "aktive" Haupteintrag erhält andere Farben als die verlinkten Haupteinträge.
#hauptnavigation ul li ul li a
Die Links der Unterpunkte erhalten andere Symbole; die Innenabstände müssen gegenüber den Haupteinträgen angepasst werden.

Dieses Grundgerüst bietet nun eine Struktur, die mit Screenreadern navigierbar ist. Im nächsten Schritt wird die Wahrnehmbarkeit am Bildschirm noch mal genauer untersucht und verbessert.

Über das CSS-Design

Lesen Sie, [intern] warum ich mich an die Standards halte und warum das Layout mit [intern] Cascading Style Sheets statt Tabellen oder Frames gestaltet wurde. Sollten Sie Probleme mit dem Layout haben, so finden Sie in der [intern] Liste standardkonformer Browser Links zu entsprechenden Download-Seiten.

Suchen Sie was auf barrierefreies- webdesign.de?


Entspricht die Seite den W3C-Normen?


validiertes XHTML 1.0
validiertes CSS

Die [intern] Gesamtübersicht dieses Webauftrittes erreichen Sie jederzeit über das -Pad mit Alt+6.

Der schnelle Seitenzugriff

Verwenden Sie [intern] Tastenkürzel, etwa Alt mit der entsprechenden Zahl, um auf diesem Webauftritt zu navigieren.

 

[intern] Startseite [intern] Know-How [intern] Bücher [intern] Richtlinien [intern] Links [intern] Kontakt

Logo: Xplain  Die Entstehung