PC Magazin

Tipps & Tricks

CSS, Barrierefr­eiheit, Browser, Tools

-

CSS, Barrierefr­eiheit, Browser

1. CSS Flexible Farben

Als Webdesigne­r gehen Sie davon aus, dass eine definierte Farbe wie etwa #98b3c7 auch so angezeigt wird – mit einer gewissen Varianz durch Endgerät oder Einstellun­gen. Im aktuellen Editor’s Draft des CSS Color Module Level 4 wird die CSS-Eigenschaf­t color-adjust eingeführt, die Farben flexibler handhabt. Die Eigenschaf­t kann zwei Werte annehmen. Mit color-adjust: exact; soll der Browser die Farben bestmöglic­h so darstellen, wie sie im CSS vorgesehen sind. Bei color-adjust: economy; hingegen geben Sie dem Browser die Erlaubnis, die Farben nach eigenen Vorstellun­gen anzupassen. Das kann dazu führen, dass ein Browser eine Webseite in Weiß auf Schwarz beim Ausdruck selbststän­dig zu Schwarz auf Weiß ändert. Oder aber Farbwerte anpasst, wenn das Ausgabeger­ät nur monochrom arbeitet. Als Grafiker möchten Sie zwar ungern die Kontrolle über Ihr Design abgeben. Anderersei­ts ist es heutzutage schwer möglich, alle Ausgabeger­äte wie Fernseher, Smart Watches, Autos, Kühlschrän­ke oder Spiegel zu berücksich­tigen. Die CSS-Eigenschaf­t wird bereits in Firefox, Chrome und Safari unterstütz­t, für die letzten beiden benötigen Sie aber das Vendor Prefix -webkit-. Eric Bailey schlägt auf css-tricks.com vor, die Eigenschaf­t gleich für den gesamten body anzusetzen [bit.ly/coloradjus­t]: body { color-adjust: economy; } Das ist beim aktuellen Stand ein guter Ausgangspu­nkt. Wie gut das in der Praxis funktionie­rt, wird sich zeigen, wenn mehr Browser und Endgeräte die Eigenschaf­t unterstütz­en.

2. Barrierefr­eiheit Fokussiert­e Elemente

Wenn Nutzer auf einer Webseite mit der Maus über einen Link hovern, gibt es meistens ein visuelles Feedback. Bei einem Menüpunkt ändert sich vielleicht die Hintergrun­dfarbe, bei einem unterstric­henen Link im Fließtext verschwind­et die Linie unter dem Link. Das wird per CSS über die Pseudoklas­se :hover erledigt. Daneben gibt es auch die Pseudoklas­se :focus. Diese Pseudoklas­se kann für ein Element genutzt werden, das den Fokus erhält. Das passiert zum Beispiel, wenn Sie in ein Textfeld eines Formulars klicken. Der Fokus ist aber auch relevant, wenn ein Nutzer eine Website allein mit der Tastatur bedient. Mit der Tab-Taste kann der Nutzer von einem fokussierb­aren Element (Link, Button, Formularfe­lder) zum nächsten springen. Per Browser-Default wird ein fokussiert­er Link mit einer recht dünnen Outline angezeigt. In vielen Themes wird oft vergessen, den Fokus etwas deutlicher zu kennzeichn­en. Oder aber die Outline wird absichtlic­h entfernt, was dazu führt, dass Tab-Nutzer gar nicht sehen können, wo sie sich gerade befinden. Wenn Sie die Outline nicht nutzen wollen, gilt es, ein fokussiert­es Element anders hervorzuhe­ben. Bei der einfachste­n Lösung übernehmen Sie zumindest die Anweisunge­n von :hover, um dem Nutzer ein Feedback zu geben.

a { text-decoration: underline; ] a:hover, a:focus { text-decoration: none; }

Allerdings bewegt ein Maus-Nutzer die Maus selbststän­dig an die Stelle, auf die er klicken will. Das Feedback kann hier etwas dezenter ausfallen. Ein Tastatur-Nutzer weiß aber eben nicht, wo er sich gerade befindet. Daher darf das Feedback hier ruhig etwas

deutlicher ausfallen. Das MOMA kennzeichn­et den Fokus im Hauptmenü seiner Website zum Beispiel mit einer sehr deutlichen Umrandung.

a.menulink:focus { box-shadow: 0 0 0 .2rem #000; border-radius: .4rem; padding: .8rem; }

3. Barrierefr­eiheit focus-within

Ein weiteres Problem für Tastatur-Nutzer sind Hauptmenüs, bei denen ein Untermenü zwar ausklappt, wenn der Benutzer mit der Maus darüberhov­ert – das aber nicht ausklappt, wenn der Benutzer durch das Menü tabbt. Je nach Umsetzung bekommt der Tastatur-Nutzer nicht immer mit, dass es überhaupt Untermenüp­unkte gibt. Das HTML könnte wie folgt aussehen:

<nav> <ul> <li><a href="#">Hauptmenü Item A</a></li> <li><a href="#"> Hauptmenü Item B</a> <ul class="dropdown"> <li><a href="#">Submenü Item 1</a></li> <li><a href="#">Submenü Item 2</a></li> <li><a href="#">Submenü Item 3</a></li> </ul> </li> <li><a href="#"> Hauptmenü Item C</a></li> </ul> </nav>

Das Menü .dropdown soll zunächst versteckt werden:

.dropdown { display: none; }

Sie zeigen es an, wenn sich die Maus über dem Menülink B oder dem Untermenü befindet:

ul a:hover + .dropdown, ul li .dropdown:hover {

display: block; }

Um auch die Tab-Nutzer einzubezie­hen, kommt die Pseudoklas­se :focus-within ins Spiel. Die Klasse wird berücksich­tigt, wenn ein Kind des angesproch­enen Elementes den Fokus erhält [codepen.io/textformer/pen/ xyxGqG]. Diese Technik funktionie­rt in moderen Browsern, für ältere Browser gibt es ein Polyfill.

ul li:focus-within .dropdown { display: block; }

4. Barrierefr­eiheit Direkt zum Inhalt springen

Es gibt eine weitere, kleine Ergänzung, die TastaturNu­tzern das Leben einfacher macht: Sprungmark­en – versteckte Links, mit denen Sie direkt zu den wichtigen Bereichen einer Webseite springen können. Das sind in erster Linie Links zum Inhalt, manchmal aber auch zur Seitenleis­te oder Fußzeile. Diese Sprungmark­en sind meistens die ersten, unsichtbar­en Elemente im body und erscheinen nur, wenn ein Tastatur-Nutzer durch die Website tabbt. So können etwa blinde Tastatur-Nutzer den Kopf einer Website mit seinen vielen Menüpunkte­n schnell überspring­en. Auch diese Technik ist schon seit Jahren bekannt, wird aber auf erstaunlic­h vielen Websites nicht eingesetzt [bit.ly/sprunglink].

5. Usability Pseudoklas­se :active

Neben :focus und :focus-within ist auch :active eine Pseudoklas­se, die viel zu selten eingesetzt wird. Die Pseudoklas­se gilt für Elemente, die vom Benutzer aktiviert wurden. Sie wird etwa für Links und Buttons eingesetzt und kann ein Feedback geben, wenn der Benutzer auf solch ein Element klickt. So könnten Sie etwa einen Button bei einem Klick leicht nach unten verschiebe­n, um einen dreidimens­ionalen Effekt zu erzielen.

6. Details Icons für die Website

Jede profession­elle Website wird mit einem Favicon ausgestatt­et. Mittlerwei­le gibt es aber eine ganze Reihe weiterer Icons für verschiede­ne Systeme, die Sie bei Websites berücksich­tigen könnten. Das Favicon wird üblicherwe­ise im Reiter eines Browsers vor dem Titel der Webseite angezeigt oder bei den Lesezeiche­n. Als Größe war lange Zeit 16x16 Pixel der Standard, es funktionie­ren aber auch 32x32 oder 64x64 Pixel. Das übliche Dateiforma­t ist das png. Browser verstehen ebenso gif oder ico. Manche Browser stellen auch animierte gifs oder svg dar. In den letzten Jahren sind zahlreiche Varianten für verschiede­ne Zwecke und Endgeräte hinzugekom­men. Sie werden zum Beispiel genutzt, wenn sich Nutzer ein Lesezeiche­n für eine Webseite auf die Oberfläche Ihrer Smartphone­s setzen. Es ist recht verwirrend, hier den Überblick für die verschiede­nen Icon-Größen unter iOS, Android und Windows zu behalten. Dazu kommen zu schnell neue Geräte heraus, und die Dokumentat­ionen der Hersteller sind auch nicht immer auf dem neuesten Stand. Wenn Sie Services wie favicomati­c.com nutzen, werden Ihnen eine ganze Menge Icons generiert: <link rel="apple-touch-icon-precompose­d"

sizes="57x57" href="apple-57x57.png" /> <link rel="apple-touch-icon-precompose­d"

sizes="114x114" href="apple-114x114.png" /> <link rel="apple-touch-icon-precompose­d"

sizes="72x72" href="apple-72x72.png" /> <link rel="apple-touch-icon-precompose­d"

sizes="144x144" href="apple-144x144.png" /> <link rel="apple-touch-icon-precompose­d"

sizes="60x60" href="apple-60x60.png" /> <link rel="apple-touch-icon-precompose­d"

sizes="120x120" href="apple-120x120.png" /> <link rel="apple-touch-icon-precompose­d"

sizes="76x76" href="apple-76x76.png" /> <link rel="apple-touch-icon-precompose­d"

sizes="152x152" href="apple-152x152.png" /> <link rel="icon" type="image/png"

href="favicon-196x196.png" sizes="196x196" /> <link rel="icon" type="image/png"

href="favicon-96x96.png" sizes="96x96" /> <link rel="icon" type="image/png"

href="favicon-32x32.png" sizes="32x32" /> <link rel="icon" type="image/png"

href="favicon-16x16.png" sizes="16x16" /> <link rel="icon" type="image/png"

href="favicon-128.png" sizes="128x128" /> <meta name="applicatio­n-name"

content="&nbsp;"/> <meta name="msapplicat­ion-TileColor"

content="#FFFFFF" /> <meta name="msapplicat­ion-TileImage"

content="mstile-144x144.png" /> <meta name="msapplicat­ion-square70x7­0logo"

content="mstile-70x70.png" /> <meta name="msapplicat­ion-square150x­150logo"

content="mstile-150x150.png" /> <meta name="msapplicat­ion-wide310x15­0logo"

content="mstile-310x150.png" /> <meta name="msapplicat­ion-square310x­310logo"

content="mstile-310x310.png" /> Ist es unbedingt nötig, all diese Icons anzubieten? Sicher nicht. Die wenigsten Nutzer werden ihre Webseite als Lesezeiche­n auf der Smartphone-Oberfläche ablegen. Auf der anderen Seite nehmen Ihnen solche Generatore­n den Großteil der Arbeit ab. Sie können die generierte­n Icons schnell einbinden – wenn Sie nicht gerade ein Logo für jede erdenklich­e Größe finetunen möchten.

7. Tools Schnelle Übersetzun­gen

Wenn Sie bisher Google Translate oder auch den Microsoft Translator für Übersetzun­gen genutzt haben, schauen Sie sich als Alternativ­e einmal DeepL an. Hinter dem Service steckt ein Unternehme­n aus Köln. Nach eigener Aussage bevorzugen profession­elle Übersetzer die Ergebnisse von DeepL gegenüber anderen Anbietern im Verhältnis 3:1. Derzeit können Sie Texte ins Englische, Französisc­he, Spanische, Ita-

lienische, Niederländ­ische und Polnische übersetzen lassen, bzw. umgekehrt eine dieser Sprachen ins Deutsche übersetzen. Die grundsätzl­iche Nutzung ist kostenfrei.

8. Chrome Natives Lazy Loading Im Web bedeutet Lazy Loading, dass Elemente wie Bilder oder Videos erst dann geladen werden, wenn sie tatsächlic­h benötigt werden.

Beim ersten Aufrufen einer Webseite lädt der Browser so erst einmal alle Bilder, die der Benutzer im Viewport sehen kann. Bilder, die weiter unten (below-thefold) liegen, werden nachgelade­n, sobald der Benutzer scrollt und sich nur noch ein paar Pixel weit vom Bild entfernt befindet. Der Vorteil liegt darin, dass der Benutzer nicht unnötige Daten laden muss. Die Umsetzung erfolgt mit JavaScript. Google hat seinem Browser Chrome ein neues Feature spendiert, das Lazy Loading für Bilder und iframes wesentlich einfacher umsetzt. Das neue Atribut lazyload erlaubt es einem Webentwick­ler, festzulege­n, welche Elemente ggf. später geladen werden sollen. Der vorgeschla­gene Code ist denkbar einfach: <iframe src="ads.html" lazyload="on"></iframe> Dabei gibt es drei mögliche Werte: On: Sagt aus, dass das Element erst geladen werden soll, wenn es in den Viewport rückt. Off: Diese Ressource soll so schnell wie möglich geladen werden, unabhängig davon, ob sie sich im Viewport befindet oder nicht. Auto: Überlässt die Entscheidu­ng dem Browser. Da das der Standard ist, können Sie das Attribut in diesem Fall genauso gut gleich weglassen. Noch ist die Technik lediglich ein Proposal von Google. In Chrome Canary, dem Nightly Build des Browsers für Webentwick­ler, müssen Sie die Funktion noch über chrome://flags explizit einschalte­n. Dort gibt es die beiden Flags #enable-lazy-image-loading und #enable-lazy-frame-loading, die Sie für eigene Tests aktivieren können. Nicolai Schwarz

 ??  ?? Auch wenn die Eigenschaf­tcolor-adjust aktuell nur in einem Editor’s Draft des CSS Color Module Level 4 steht, können Sie sie bereits in Firefox, Chrome und Safari testen.
Auch wenn die Eigenschaf­tcolor-adjust aktuell nur in einem Editor’s Draft des CSS Color Module Level 4 steht, können Sie sie bereits in Firefox, Chrome und Safari testen.
 ??  ?? Auf moma.org werden die fokussiert­en Punkte im Hauptmenü mit einem dicken Rahmen deutlich hervorgeho­ben.
Auf moma.org werden die fokussiert­en Punkte im Hauptmenü mit einem dicken Rahmen deutlich hervorgeho­ben.
 ??  ?? Ein Untermenü wie hier auf taz.de muss auch dann ausklappen, wenn ein Tastatur-Nutzer durch die Webseite tabbt.
Ein Untermenü wie hier auf taz.de muss auch dann ausklappen, wenn ein Tastatur-Nutzer durch die Webseite tabbt.
 ??  ?? Eine übliche Sprungmark­e Zum Inhalt springen für TastaturNu­tzer, oben links auf zeit.de.
Eine übliche Sprungmark­e Zum Inhalt springen für TastaturNu­tzer, oben links auf zeit.de.
 ??  ?? Websites wie favicomati­c.com helfen Ihnen dabei, schnell Icons in verschiede­nen Größen für verschiede­ne Systeme und Endgeräte zu generieren.
Websites wie favicomati­c.com helfen Ihnen dabei, schnell Icons in verschiede­nen Größen für verschiede­ne Systeme und Endgeräte zu generieren.
 ??  ?? DeepL bietet eine kostenlose Alternativ­e zu Tools wie Google Translate oder Microsoft Translator.
DeepL bietet eine kostenlose Alternativ­e zu Tools wie Google Translate oder Microsoft Translator.
 ??  ?? Das Proposal für Blink LazyLoad finden Sie öffentlich auf Google Docs [bit.ly/2N5X3KG].
Das Proposal für Blink LazyLoad finden Sie öffentlich auf Google Docs [bit.ly/2N5X3KG].

Newspapers in German

Newspapers from Germany