Tag 3: Gestaltungsbeispiel mit CSS

Nachdem das Beispielmenü strukturell aufgebaut wurde, kommt nun die Gestaltung mit CSS (= Cascading Style Sheets). Mit dieser Auszeichnungssprache lassen sich alle fehlenden visuellen und funktionalen Anforderungen umsetzen. Gleichzeitig ist sie mitverantwortlich für die strikte Trennung von Inhalt und Gestaltung, was nicht nur eine Leistungserhöhung, sondern auch eine weitere Kostensenkung darstellt, lässt sich ein solches Konzept doch äußerst leicht handhaben, vor allem beim Redesign und bei der Inhaltspflege.

Tags: , ,

Stand: 29.08.2005, Autoren: sb, ep

Im nun folgenden Beispiel geht es in erster Linie darum, die nötigen Anforderungen an die Zugänglichkeit zu vermitteln und ein Beispiel für ein gefälliges Erscheinungsbild anzubieten. In unserem Beispiel bauen wir eine "Drucktastenästhetik" auf und blenden einen Teil der Elemente aus. Dabei sollten Sie bedenken, dass wir hier nur die notwendigen Auszeichnungen darlegen. In einem konkreten Projekt müssen Sie in ihrem Style Sheet unter Umständen Kontextselektoren oder zusätzliche Klassen anwenden, um unerwünschte Vererbungen zu vermeiden.

Screenshot: Das unformatierte Menü in einem grafischen Browser Die im nebenstehenden Screenshot abgebildete Ausgabe mit der default-Darstellung in einem grafischen Browser entspricht auch derjenigen in Textbrowsern und auch - je nach Konfiguration - dem Gesprochenen in Vorlesegeräten. Dass damit viele nicht zufrieden sind, weil sie andere, vor allem visuelle Erwartungen haben, sollte nicht beunruhigen. Das lässt sich mit CSS umsetzen.

Elemente ausblenden

Nehmen wir an, es bestünde der Wunsch, in der visualisierten Darstellung die trennenden Punkte und den Begriff "Standort:" auszublenden, weil das Trennzeichen nur bedingt notwendig ist und "Standort:" durch die folgende visuelle Darstellung als zusätzlicher Text nicht benötigt wird. Beim Einsatz von CSS ist hier Vorsicht geboten. Die naheliegende Auszeichnung mit:

  1. span.unsichtbar {display:none;}

oder mit:

  1. span.unsichtbar {visibility:hidden;}

kann nicht verwendet werden, da ein Teil der Screenreader den Punkt bzw. "Standort:" nicht auslesen und der beabsichtigte Effekt damit ins Leere läuft. Um dieses Problem zu umgehen, hat sich folgende Auszeichnung als praktikabel erwiesen:

  1. span.unsichtbar {
  2. position:absolute;
  3. left:-1000px;
  4. top:-1000px;
  5. width:0;
  6. height:0;
  7. overflow:hidden;
  8. display:inline;
  9. }

Durch diese Auszeichnungen wird das Trennzeichen auf Wunsch zuverlässig in allen betroffenen Ausgabegeräten aus dem Sichtfeld entfernt und steht dennoch für nicht-visuelle Anwendungen oder (auf Wunsch) für Ausdrucke zur Verfügung.

Tipp:
In manchen Layouts wird gerne ein senkrechter Strich als visuelle Trennung eingesetzt. Benutzen Sie für die inhaltliche Trennung dennoch einen Punkt und erzeugen Sie den senkrechten Strich durch CSS mit der Eigenschaft border(-left/-right). Das sichert Ihnen die Trennung von Inhalt und Gestaltung, entlastet also beim Redesign. Und verwenden Sie genau ein Trennzeichen zwischen den Links, das ist völlig ausreichend.

Gestaltung der Farbgebung, der Überschrift und der Listen

Als nächstes kommen der Menübereich, die Überschrift und die Grundformatierungen der Listen an die Reihe.

Selbstverständlich sollten Sie skalierbare Schriftgrößen in "%" oder "em" angeben, um den Besuchern Ihrer Seiten eine Vergrößerung zu ermöglichen. Laut Spezifikationen ist auch "px" hierfür vorgesehen, aber der Internet Explorer unterstützt diese Funktion nicht. Beziehen Sie hier in Ihre Konzeption auch den gesamten Menü-Bereich ein, damit unerwünschte und unleserliche Überschneidungen vermieden werden, die beim Skalieren entstehen können. Sorgen Sie auch immer für ausreichende Kontraste von Schrift- und Hintergrundfarben.

Screenshot des Zwischenschritts mit gestalteter Überschrift und grundlegenden Formatierungen der Menülisten In allen nun folgenden Beispielauszeichnungen wurde möglichst die Kurzschreibweise gewählt. Das senkt die Ladezeiten und ist übersichtlicher. Damit Größenangaben Browser- und seitenübergreifend unter Kontrolle bleiben, haben sich folgende allgemeine Basis-Auszeichnungen bewährt:

  1. /* Alle Elemente werden hiermit angesprochen: */
  2. * {
  3. padding:0;
  4. margin:0;
  5. list-style:none;
  6. }
  7. body {
  8. /* Die Schriftgröße wird gegen Browserbugs abgesichert */
  9. font:normal 100.01% arial, sans-serif;
  10. color:#000;
  11. }

Hier das CSS für den Menübereich. Die Schriftgröße kann dort zentral vergeben werden. Das erspart Ihnen unerwünschte Vererbungseffekte und reduziert den Codierungsaufwand.

  1. #menue {
  2. width:10em;
  3. border: 1px solid #fff;
  4. border-right:1px solid #777;
  5. border-bottom:1px solid #777;
  6. background: #eef;
  7. padding:0;
  8. font:normal 0.9em arial, sans-serif;
  9. }

Die Überschrift wird gestaltet:

  1. h2 {
  2. font: bold 1em arial, sans-serif;
  3. color:#222;
  4. background: #ccf;
  5. padding:3px 12px;
  6. border-top: 1px solid #fff;
  7. border-bottom: 1px solid #777;
  8. }

Menü mit Drucktastenoptik und Einzügen Als nächstes werden die Drucktastenoptik und die Einzüge für die Listeneinträge angelegt. Da ja Untermenüs vorhanden sind, empfiehlt es sich, die Einträge der ersten Ebene beispielsweise durch zusätzliche Abstände und dickere Linien (oben) voneinander abzugrenzen. Das erleichtert die Zuordnung der Untermenüs und macht das Ganze übersichtlicher. In den Einträgen der Untermenüs werden diese Zusätze zurückgenommen. Dafür werden dort die Links und der Codeschnipsel für die aufgerufene Seite eingezogen, um sie besser als Unterebene identifizieren zu können. Die aufgerufene Seite wird zusätzlich durch ein Hintergrundbild angezeigt. Das dazugehörige CSS sieht so aus:

  1. ul li {
  2. margin:7px 0 0;
  3. border-top: 2px solid #99f;
  4. border-bottom: 1px solid #fff;
  5. }
  6. /* Kontextselektor für die Listeneinträge der zweiten Ebene: */
  7. li li {
  8. border:0;
  9. margin:0;
  10. display:inline;
  11. }
  12. a {
  13. display:block;
  14. color: #000;
  15. padding: 1px 5px 3px 10px;
  16. border: 1px solid #eef;
  17. border-top: 1px solid #fff;
  18. border-bottom: 1px solid #aaf;
  19. border-left:0;
  20. background:#eef;
  21. }
  22. strong {
  23. display:block;
  24. color: #fff;
  25. padding: 2px 5px 3px 10px;
  26. background: #006;
  27. border-right: 1px solid #fff;
  28. border-top: 1px solid #808000;
  29. border-bottom: 1px solid #ddf;
  30. border-left: 2px solid #bbb;
  31. }
  32. strong dfn {
  33. color:#eef;
  34. }

Der folgende Kontextselektor erzeugt die Abstände und Einzüge der Listeneinträge der zweiten Ebene. Für die nächsttiefere Ebene muss der linke Einzug immer um je 10 Pixel erhöht werden, also:

  1. li li a, li li a:hover, li li strong {
  2. padding-left:20px;
  3. }

das gesamte Menü mit angezeigtem hover-Effekt und Anzeige einer bereits besuchten Seite Nun noch einige brauchbare Auszeichnungen wie Effekte für das Überfahren mit der Maus und das Navigieren mit der Tabulatorentaste. Für das Tabbing gibt es ebenfalls eine eigene Formatierung, die allerdings nicht in allen Browsern ausgeführt wird. Abschließend kann man noch die Ordnungszahlen eigens gestalten. Hier ist erwähnenswert, dass das dfn-Element standardmäßig mit kursivem Schriftschnitt ausgegeben wird und dadurch eventuell eine zusätzliche Anpassung notwendig ist. Im CSS sieht das so aus:

  1. a:visited {
  2. color:#444;
  3. background: url(butvis.gif) right top no-repeat;
  4. }

Eine besondere Beachtung bei der CSS-Auszeichnung verdient die Behandlung der Linien (border). Sie stellen gerade für sehbehinderte Menschen eine nützliche Orientierungshilfe dar. Hierbei gilt es zu bedenken, dass sehbehinderte Menschen häufig mit lokalen Einstellungen surfen, beispielsweise weil sie mit hellen Schriften auf dunklen Hintergründen besser zurecht kommen.

Menü mit ignorierten Webseitenfarben Bei der Aktivierung lokaler Einstellungen werden alle Schrift-, Hintergrund- und Linienfarben, die Sie in Ihrem Design festgelegt haben, außer Kraft gesetzt und mit den eigenen Farben des Benutzers überschrieben. Sie können sich selbst einen Eindruck verschaffen, indem Sie beispielsweise im Internet Explorer mittels Extras > Internetoptionen > Alt+E > Farbangaben auf Webseiten ignorieren aktivieren.

Menü mit lokal definierten Schrift- und Hintergrundfarben Sollten Ihre Versuche scheitern, mit Extras > Internetoptionen > Alt+F > Windows-Farben deaktivieren und Farben wählen auch die Hintergrundfarben beispielsweise auf Schwarz einzustellen, sei darauf hingewiesen, dass hier offensichtlich ein bug im Internet Explorer vorliegt, der die Einstellungen nur für die Schriftfarben übernimmt. Sie müssen deshalb in den Start > Einstellungen > Systemsteuerung > Anzeige > Darstellung > Schema > "Kontrast Schwarz" wählen.

Wir werden in der Folge zeigen, mit welchen Auszeichnungen Sie dennoch die betreffenden Nutzer unterstützen können, unabhängig davon, ob lokale Einstellungen verwendet werden oder nicht.

  1. a:hover {
  2. padding:2px 10 px;
  3. border-top: 1px solid #bbb;
  4. /* bei lokalen Einstellungen bleibt ein Hover-Effekt erhalten */
  5. border-right: 7px solid #fff;
  6. border-bottom: 1px solid #ddf;
  7. border-left: 1px solid #99f;
  8. background: #fff;
  9. }

Ausschnitt mit fokussiertem Link Beim Antabben werden stärkere Kontraste eingesetzt, die zugleich eine Unterscheidung von der aktuell angezeigten Seite im Menü ermöglichen. Stärkere Linien sichern - wie beim hover-Effekt - die Unterstützung bei lokalen Einstellungen.

  1. a:focus, a:active {
  2. color:#ff0;
  3. font-weight:bold;
  4. border-top: 1px solid #ff0;
  5. border-right: 7px solid #ff0;
  6. border-bottom: 1px solid #000;
  7. border-left: 1px solid #000;
  8. background: #33a;
  9. }

das gesamte Menü mit angezeigtem hover-Effekt und Anzeige einer bereits besuchten Seite zuletzt werden noch die Ordnungszahlen formatiert, um das Menü fertigzustellen:

  1. dfn {
  2. font: bold 0.7em tahoma, sans-serif;
  3. color:#00c;
  4. margin-right:3px;
  5. }
  6. strong dfn {
  7. color: #fff;
  8. }
  9. #menue a:focus dfn, #menue a:active dfn {
  10. color: #ff0;
  11. }

Geht das nur so?

Der Eine oder die Andere möge befürchten, dass die hier vorgestellte Navigation Einschränkungen beim Design nach sich zieht. Doch gerade die Trennung von Struktur und Gestaltung halten hier mindestens ebenso viele Möglichkeiten offen wie bei dem bisherigen Weg der Umsetzung. Das bleibt letztlich Ihrer Kreativität überlassen. Zur Veranschaulichung einige Beispielseiten, die das in diesem Tutorium vorgestellte Navigationsmenü einsetzen:

Entscheidend ist natürlich im Zweifelsfall, ob die Voraussetzungen für Barrierefreiheit durch die Geräteunabhängigkeit erfüllt sind. Im nächsten Teil sehen Sie das Ergebnis unserer Testreihen für visuelle und textbasierte Browser und für die gängigsten Screenreader.

Wir würden gerne Ihre Meinung wissen: Teilen Sie uns Ihre Erfahrungen mit und diskutieren Sie diesen Artikel mit anderen Experten.