Accesskey n springt zur Seitennavigation. Springe zum Inhalt.

Dieses Dokument ist eine Übersetzung. Im Falle von Abweichungen oder Fehlern sollte das aktuelle englische Original als maßgeblich angenommen werden. Das W3C besitzt das Copyright am Original, wie unten beschrieben.

Übersetzer: Gunnar Bittersmann

s_gotoW3cHome Internationalisierung
 

Unicode-Steuerzeichen vs. Markup für bidirektionalen Text

Zielgruppe: XHTML/HTML-Autoren (die Web-Editoren/Texteditoren oder Scripte benutzen), Script-Entwickler (PHP, JSP usw.), Schema-Entwickler (DTDs, XML Schema, RelaxNG usw.), Webprojekt-Manager und alle, die sich fragen, ob sie Unicode-Steuerzeichen im Markup einsetzen sollten, um den richtigen Textfluss für von rechts nach links geschriebene Schriften zu erreichen

Frage

Sollte man Unicode-Steuerzeichen oder Markup verwenden, um bidirektionalen Text (Bidi) in (X)HTML- oder XML-Inhalten korrekt darzustellen?

Hintergrund

Der Unicode-Bidi-Algorithmus legt die Schreibrichtung des Textes anhand der Schreibrichtungs­eigenschaften der einzelnen Zeichen fest. Mitunter muss man etwas nachhelfen, damit der Algorithmus den Fluss der Textobjekte erkennen kann, wenn arabische oder hebräische Zeichen und Zeichen anderer Schriften gemischt vorkommen. In anderen Fällen möchte man das Ergebnis des Unicode-Bidi-Algorithmus insgesamt überschreiben. Zum Beispiel:

Wir zeigen Beispiele, die Text in von rechts nach links laufenden Schriften sowie unmittelbar folgende, visuell entsprechend hervor­gehobene Nur-ASCII-Inhalte beinhalten, mit deutschem Text in Klein­buchstaben sowie Hebräisch und Arabisch in Groß­buchstaben. Die Reihen­folge und Position der Zeichen entspricht denen des Originals.

Dieser Beispielsatz zeigt das Ergebnis, wenn man sich einzig auf den bidirektionalen Algorithmus verlässt. Dieses Ergebnis ist jedoch nicht korrekt. Da das ganze Zitat auf Hebräisch ist, sollten der Text „W3C“ und das Komma links vom hebräischen Text (also dahinter) erscheinen.

Auf Hebräisch lautet der Titel »פעילות הבינאום, W3C«.

ASCII-Version:
auf hebräisch lautet der titel »YTIVITCA NOITAZILANOITANRETNI, w3c«.

Das richtig dargestellte Ergebnis ist jedoch:

Auf Hebräisch lautet der Titel »פעילות הבינאום, W3C«.

ASCII-Version:
auf hebräisch lautet der titel »w3c ,YTIVITCA NOITAZILANOITANRETNI«.

Unicode bietet spezielle unsichtbare Steuerzeichen, um bei reinem Text das Ergebnis des Unicode-Bidi-Algorithmus zu übernehmen oder zu überschreiben. Dazu zählen:

Diese Zeichen werden paarweise verwendet. Zuerst wird eins der ersten vier oben genannten Zeichen verwendet, um den Anfang eines Textbereichs zu markieren. Der Bereich wird in jedem Fall von dem letzten Zeichen (PDF) geschlossen. Das folgende Beispiel zeigt, wie diese Steuerzeichen in reinem Text verwendet werden können:

Nachfolgend wird die Reihenfolge der Zeichen im Speicher gezeigt, und es werden zwei Steuerzeichen eingefügt, die hochgestellt dargestellt werden: U+202B RIGHT-TO-LEFT EMBEDDING (RLE) und U+202C POP DIRECTIONAL FORMATTING (PDF).

Auf Hebräisch lautet der Titel »RLEפעילות הבינאום, W3CPDF«.

ASCII-Version:
auf hebräisch lautet der titel »RLEINTERNATIONALIZATION ACTIVITY, w3cPDF«.

Dadurch wird die richtige Darstellung erzeugt (siehe oben).

Der HTML-4-Standard führte Markup ein, um denselben Effekt wie diese Unicode-Steuerzeichen zu erreichen.

In (X)HTML würde das vorige Beispiel so notiert werden:

Auf Hebräisch lautet der Titel »<span dir="rtl">
פעילות הבינאום, W3C</span>«.

ASCII-Version:
auf hebräisch lautet der titel »<span dir="rtl">
W3C ,YTIVITCA NOITAZILANOITANRETNI</span>«.

Dieses Quelltext-Beispiel setzt einen ausgereiften Editor voraus, der den Quelltext in der jeweils richtigen Schreib­richtung anzeigt. Das ist wichtig zum Verständnis der beschriebenen Konzepte. Viele Editoren sind jedoch noch nicht so ausgereift.

Das W3C empfiehlt, dass XML-basierte Auszeichnungssprachen ebenfalls entsprechendes Markup für den Umgang mit Schreibrichtungen vorsehen. (Siehe das in Internationalization Tag Set vorgeschlagene Markup.)

Die Frage ist, ob man Markup oder Unicode-Steuerzeichen verwenden sollte.

Antwort

Verwenden Sie in (X)HTML und XML nicht die Unicode-Bidi-Steuerzeichen-Paare, wenn es äquivalentes Markup dafür gibt.

Begründung

Wenn Steuerzeichen im Fließtext verwendet werden, besteht die Gefahr überlappender oder nicht abgeschlossener Bereiche – besonders, weil die Steuerzeichen selbst nicht sichtbar sind. Wenn Attribute verwendet werden, besteht bei wohlgeformtem Markup diese Gefahr nicht.

Es ist auch weitaus einfacher, Vererbung und Effekte von Absatztrennern mit Markup in den Griff zu bekommen. Mit Unicode-Steuerzeichen hätte man viel mehr Arbeit, um dasselbe Ergebnis zu erreichen. Es ist auch schwierig, Effekte wie umgedrehte Reihenfolge von Tabellenspalten und rechtsbündigen Text nur mit Unicode-Steuerzeichen zu erzielen.

Die HTML-4-Spezifikation warnt ausdrücklich davor, Steuerzeichen und Markup gemischt zu verwenden, denn das erhöht die Gefahr unkorrekter Verschachtelung. Sie empfiehlt den Einsatz von Markup, denn das „bietet eine bessere Gewähr für die strukturelle Integrität des Dokuments und mindert manche Probleme, wenn bidirektionaler Text mit einem einfachen Text­editor bearbeitet wird“. Sie verbietet aber nicht den Einsatz von Unicode-Bidi-Steuerzeichen.

Das gemeinschaftlich als Unicode Technical Report #20 und als W3C Note herausgegebene Dokument Unicode in XML and other Markup Languages geht noch weiter. Es empfiehlt explizit, ausschließlich Markup einzusetzen. Es empfiehlt auch, dass Unicode-Bidi-Steuerzeichen ignoriert werden sollten, wenn sie in einem Browser­kontext angetroffen werden, und durch entsprechendes Markup ersetzt werden sollten, wenn sie in einem Bearbeitungs­kontext angetroffen werden.

Entsprechungen

Die folgende Tabelle (übernommen aus Unicode in XML and other Markup Languages) gibt das entsprechende Markup zur Ersetzung der Steuerzeichen an:

Steuer­zeichen Zeichen­code Äquivalentes Markup Kommentar
LRE U+202A dir="ltr" Attribut für Block- oder Inline-Elemente
RLE U+202B dir="rtl" Attribut für Block- oder Inline-Elemente
RLO U+202E <bdo dir="rtl">  
LRO U+202D <bdo dir="rtl">  
PDF U+202C kein Markup um RLE oder LRE abzuschließen (der Abschluss erfolgt durch das End-Tag des Elements mit dem dir-Attribut)
</bdo> um RLO oder LRO abzuschließen

Problemfälle

Es kann Stellen in einer HTML- oder XML-Datei geben, wo kein Markup eingesetzt werden kann und die Unicode-Steuerzeichen deshalb angebracht sind.

Es ist nicht möglich, Bidi-Markup auf Attributwerte anzuwenden, folglich müssen bei jeglichem Text in Attributen Unicode-Steuerzeichen zur Steuerung der Schreibrichtung eingesetzt werden. Auch aus diesem Grund empfiehlt das W3C, dass XML-Schema-Entwickler vermeiden, Situationen zu schaffen, in denen Inhaltsautoren Text in natürlicher Sprache in Attributwerten verwenden. Es kann allerdings historisch bedingt Markup geben, wo dies unvermeidbar ist, wie bspw. alt-Attribute in HTML.

Andere Fälle, wo Steuerzeichen der einzige Ausweg sein können, sind Elemente, die nur Text als Inhalt haben dürfen oder die Bidi-Attribute nicht unterstützen. Ein Beispiel ist das title-Element in HTML. Auch hier gilt: Solche Situationen sollten in neuen XML-Formaten vermieden werden. (Die Einschränkung in der Anwendbarkeit betrifft nicht nur bidirektionalen Text, sondern auch Sprachinformation und andere Meta-Information.)

Die Steuerzeichen RLM und LRM

Zwei andere unsichtbare Unicode-Steuerzeichen zur Steuerung der Schreibrichtung, die aber keine Textbereiche einschließen, haben gewöhnlich kein entsprechendes Markup. Diese Zeichen sollten als solche oder als Escapes verwendet werden. Sie bereiten weniger Probleme, denn sie stehen einzeln, nicht paarweise als Begrenzer von Textbereichen wie die anderen oben genannten Steuerzeichen.

Übrigens

Das Dokument Unicode in XML and other Markup Languages gibt Ratschläge zur Verwendung einer Reihe von Unicode-Zeichen vs. Markup, nicht nur dieser Bidi-Steuerzeichen.

Bei XML muss man eigenes Bidi-Markup in der DTD oder dem Schema erstellen und die Schreibrichtung mit CSS festlegen.

Sagen Sie uns, was Sie denken (auf Englisch).

Abonnieren Sie unseren RSS-Feed.

Neue Ressourcen

News auf der Startseite

Twitter (News auf der Startseite)

‎@webi18n

Literaturhinweise

Autor: Richard Ishida, W3C. Übersetzer: Gunnar Bittersmann.

Valides XHTML 1.0!
Valides CSS!
Kodiert in UTF-8!

Übersetzung der englischen Version vom 2007-11-22. Letzte Änderung der übersetzten Version am 2014-01-21 09:22 GMT

Suchen Sie nach qa-bidi-controls im i18n-Blog, um alle Dokumentänderungen nachzuvollziehen.