49
Chancen und Risiken von CSS bezüglich der Barrierefreiheit anhand ausgewählter Beispiele Kai Laborenz, Sunbeam GmbH Barrierefreiheit und Karrierefrauen

Barrierefreiheit und Karrierefrauen

Embed Size (px)

DESCRIPTION

Chancen und Risiken von CSS bezüglich derBarrierefreiheit anhand ausgewählter Beispiele

Citation preview

Page 1: Barrierefreiheit und Karrierefrauen

Chancen und Risiken von CSS bezüglich derBarrierefreiheit anhand ausgewählter BeispieleKai Laborenz, Sunbeam GmbH

Barrierefreiheit und Karrierefrauen

Page 2: Barrierefreiheit und Karrierefrauen

Eigentlich sollte der Vortrag ja so heißen...

Chancen und Risiken von CSS bezüglich der Barrierefreiheit anhand ausgewählter Beispiele

Page 3: Barrierefreiheit und Karrierefrauen
Page 4: Barrierefreiheit und Karrierefrauen

Worum geht es heute?

Chancen und Risiken allgemeinGute und schlechte Beispiele

Chance: skalierbare Menüs mit CSSRisiko und Chance: versteckte ElementeRisiko: Link-Icons mit CSSChance: Freie QuellcodereihenfolgeRisiko: CSS Image ReplacementChance: CSS und Javascript

Page 5: Barrierefreiheit und Karrierefrauen

Chancen und Risiken

Gute Beispiele Die dunkle Seite

Page 6: Barrierefreiheit und Karrierefrauen

„Warum ist CSS so wichtig für die Barrierefreiheit?“

Chancen

Trennung von Struktur (HTML-„Markup“) undPräsentation erlaubt variable Präsentation

für unterschiedliche Ausgabegeräte (Browser, Handy,Screenreader, ...)für eigene Vorgaben (Userstylesheets,Betriebssytemvorgaben, ...)

Design für Flexibilität

Völlig neue Möglichkeiten (versteckte Texte)

Page 7: Barrierefreiheit und Karrierefrauen

Risiken

CSS ist anders als Tabellen„width: 200px“ meint auch „Breite: 200 Pixel“ (zumindest inmodernen Browsern)einige beliebte Funktionen sind mit CSS kompliziertumsetzbar (z.B. gleichlange Spalten)

Fordert andere Herangehensweise (Semantik statt Optik)

Unterstützung älterer Browser verbesserungswürdig(sprich: Internet Explorer 6)

CSS-Design bedeutet nicht, <table> durch <div> zuersetzen!

„Wo liegen die Probleme?“

Page 8: Barrierefreiheit und Karrierefrauen

Stern.de

Page 9: Barrierefreiheit und Karrierefrauen

Spiegel.de

Page 10: Barrierefreiheit und Karrierefrauen

So ist‘s besser: Einfach-fuer-Alle.de

Page 11: Barrierefreiheit und Karrierefrauen

Tagesschau.de

Page 12: Barrierefreiheit und Karrierefrauen

Chance: Skalierbare semantische Elemente

HTML bietet für viele Gelegenheiten die passendenElemente

<h1>Dies ist eine Überschrift </h1>

Page 13: Barrierefreiheit und Karrierefrauen

Chance: Skalierbare semantische Elemente

HTML bietet für viele Gelegenheiten die passendenElemente

<h1>Dies ist eine Überschrift </h1>

Page 14: Barrierefreiheit und Karrierefrauen

...oder Menüs

<ul><li>Erster Auswahlpunkt</li><li>Zweiter Auswahlpunkt</li><li>Dritter Auswahlpunkt</li></ul>

Page 15: Barrierefreiheit und Karrierefrauen

Chance vertan: cnet.com

Menüals Liste

Page 16: Barrierefreiheit und Karrierefrauen

Skalierbarkeit? Fehlanzeige!

Überlagerungenaufgrundfixer Breitendurch Grafiken

Page 17: Barrierefreiheit und Karrierefrauen

Update in letzter Sekunde...

Page 18: Barrierefreiheit und Karrierefrauen

Dabei ist es so einfach!

Zutaten:Semantisches HTML: die ListeEin paar Grafiken mit ÜbermaßEtwas CSS

Page 19: Barrierefreiheit und Karrierefrauen

Der HTML-Code

<ul><li><a href =„#“>Erster Punkt</a></li><li><a href =„#“>Zweiter Punkt</a></li><li><a href =„#“>Dritter Punkt</a></li></ul>

Page 20: Barrierefreiheit und Karrierefrauen

Zwei Grafiken mit Übermaß

Die Grafiken

Page 21: Barrierefreiheit und Karrierefrauen

KLEIN

Der Trick

GROSS

Sichtbarer Bereich

Page 22: Barrierefreiheit und Karrierefrauen

Das CSS - Teil 1

ul { list-style-type : none; margin : 0; padding : 0;}li { float : left; background : url(menuereiter02_links.gif) no-repeat top left;}li a { float : left; background : url(menuereiter02_rechts.gif) no-repeat top right; padding : 0.2em 1em; text-align : center; text-decoration : none;}

Page 23: Barrierefreiheit und Karrierefrauen

Das CSS - Teil 2

ul { list-style-type : none; margin : 0; padding : 0;}

li { float : left; background : url(menuereiter02_links.gif)

no-repeat top left;}li a { float : left; background : url(menuereiter02_rechts.gif) no-repeat top right; padding : 0.2em 1em; text-align : center; text-decoration : none;}

Page 24: Barrierefreiheit und Karrierefrauen

Das CSS - Teil 3

ul { list-style-type : none; margin : 0; padding : 0;}li { float : left; background : url(menuereiter02_links.gif) no-repeat top left;}

li a { float : left; background : url(menuereiter02_rechts.gif)

no-repeat top right; padding : 0.2em 1em; text-align : center; text-decoration : none;}

Page 25: Barrierefreiheit und Karrierefrauen

Und so sieht‘s aus

Page 26: Barrierefreiheit und Karrierefrauen

Risiko: versteckte Elemente

CSS erlaubt es, Elemente mit passenden Eigenschaften„unsichtbar zu machen“

allerdings...display: none = „read“: nonevisibility: hidden = „hearability“: hidden

Page 27: Barrierefreiheit und Karrierefrauen

Lösung: Verschobene Elemente

.usb { display : block; position : absolute; left : -3000em; height : 1px; width : 1px;}

Page 28: Barrierefreiheit und Karrierefrauen

Und so sieht‘s aus

<h2>Text mit display none</h2><p class="displayNone">Hier wurdedisplay: none eingesetzt.</p>

<h2>Text mit visibility hidden</h2><p class="visHidden">Hier wurdevisibility: hidden eingesetzt.</p>

<h2>Verschobener Text</h2><p class="usb">Dieser Text ist nurverschoben.</p>

...und so hört es sich an

Page 29: Barrierefreiheit und Karrierefrauen

Risiko: Link-Icons mit CSS

Forderung aus der BITV: Externe Links (insbesondere wenn

sie in einem neuen Fenster geöffnet werden) sollen als solcheerkennbar sein (BITV 10.1 und 13)

Lösung (traditionell): Kleine Bilder mit Link-Symbolenwerden direkt in den Quellcode eingebunden

Lösung (neu): Per CSS werden die Icons eingeblendet

Page 30: Barrierefreiheit und Karrierefrauen

Das Problem: Screenreader lesen kein CSS

ohne Grafiken: kein Symbol, kein Hinweisohne CSS: kein Symbol, kein Hinweis

im Screenreader: kein Symbol, keine Vorwarnung

Page 31: Barrierefreiheit und Karrierefrauen

Was tun?

Lösung 1: normales IMG im Dokument mit ALT-TextNachteil: „Verunstaltung des Quellcodes“, keine sonstigeMarkierung des Links, keine Unterscheidung zwischen Link undHover,... kann nur vor oder nach dem Link stehenVorteil: geht immer (für IE sollten keine Abmessungen notiertsein)

Lösung 2: CSS-Icon in Verbindung mit verstecktem TextNachteil: Bilder aus, CSS an führt zu keiner MarkierungVorteil: elegant (kein IMG im Text), kann vor (Vorlesetext) undnach (Icon) dem Link angezeigt werden.

Page 32: Barrierefreiheit und Karrierefrauen

ohne Grafiken

Page 33: Barrierefreiheit und Karrierefrauen

So sieht‘s aus...

...und so hört es sich an

Page 34: Barrierefreiheit und Karrierefrauen

Der HTML-Code

Dieser <a href="#3" class="external-link"> <em>(extern, neues Fenster): </em>Link</a> ist per CSSund verstecktem Text gekennzeichnet.

Page 35: Barrierefreiheit und Karrierefrauen

Der HTML-Code

Dieser <a href="#3" class="external-link"> <em>(extern, neues Fenster): </em>Link</a> ist per CSSund verstecktem Text gekennzeichnet.

Page 36: Barrierefreiheit und Karrierefrauen

Der HTML-Code

Dieser <a href="#3" class="external-link"> <em>(extern, neues Fenster): </em>Link</a> ist per CSSund verstecktem Text gekennzeichnet.

Page 37: Barrierefreiheit und Karrierefrauen

Das CSS

a.external-link {background: url(icon_ext_link.gif) no-repeat

bottom right;padding-right: 16px;

}

a em { display: block; position: absolute; left: -3000em; height: 1px; width: 1px;}

Page 38: Barrierefreiheit und Karrierefrauen

Aber...

a.external-link {background: url(icon_ext_link.gif) no-repeat bottom right;padding-right: 16px;

}

Im Kontrastmodus werden HintergrundbilderdeaktiviertLösung durch CSS2:

a.external-link:after {content: " " url(icon_ext_link.gif);

}

Funktioniert nicht im Internet Explorer 6Lösung: Javascript...

Page 39: Barrierefreiheit und Karrierefrauen

Chance: Freie Wahl des Quellcodes

Gut* für Suchmaschinen und Barrierefreiheit: Inhaltvor der Navigation (im Quellcode) - insbesonderewenn sie lang ist

Außerdem wollen wir:3 SpaltenFlexibles Layout (ändert sich mit der Bildschirmgröße)Unterschiedliche Einheiten für alle drei Spalten!

*vermutlich

Page 40: Barrierefreiheit und Karrierefrauen

Variante 1 (traditionell mit floats):

<div id="menue"><p>Menü</p>

</div>

<div id="inhalt"><p>Inhalt</p>

</div>

<div id="marginalie"><p>Marginalie</p>

</div>

#menue {background: #006699;width: 20%;float: left;

}

#inhalt {background: #CC3300;width: 60%;float: left;

}

#marginalie {background: #669933;width: 20%;float: left;

}

Problem: Funktioniert nur reibungslos, wenn alle Breiten in Prozenten angegeben sind

Page 41: Barrierefreiheit und Karrierefrauen

Variante 2 (floats rechts und links):

<div id="menue"><p>Menü</p>

</div>

<div id="marginalie"><p>Marginalie</p>

</div>

<div id="inhalt"><p>Inhalt</p>

</div>

#menue {background: #006699;width: 10em;float: left;

}

#inhalt {background: #CC3300;margin: 0 20% 0 10em;

}

#marginalie {background: #669933;width: 20%;float: right;

}

Problem: Kasten mit den Inhalten kommt erst ganz am Ende

Page 42: Barrierefreiheit und Karrierefrauen

Variante 3 (position: absolute):

<div id="inhalt"><p>Inhalt</p>

</div>

<div id="menue"><p>Menü</p>

</div>

<div id="marginalie"><p>Marginalie</p>

</div>

#menue {position: absolute;width: 10em;left: 0;top: 0;

}#inhalt {

margin: 0 20% 0 10em;}#marginalie {

position: absolute;width: 20%;right: 0;top: 0;

}

Page 43: Barrierefreiheit und Karrierefrauen

position: absolute??

Verwendung von position: absolute alsMethode, die Elemente der Seite pixelgenauauf der Seite zu platzieren

Verwendung von position: absolute fürinnerhalb von mit position: relative alsBasis markierten Container, z.B. in einemper margin freigesperrten Bereich

Page 44: Barrierefreiheit und Karrierefrauen

Risiko: CSS Image Replacement

Was ist das?Mit Hilfe von Hintergrundgrafiken wird einem Elementein grafischer Text zugewiesen. Der eigentliche Textwird „verschoben“

Problem:Bei den meisten Techniken wird bei anderemHintergrundeinstellungen (z.B. durch Kontrastmodusvon Windows) gar nichts angezeigt

Weitere Infos:http://meiert.com/de/publications/articles/20050513/

Page 45: Barrierefreiheit und Karrierefrauen

Glider- / Levinmethode

<h1><span></span>Muster</h1>

h1 {position: relative;height: 2em;

width: 6em;}h1 span { position: absolute; background: #fff url(muster.gif) no-repeat; height: 100%; width: 100%;}

Page 46: Barrierefreiheit und Karrierefrauen

Chance: CSS und Javascript

Mit Hilfe von JavaScript lassen sich CSS-Eigenschaftenverändern

z.B. Hinweise in FormularenBeispiel: Auflösungsabhängiges Design

Moderne Screenreader können mit JavaScript umgehen- zusätzliche Hilfen sind generell erlaubt

Page 47: Barrierefreiheit und Karrierefrauen

Auflösungsabhängiges Design (www.woche-des-sehens.de)

1024 Pixel Breite

800 Pixel Breite

Page 48: Barrierefreiheit und Karrierefrauen

Wie geht das?

function checkBrowserWidth() {var theWidth = getBrowserWidth();if (theWidth > 800) {

setStylesheet("1024 x 768");}else {

setStylesheet("");}return true;

};

Quellcode und Infos:http://www.themaninblue.com/writing/perspective/2004/09/21/

Page 49: Barrierefreiheit und Karrierefrauen

Kai Laborenz

Geschäftsführer der Sunbeam GmbHBerliner Agentur für Kommunikation

(Barrierefreie) WebentwicklungDesign, modernes HTML & CSS, SoftwareentwicklungSpezialität: TYPO3 (Content-Managementsystem)Ausserdem klassische PR, Ausstellungen und Printdesign

[email protected]/eGov06