Voreinstellen der menschlichen Sprache
veröffentlicht in 2016zuletzt bearbeitet in
Damit Texte von Software wie einer Sprachausgabe korrekt aufbereitet werden können, benötigt eine Webseite eine Angabe zur Sprache des Inhalts. Nur wenn die menschliche Sprache der Inhalte angegeben wurde, arbeiten Browser, Screenreader und weitere Anwendungen auch zuverlässig, wenn es um linguistische Aspekte im Inhalt geht. Die durch Software bestimmte Sprache erlaubt es unter anderem, dass Screenreader die richtige Aussprache für eine Sprachausgabe auswählen oder Browser eine sinnvolle Silbentrennung umsetzen.
Die Angabe der menschlichen Sprache für eine Webseite ist trivial. In den meisten Fällen genügt die Angabe eines
lang
-Attributs mit der Angabe der Sprache für das html
-Element. Mit dem folgenden Code wird die Sprache einer Webseite als deutsch festgelegt:
<!doctype html>
<html lang="de">
... Rest der Webseite ...
</html>
Die Sprachangabe wird dadurch auf alle weiteren Inhalte der Seite vererbt.
Alternative Techniken
Es ist möglich, die Sprache einer Seite im HTTP-Header einer Webseite vorzugeben. Allerdings sind im Gegensatz zum lang
-Attribut die Sprachangaben im HTTP-Header nicht inhaltsbezogen, sondern sie zielen auf das Publikum wie zum Beispiel Suchfunktionen ab. Das bedeutet auch, dass solche Sprachangaben mehrere Sprachen umfassen können. Es gibt dafür zwei Herangehensweisen:
- Die Sprachangabe über ein HTTP-Header kann mit dem
meta
-Element vorgegeben werden. Einige Browser ziehen diese Information heran, um die Sprache der Inhalte zu bestimmen, allerdings ist diese Vorgehensweisenicht HTML-konform, sondern nur als Fallback-Lösung bei Fehlen eines
lang
-Attributs vorgesehen. Wenn diese Technik eingesetzt wird, dann darf immeta
-Element nur eine Sprache angegeben werden. - Sprachangaben können auch
mit serverseitigen Techniken als HTTP-Header gesendet werden. Der Content-Language-Header gibt die menschliche Sprache(n) an, die für das Zielpublikum bestimmt ist beziehungsweise sind. Solche serverseitigen Techniken funktionieren nur dann, wenn die Webseiten von einem Server abgerufen werden (und nicht etwa bei auf der Festplatte gespeicherten Seiten).
Weil die erste Lösung nicht in jedem Browser und die zweite Lösung nicht in jeder Umgebung funktioniert, sollte bei der Angabe der menschlichen Sprache einer Webseite auf das lang
-Attribut für das html
-Element gesetzt werden.
Änderungen zur voreingestellten Sprache
Wenn mehrere Sprachen auf einer Seite vorkommen, dann sollte die Sprache, die häufiger vorkommt, mit dem lang
-Attribut für das html
-Element als voreingestellte menschliche Sprache festgelegt werden. Die Teile der Inhalte, die anderssprachig sind, müssen entsprechend gekennzeichnet werden:
<p>Und es wurde still im Saal. Dann sagte der Chief Executive Officer: <q lang="en">I want to make money, not music!</q> Damit war klar, dass der Musiksparte des Unternehmens keine Zukunft mehr eingeräumt wird.</p>
Transkript:
Screenreader auf deutsch: Und es wurde still im Saal. Dann sagte der Chief Executive Officer:
Screenreader auf englisch: left quote I want to make money, not music! right quote
Screenreader auf deutsch: Damit war klar, dass der Musiksparte des Unternehmens keine Zukunft mehr eingeräumt wird.
Dieses Beispiel entspricht der Vorgabe aus Erfolgskriterium 3.1.2 der Web Content Accessibility Guidelines (WCAG) 2.2. Danach muss die menschliche Sprache anderssprachiger Abschnitte und Phrasen angegeben werden.
Während Abschnitte, Absätze, Sätze oder Phrasen in einer anderen Sprache gekennzeichnet werden müssen, gilt das nicht für einzelne Begriffe oder Wörter. Das betrifft folgende Kategorien an Begriffen und Wörtern:
- Eigennamen,
- technische Fachbegriffe,
- Wörter einer "unklaren Sprache" (zum Beispiel Kunstworte) und
- Wörter, die Teil des Jargons des Kontextes sind.
Die Notwendigkeit, einzelne Begriffe auszuzeichnen, wird durch den letzten Punkt praktisch eliminiert. Jargon umfasst alle Wörter, die auf eine bestimmte Art und Weise von Personen in einem bestimmten Bereich verwendet werden, wozu Fachbegriffe oder Anglizismen gehören. Nur wenn allgemeine Begriffe in einem bestimmten Arbeitsfeld eine andere Bedeutung haben als im Alltag und diese außerdem in einer anderen Sprache als die Sprache der Webseite genutzt werden, dann müssen die einzelnen Begriffe als fremdsprachig gekennzeichnet werden.
Im obigen Beispiel kommt der Begriff "Chief Executive Officer" (deutsch: Vorstandsvorsitzender) vor. Auf duden.de kann dieser Begriff nachgeschlagen werden. Der Begriff gehört zum Wortschatz im deutschsprachigen Raum und muss nicht als anderssprachig ausgezeichnet werden.
Und auch wenn der Begriff nicht zum deutschsprachigen Wortschatz gehörte: "Chief Executive Officer" oder die abgekürzte Form "CEO" gehören zum Jargon der Wirtschaft.
Texte in einer anderen menschlichen Sprache, die ein Satz bilden oder länger sind, müssen mit dem lang
-Attribut ausgezeichnet werden. Kürzere Texte, zum Beispiel Redewendungen oder Titel eines Buchs, benötigen ebenfalls eine entsprechende Auszeichnung. Hingegen sind Ausdrücke und Begriffe in vielen Fällen bereits Teil der Sprache geworden. Einzelne Wörter und Ausdrücke sollten nur dann als eine andere menschliche Sprache ausgezeichnet werden, wenn sie eindeutig als fremdsprachiger Ausdruck verwendet werden (zum Beispiel Très bien!).
Grenzen für den Sprachwechsel
Die korrekte Auszeichnung von menschlichen Sprachen garantiert nicht, dass die Texte in der vorgesehenen Sprache von Sprachausgaben ausgesprochen werden können. Es gibt dafür verschiedene Gründe:
- Es muss eine korrespondierende Stimme auf dem Rechner der Nutzenden installiert sein. Für das Windows-Betriebssystem stehen beispielsweise
einige Dutzend Stimmen bereit.
- Es kann von Einstellungen in einer Sprachausgabe-Software abhängen, ob eine bestimmte Stimme genutzt werden kann. Nutzende könnten Sprachausgaben einsetzen, die eigene Stimmen verwenden.
- Stimmen gibt es nicht für jede Sprache. Für gängige Schnittstellen ist eine nordrisische oder sorbische Stimme beispielsweise nicht verfügbar.
Im Allgemeinen ist das lang
-Attribut mit der Angabe eines Sprachcodes technisch robust. Es gibt einige weitere Aspekte, die im Einzelfall überprüft werden müssen:
- Für HTML gibt das
lang
-Attribut die menschliche Sprache an. Auf XHTML-Webseiten muss daslang
-Attribut ebenfalls angegeben werden, auch wenn es einxml:lang
-Attribut mit dem gleichen Wert gibt. Es gibt keine bekannten Sprachausgaben, die dasxml:lang
-Attribut für einen Sprachwechsel unterstützen. Vielmehr wird die Silbentrennung dadurch beeinflusst. - Neben Sprachcodes wie de für "deutsch" gibt es Subcodes für regionale Sprachvarianten wie de-de (Deutschland) und de-ch (Schweiz). In der Vergangenheit gab es
Berichte über Kompatibilitätsprobleme in Screenreadern, wenn Subcodes eingesetzt wurden.
- Wenn ein Text in verschiedenen Sprachen verfasst ist, dann müssen gegebenenfalls zusätzliche Elemente wie ein
span
-Element im Text eingefügt werden, um einlang
-Attribut zuweisen zu können. Das ist nicht immer möglich, zum Beispiel imtitle
-Element oder imtitle
-Attribut, wo keine weiteren HTML-Elemente zulässig sind. Für dastitle
-Attribut gibt esalternative Ansätze, aber für das
title
-Element gibt es keine befriedigende Lösung für die Auszeichnung von mehr als eine Sprache.
Die folgenden Begriffe dieser Seite werden auch im Glossar definiert: