Sprache von Inhalten auszeichnen: das lang-Attribut (WCAG 3.1.1 und 3.1.2)
Ein Screenreader liest jeden Text mit den Ausspracheregeln einer
bestimmten Sprache vor. Steht keine Sprache im Code, rät er, und das
Ergebnis klingt oft unverständlich. Das Attribut lang
sagt der Vorlese-Software, welche Sprache gerade gilt. Diese Seite
erklärt die zwei zuständigen Erfolgskriterien, zeigt, wie du Seite
und einzelne Abschnitte korrekt auszeichnest, welche Sprach-Codes
richtig sind und welche Fehler immer wieder passieren.
Worum es geht: warum die Sprache im Code stehen muss
Vorlese-Software und Braillezeilen brauchen eine Information, die sehende Leser:innen nie bemerken: In welcher Sprache ist dieser Text geschrieben? Davon hängt ab, welche Ausspracheregeln, welche Betonung und welche Braille-Kürzel gelten. Fehlt die Angabe, nimmt der Screenreader seine Standardsprache an, und dann liest eine deutsche Stimme englische Wörter wie Deutsch vor, oder umgekehrt.
Das W3C nennt ein einprägsames Beispiel: Das französische Wort für Auto, voiture , spricht eine englische Sprachausgabe als „voyture" aus, wenn der Sprachwechsel nicht markiert ist. Auf einer ganzen Seite summieren sich solche Fehler zu einem Vortrag, dem man kaum folgen kann.
lang
wechselt er zu den richtigen Ausspracheregeln.Die Sprachauszeichnung hilft aber nicht nur der Aussprache. Sie sorgt dafür, dass Braille-Software die richtigen Kürzel setzt, dass Browser Schriftzeichen korrekt darstellen und dass automatische Übersetzung und Wörterbuch-Funktionen wissen, womit sie es zu tun haben.
Zwei Kriterien: Sprache der Seite und der Teile
WCAG behandelt das Thema in zwei Erfolgskriterien, die aufeinander aufbauen. Das erste betrifft die ganze Seite und ist Pflicht schon auf der niedrigsten Stufe. Das zweite betrifft einzelne fremdsprachige Abschnitte und gehört zur gesetzlich relevanten Stufe AA.
| Kriterium | Was es verlangt | Stufe |
|---|---|---|
| 3.1.1 Sprache der Seite | Die Hauptsprache der Seite lässt sich technisch bestimmen. In der Praxis: ein lang
-Attribut am <html>
-Element. |
A |
| 3.1.2 Sprache von Teilen | Auch die Sprache einzelner Abschnitte oder Phrasen lässt sich bestimmen, wenn sie von der Hauptsprache abweicht. | AA |
Wichtig ist die Reihenfolge: Wenn für einen Abschnitt keine eigene Sprache angegeben ist, gilt die Hauptsprache der Seite. Deshalb ist 3.1.1 die Grundlage. Das W3C empfiehlt ausdrücklich, auch auf einsprachigen Seiten mit Anglizismen das Kriterium 3.1.2 mitzudenken, obwohl es eine Stufe höher liegt.
Die Seite auszeichnen: lang am html-Element
Der erste und wichtigste Schritt ist ein einziges Attribut. Es gehört
an das <html>
-Element ganz oben und nennt die
Hauptsprache des Dokuments. Für eine deutschsprachige Seite:
index.html · Hauptsprache der Seite auszeichnen (Technik H57)
<!-- Die Hauptsprache steht am html-Element. --> <html lang ="de"> <head> ... </head> <body> <h1>Willkommen bei uns</h1> </body> </html>
Mehr braucht es für 3.1.1 nicht. Nutzt eine Seite mehrere Sprachen, ist die Hauptsprache jene, die am meisten vorkommt. Werden mehrere Sprachen gleich stark verwendet, gilt die zuerst auftretende als Hauptsprache.
Abschnitte auszeichnen: lang an einzelnen Teilen
Sobald ein Abschnitt oder eine Phrase in einer anderen Sprache steht,
bekommt das umschließende Element ein eigenes lang
. Ein
deutsches Zitat in einem englischen Text, ein englischer Fachbegriff
in einem deutschen Absatz, eine Sprachauswahl-Liste: All das wird am
jeweiligen Element markiert (Technik H58).
beispiel.html · Sprache einzelner Teile auszeichnen (Technik H58)
<!-- Deutsches Zitat in einem ansonsten englischen Text --> <p>He called it a <span lang ="de">Treppenwitz</span>.</p> <!-- Sprachauswahl: jeder Link in seiner eigenen Sprache --> <ul> <li><a href="..." lang ="de">Deutsch</a></li> <li><a href="..." lang ="fr">Français</a></li> <li><a href="..." lang ="zh-Hant">繁體中文</a></li> </ul>
Wann keine Auszeichnung nötig ist
Nicht jedes fremdsprachige Wort braucht ein lang
. Das
Kriterium 3.1.2 nimmt vier Fälle ausdrücklich aus. Vor allem zählen
Wörter dazu, die in die umgebende Sprache eingewandert
sind: Steht ein Wort im Wörterbuch der umgebenden Sprache und wird
dort korrekt ausgesprochen, ist keine Markierung nötig.
| Ausnahme | Beispiel |
|---|---|
| Eigennamen | Personen-, Orts- oder Markennamen werden nicht ausgezeichnet. |
| Fachbegriffe | Etablierte Fachausdrücke, etwa Homo sapiens oder Hertz. |
| Wörter unbestimmter Sprache | Ausdrücke, die keiner Sprache eindeutig zuzuordnen sind. |
| Eingebürgerte Wörter | Im Englischen braucht rendezvous keine Markierung, im Französischen podcast nicht: beide sind Teil der umgebenden Sprache geworden. |
Die Faustregel des W3C: Wenn ein einzelnes Wort in der umgebenden Sprache gleich ausgesprochen würde (abgesehen von Akzent oder Betonung), gilt es als Teil dieser Sprache und braucht keine eigene Auszeichnung. Im Zweifel lieber großzügig zur umgebenden Sprache zählen, statt jedes Lehnwort zu markieren.
Sprach-Codes richtig wählen (BCP 47)
Der Wert von lang
ist kein frei erfundener Name, sondern
ein standardisiertes Sprach-Tag nach BCP 47. In den
allermeisten Fällen genügt der zweibuchstabige Sprach-Code. Eine
Region hängst du nur an, wenn die Unterscheidung wirklich zählt.
| Tag | Bedeutung |
|---|---|
de
|
Deutsch, ohne Region. Für die meisten deutschsprachigen Seiten die richtige Wahl. |
de-AT
|
Deutsch (Österreich). Nur nutzen, wenn die regionale Variante eine Rolle spielt. |
en
|
Englisch, ohne Region. |
fr
|
Französisch. |
zh-Hant
|
Chinesisch in traditioneller Schrift. Hier kennzeichnet der Zusatz die Schrift, nicht die Region. |
Typische Stolperfallen
Die Sprachauszeichnung ist technisch simpel, scheitert aber oft an denselben Kleinigkeiten. Diese Übersicht fasst die häufigsten zusammen:
| Stolperfalle | Besser so |
|---|---|
| Kein lang am html-Element | Immer ein lang
am <html>
setzen, das ist die Pflicht aus 3.1.1. |
| Ungültiger Code | lang="en"
statt lang="english"
: nur gültige BCP-47-Tags werden ausgewertet. |
| Falsche Sprache geerbt | Steht am <html>
noch ein altes lang
aus einer Vorlage, erbt die ganze Seite die falsche Sprache. Vorlagen prüfen. |
| Jedes Lehnwort markiert | Eingebürgerte Wörter ( Update , Team ) nicht auszeichnen, das gilt als Teil der umgebenden Sprache. |
| Inhalt und Attribut verwechselt | Ein title
oder aria-label
kann eine andere Sprache haben als der sichtbare Text. Dann das lang
passend setzen. |
Zwei Mythen zur Sprachauszeichnung
„Wenn die Schriftzeichen stimmen, weiß der Browser doch die Sprache."
Nein. Aus den Zeichen allein lässt sich die Sprache nicht sicher
ableiten, Deutsch und Englisch nutzen dasselbe Alphabet. Ohne lang
rät die Software, und Vorlese-Programme raten oft
falsch. Die Sprache muss explizit im Code
stehen,
damit sie verlässlich bestimmt werden kann.
„Ich muss jedes englische Wort einzeln auszeichnen."
So nicht. Eigennamen, Fachbegriffe und vor allem eingebürgerte Wörter sind ausdrücklich ausgenommen. Auszeichnen musst du echte Sprachwechsel, also ganze fremdsprachige Phrasen, Zitate oder Abschnitte. Wer jedes Lehnwort markiert, macht den Code unleserlich, ohne die Vorlese-Qualität zu verbessern.
Checkliste für die Sprachauszeichnung
Die Sprachauszeichnung ist eine der günstigsten Maßnahmen der
Barrierefreiheit: ein Attribut am <html>
, ein paar
gezielte lang
an fremdsprachigen Stellen, und schon
klingt deine Seite für Menschen, die sie sich vorlesen lassen, so
verständlich, wie sie aussieht.
Klingt deine Seite so gut, wie sie aussieht?
Wir prüfen deine Webseite mit echten Screenreadern, finden fehlende oder falsche Sprachauszeichnungen und zeigen deinem Team, wie aus sauberem HTML eine Seite wird, die sich für alle richtig anhört.
Beratung oder Schulung anfragen
