WCAG 3.1 Lesbarkeit Cheatsheet

  • Prof. Dr. Simon Nestler Dozent
  • Marcel Team Mitglied
  • Hayrettin Team Mitglied
Inhaltsverzeichnis

Willkommen zu unserem Cheatsheet über die WCAG 3.1 Lesbarkeit. In diesem Cheatsheet werden wir die verschiedenen Aspekte der Lesbarkeit behandeln, die in den WCAG 3.1-Richtlinien behandelt werden.

„Machen Sie Inhalt lesbar und verständlich.“

3.1.1 Sprache der Seite (A)

Weiterführende Informationen

Die voreingestellte menschliche Sprache jeder Webseite kann durch Software bestimmt werden.

Ziel

Assistenzprogramme sollen die auf der Website verwendete Sprache identifizieren können.

Warum

  • Screenreader und andere Assistenz-Technologien nutzen die Sprachinformation, um Inhalte richtig auszusprechen.
  • Verbessert die Zugänglichkeit für mehrsprachige Nutzer.
  • Suchmaschinen können Inhalte besser einordnen.

Umsetzung

Das auswählen des richtigen Sprachcodes ist wichtig.

[lang="en"] # English
[lang="de"] # Deutsch

Alle weiteren Sprach-Codes sind unter der ISO 639 festgelegt und Festgehalten:

List of ISO 639 language codes

Techniken

Webflow

Play Pause

Code

Wichtig: Dieses lang Attribut muss auf jeder Unterseite neu gesetzt werden. Es reicht nicht aus dies nur auf dem Index oder der Homepage zu tun.

<html lang="en">
...
</html>
<html lang="de">
...
</html>
Übung - Sprache der Seite

Code:

  • Lege das lang Attribut für alle deine Seiten im <HTML> Tag fest

Webflow:

  • Lege die Hauptsprache einmal unter den Einstellungen fest

3.1.2 Sprache von Teilen (AA)

Weiterführende Informationen

Die menschliche Sprache jedes Abschnitts oder jedes Satzes im Inhalt kann durch Software bestimmt werden außer bei Eigennamen, technischen Fachbegriffen, Wörtern einer unklaren Sprache und Wörtern oder Wendungen, die Teil des Jargons des direkt umliegenden Textes geworden sind.

Ziel

Alle Textabschnitte, die sich sprachlich von der Hauptsprache der Website unterscheiden, sollen auch von Assistenz-Programmen Identifizierbar sein.

Warum

  • Fremdsprachige Begriffe, Sätze, Zitate
  • Webseiten mit mehrsprachigen Inhalten
  • Eigennamen, Marken oder Fachbegriffe aus anderen Sprachen

Umsetzung

Techniken

Webflow

Play Pause

Code

Ein Fließtext auf eurer Website:

<html lang="de">
<p>
	Hallo, mein Name ist Marcel und ich studiere
	<span lang="en">User Experience Design</span>
	an der Technischen Hochschule Ingolstadt.
</p>
</html>

Eine Liste mit den verschiedenen Sprachoptionen die in ihren Eigennamen geschrieben sind:

<html lang="de">
<ul>
  <li><a href="example.com/german" lang="de">Deutsch</a></li>
  <li><a href="example.com/italian" lang="it">Italiano</a></li>
  <li><a href="example.com/french" lang="fr">Français</a></li>
  ...
</ul>
</html>
Übung - Sprache von Teilen
  • Schaue ob dein Portfolio fremdsprachige Textabschnitte oder Fachwörter enthält

  • Passe das lang-Attribut für entsprechende Abschnitte an.

  • Nutze dazu zum Bsp: den <span> inline-Container

3.1.3 Ungewöhnliche Wörter (AAA)

Weiterführende Informationen

Es gibt einen Mechanismus , um spezielle Definitionen von Wörtern oder Wendungen zu erkennen, die auf ungewöhnliche oder eingeschränkte Weise benutzt werden , Idiome und Jargon eingeschlossen.

Ziel

Nutzer sollen in der Lage sein, ungewöhnliche, technische oder bildhafte Begriffe zu verstehen, indem ihnen eine Definition oder Erklärung zur Verfügung gestellt wird

Warum

  • Menschen mit kognitiven, sprachlichen oder Lernbehinderungen verstehen Inhalte besser, wenn ungewöhnliche Begriffe erklärt werden.
  • Menschen mit Sehbehinderungen, die stark gezoomt arbeiten, verlieren oft den Zusammenhang und profitieren von eingebetteten Erklärungen.
  • Erhöht die Allgemeinverständlichkeit, besonders bei technischen oder spezialisierten Inhalten.

Umsetzung

Techniken & Code

Situation A: Der Begriff hat unterschiedliche Bedeutungen auf der selben Seite

Option 1 - Nur bei der ersten Verwendung erklären:

G55 - Verlinkung zur Definition
WCAG - G55

Variante 1: Link zur Definition auf derselben Seite (z. B. Glossar unten auf der Seite)

<p>
In diesem Artikel geht es um <a href="#modulo">modulo</a>-Operationen.
</p>

<!-- Später auf der Seite -->
<h2 id="modulo">Definition: Modulo</h2>

<p>
Modulo ist eine mathematische Operation,
bei der der Rest einer Division berechnet wird.
</p>

Variante 2: Link zur Definition auf einer anderen Seite (z.B. Wikipedia)

<p>
Viele Menschen kennen den Begriff
   <a href="https://de.wikipedia.org/wiki/Modulo"
   target="_blank">
   Modulo
   </a>
nicht. 
</p>
H40 - Verwendung von Beschreibungsliste (<dl>)
WCAG - H40
<dl title="Nautical Terms"> <!--HTML-Tag, der eine Definitionsliste darstellt -->

<dt>Knot</dt> <!-- definiert den Begriff -->
<dd> <!-- erklärt ihn -->
   A <i>knot</i> is a unit of speed equaling 1 
   nautical mile per hour (1.15 miles per hour or 1.852 
   kilometers per hour).
</dd>

<dt>Port</dt>
<dt>Portside</dt>  <!-- Mehrere <dt>s können zu einem <dd> gehören (z. B. Synonyme) -->
<dd>
   <i>Port</i> is the nautical term (used on 
   boats and ships) that refers to the left side
   of a ship, as perceived by a person facing towards 
   the bow (the front of the vessel).
</dd>

<dt>Starboard</dt>
<dd>
   <i>Starboard</i> is the nautical term (used 
   on boats and ships) that refers to the right 
   side of a vessel, as perceived by a person 
   facing towards the bow (the front of the vessel).
</dd>
</dl>

Situation B: Der Begriff hat eine eindeutige Bedeutung auf der Seite

Option 1 - Nur bei der ersten Verwendung erklären

Bleibt gleich

Option 2 - Bei jeder Verwendung erklären

G55 - Verlinkung zur Definition
WCAG - G55

Variante 1: Link zur Definition auf derselben Seite (z. B. Glossar unten auf der Seite)

<p>
In diesem Artikel geht es um <a href="#modulo">modulo</a>-Operationen.
</p>

<!-- Später auf der Seite -->
<h2 id="modulo">Definition: Modulo</h2>

<p>
Modulo ist eine mathematische Operation,
bei der der Rest einer Division berechnet wird.
</p>

Variante 2: Link zur Definition auf einer anderen Seite (z.B. Wikipedia)

<p>
Viele Menschen kennen den Begriff
   <a href="https://de.wikipedia.org/wiki/Modulo"
   target="_blank">
   Modulo
   </a>
nicht. 
</p>
H40 - Verwendung von Beschreibungsliste (<dl>)
WCAG - H40

Verwendung von Beschreibungsliste (<dl>)

<dl title="Nautical Terms"> <!--HTML-Tag, der eine Definitionsliste darstellt -->

<dt>Knot</dt> <!-- definiert den Begriff -->
<dd> <!-- erklärt ihn -->
   A <i>knot</i> is a unit of speed equaling 1 
   nautical mile per hour (1.15 miles per hour or 1.852 
   kilometers per hour).
</dd>

<dt>Port</dt>
<dt>Portside</dt>  <!-- Mehrere <dt>s können zu einem <dd> gehören (z. B. Synonyme) -->
<dd>
   <i>Port</i> is the nautical term (used on 
   boats and ships) that refers to the left side
   of a ship, as perceived by a person facing towards 
   the bow (the front of the vessel).
</dd>

<dt>Starboard</dt>
<dd>
   <i>Starboard</i> is the nautical term (used 
   on boats and ships) that refers to the right 
   side of a vessel, as perceived by a person 
   facing towards the bow (the front of the vessel).
</dd>
</dl>
G70 - Suchfunktion für ein Online-Wörterbuch anbieten
wCAG - G70

function dudenSuchen(event) {
   event.preventDefault(); // Verhindert Standard-Formular-Verhalten
   const begriff = document.getElementById("suchbegriff").value.trim();
   if (begriff) {
   const url = "https://www.duden.de/suchen/dudenonline/" + encodeURIComponent(begriff);
   window.open(url, "_blank");
   }
}

<h1>Begriff im Online-Wörterbuch suchen</h1>

<!-- Hier kann man ein Wort eingeben, um die Bedeutung im Duden zu sehen.  -->

<p>Gib ein Wort ein, um die Bedeutung im Duden zu sehen:</p>

<form onsubmit="dudenSuchen(event)">
   <label for="suchbegriff">Begriff:</label>
   <input type="text" id="suchbegriff" required>
   <button type="submit">Suchen</button>
</form>

<p><small>Die Definition öffnet sich in einem neuen Tab.</small></p>
Übung - Ungewöhnliche Wörter

Untersucht euer Portfolio auf Abkürzungen & ungewöhnliche Wörter und notiert euch diese

Webflow

Play Pause
Play Pause

3.1.4 Abkürzungen (AAA)

Weiterführende Informationen

Es gibt einen Mechanismus , um die ausgeschriebene Form oder Bedeutung von Abkürzungen zu erkennen.

Ziel

Nutzer sollen Zugriff auf die ausgeschriebene Form von Abkürzungen haben

Warum

Hilft besonders Menschen mit:

  • Kognitiven Einschränkungen
  • Sehbehinderungen (z. B. bei Nutzung von Bildschirmvergrößerungen)
  • Geringem Sprachverständnis oder schlechtem Erinnerungsvermögen

Umsetzung

Techniken

G55 - Verlinkung zur Definition
WCAG - G55

Variante 1: Link zur Definition auf derselben Seite (z. B. Glossar unten auf der Seite)

<p>
In diesem Artikel geht es um <a href="#modulo">modulo</a>-Operationen.
</p>

<!-- Später auf der Seite -->
<h2 id="modulo">Definition: Modulo</h2>

<p>
Modulo ist eine mathematische Operation,
bei der der Rest einer Division berechnet wird.
</p>

Variante 2: Link zur Definition auf einer anderen Seite (z.B. Wikipedia)

<p>
Viele Menschen kennen den Begriff
   <a href="https://de.wikipedia.org/wiki/Modulo"
   target="_blank">
   Modulo
   </a>
nicht. 
</p>

Siehe 3.1.3 “Ungewöhnliche Wörter” (G55/ G62/ G70 - gleiche Umsetzung in HTML & Webflow)

Übung Abkürzungen

Überlegt, welche der besprochenen Techniken am besten auf die zuvor notierten Wörter und Abkürzungen angewendet werden können, und setzt sie praktisch um.

3.1.5 Leseniveau (AAA)

Weiterführende Informationen

Wenn der Text nach der Entfernung von Eigennamen und Titeln Lesefähigkeiten voraussetzt, die über das Niveau der niedrigen, sekundären Schulbildung hinausgehen, dann gibt es ergänzenden Inhalt oder eine Version, die keine über die niedrige, sekundäre Schulbildung hinausgehenden Lesefähigkeiten verlangt.

Ziel

  • Sicherzustellen, dass zusätzliche Inhalte verfügbar sind, um das Verständnis schwieriger oder komplexer Texte zu unterstützen.
  • Einen messbaren Standard zu etablieren, der anzeigt, wann solche zusätzlichen Inhalte erforderlich sind

Warum?

Texte zugänglich machen für Menschen mit:

  • Kognitive Einschränkungen
  • Leseschwierigkeiten/ Dyslexie
  • geringem Sprachverständnis
  • Menschen mit geringer Aufmerksamkeitsspanne

Techniken

Weitere Informationsquellen und Beispiele (Nicht Teil der WCAG)

Netzwerk leichte Sprache Regelwerk
Lebenshilfe in leichter Sprache
Übung Lesbarkeit
Lesbarkeitsindex Textanalyse Tool
  • Analysiere einen langen Text von deiner Portfolio Seite mit dem Textanalyse Tool
    • Wie leicht lesbar ist er? Notiere dir den Wert.
    • Teile den Text in einfachere Sätze auf, bis er eine Lesbarkeit von mindestens 70 erreicht

Wichtig:

  • Vergiss nicht Eigennamen und Titel zu entfernen, bevor du den Text analysierst.
  • Der Lesbarkeitsindex bietet nur einen Anhaltspunkt für die Lesbakarkeit, genau wie zum Beispiel Häufigkeitslisten von Wörtern.
    • Letzten Endes ist eine feine Abschätzung von Nöten.
  • Leichte Sprache ist nicht gut für alle. Das Umschreiben von Fachwörtern macht es für Menschen die diese kennen den Text schwerer lesbar.

3.1.6 Aussprache (AAA)

Weiterführende Informationen

Es gibt einen Mechanismus , um die bestimmte Aussprache von Wörtern zu erkennen, wenn die Bedeutung der Wörter – im Zusammenhang – mehrdeutig ist, wenn man die Aussprache nicht kennt.

Ziel

Das Verständnis von Wörtern zu verbessern und Missverständnisse bei gleich geschriebenen, aber unterschiedlich bedeutenden Wörtern minimieren.

Warum

  • Fremdwörter
  • Homographen (gleich geschrieben, unterschiedlich gesprochen)
  • Poetische Texte, Lyrik, Fachsprache

Umsetzung

Zuerst sollte man die Korrekte Lautschrift für ein entsprechendes Wort finden. Diese gibt es unter:

Techniken

Webflow

Play Pause

Code

Einfacher Text mit Lautschrift Tipp wird über dem Text angezeigt.

Use of the ruby element
<html lang="de">
<p class="ruby-text">
  Vergiss nie, dass
  <ruby>Band<rt>bænd</rt></ruby>
  und
  <ruby>Band<rt>bant</rt></ruby>
  eine unterschiedliche Bedeutung haben.
</p>
</html>

Use of the ruby element with a visibility toggle

Ein zusätzlicher Toggle Button welcher Lautschrift für alle Textelemente mit der Klasse class="ruby-text" anzeigen und verbergen kann solange die Lautschrift per ruby-Tag festgelegt wurde.

(CSS Style ruby rt kann die Größe des Lautschrift-Textes verändern)

<html>

<!-- Den CSS Style entweder ins globale Stylesheet machen oder in Webflow unter Dashboard/Settings/Custom Code/ einfügen-->
<!-- Hier kannst du auch die Farbe, Größe und Position deiner Lautschrift ändern (Gerade ist es Blau und Darüber) -->
<style>
    .hidden-rt rt {
       display: none;
    }
    .ruby-text ruby {
      ruby-position: over;
      font-size: 1em;
    }
    .ruby-text rt {
      font-size: 0.75em;
      color: #0082fc;
      font-weight: 500;
    }
</style>

<!-- Das Script entweder einfach in den HTML code kopieren oder für Webflow unter Dashboard/Settings/Custom Code/ einfügen -->
<script>
document.addEventListener('DOMContentLoaded', function() {
const toggleElement = document.getElementById('toggleRuby');
const elements = document.querySelectorAll('.ruby-text');

toggleElement.addEventListener('click', function(event) {
  event.preventDefault(); // prevent jump if it’s a link

  let isHidden = elements[0].classList.contains('hidden-rt');
  elements.forEach(el => el.classList.toggle('hidden-rt'));

  // Update text if the element has textContent
  if (toggleElement.textContent) {
    toggleElement.textContent = isHidden ? "Aussprache verbergen" : "Aussprache anzeigen";
        }
    });
});
</script>

<!-- Jedes html Element kann mit der ID "toggleRuby" versehen, sei es Button, Link, Div etc... -->
<!-- Das Element mit der ID "toggleRuby" dient dann als Schalter für das Anzeigen der Lautschriften -->
<button id="toggleRuby">Aussprache anzeigen</button>

<!-- Wenn dein Text Lautschrift enthält musst du ihm die Klasse "ruby-text" geben damit er von dem Script erkannt wird -->
<!-- Du kannst die Klasse auch zu "ruby-text hidden-rt" umbennen. Dann ist die Lautschrift zunächst versteckt und kann anschließend durch den "toggleRuby" Button angezeigt werden  -->
    <p class="ruby-text">
    Vergiss nie, dass
    <ruby>Band<rt>bænd</rt></ruby>
    und
    <ruby>Band<rt>bant</rt></ruby>
    eine unterschiedliche Bedeutung haben.
    </p>

</html>
Übung Aussprache
  • Finde Fremdwörter oder Homographen auf deiner Website
  • Füge diesen Wörtern mit dem <ruby> & <rt> Tags ein Aussprachehinweis hinzu
  • Bonus: Gib diesen Aussprachehinweisen einen Toggle-Button
Alternativ Übung Aussprache
  • Finde Fremdwörter oder Homographen auf deiner Website
  • Erweitere deinen Glossar mit den entsprechenden Lautschriften oder verlinke zu einer passenden Wortdefinition

Zusammenfassung für die Portfoliowebsite

Um Level A und AA zu erfüllen:

  • lang Attribute für html Elemente und einzelne anderssprachige Elemente verwenden

Um Level AAA zu erfüllen:

  • Ungewöhnliche Wörter definieren
  • Abkürzungen ausgeschrieben oder erklärt zur Verfügung stellen
  • Sicherstellen, dass Texte für alle Verständlich sind
  • Aussprache von mehrdeutigen Wörtern klarstellen

Previous

RGB Light Controller

Gestaltung einer minimalistischen und modernen benutzerfreundlichen RGB-Lichtsteuerfernbedienung

Blender
Davinci Resolve
Illustrator
Next

ICE Train Speed

macOS-App, die die aktuelle Geschwindigkeit eines ICE-Zuges und weitere hilfreiche Informationen anzeigt.

Swift
Bruno