TYPO3 4.0: XHTML

XHTML ist im Wesentlichen eine Umformulierung von HTML als XML-Dialekt. So gelten für XHTML die gleichen, strikteren syntaktischen Regeln wie für XML. XHTML 1.0 Transitional ist im Jahr 2000 als direkter Nachfolger von HTML 4.01 entstanden: Die Semantik wurde beibehalten, die Syntax wurde auf XML umgestellt. Durch eine Modularisierung der Auszeichnungssprache ist es dem W3C möglich, XHTML zu erweitern, ohne dass eine komplett neue Spezifikation notwendig ist: Alte Anwendungen arbeiten ohne die Erweiterungen weiter. Durch so genannte Namespaces (Namensräume) ist es möglich, XHTML in anderen XML-Dokumenten nahtlos zu integrieren. Somit ist die Speicherung der Webauszeichnung in XML-Datenbanken ohne Umwandlungen möglich. Umgekehrt ist es auch möglich, andere XML-Dialekte (z.B. SVG für vektorbasierte Grafiken) innerhalb von XHTML-Dokumenten direkt einzubinden. Die Verarbeitung von XHTML-konformen Dokumenten ist auch aus Software-Sicht einfacher. So können über vorhandene XML-Schnittstellen auch XHTML-Dokumente verarbeitet werden. Dies ist gerade bei Geräten mit geringer Speicherkapazität (Handys, PDAs etc.) von Vorteil. Außerdem können Browser einfacher, schneller und robuster programmiert werden. Durch XHTML wird die Zugänglichkeit erhöht – somit spielt die XHTML-Konformität auch im Hinblick auf Barrierefreiheit eine wesentliche Rolle. Barrierefreie Umsetzungen setzen in der Regel auf XHTML für die Strukturierung der Informationen und CSS für die gestalterischen Vorgaben (Layout, Positionierung, Farben, Schriften). Mehr Infos zu den Unterschieden zwischen HTML und XHTML liefert die Website von SELFHTML [1].

XHTML mit TYPO3 bisher

TYPO3 entstand zu einer Zeit, in der es XHTML noch nicht gab. Auch die „alte“ Browser-Generation konnte nur bedingt CSS-Anweisungen umsetzen, sodass man auf so genannte „inline“-Formatierungen angewiesen war (z.B. <FONT FACE...>). Das ist nicht nur „unschön“ und nicht XHTML-konform, sondern bläht den Quelltext auch mit viel Redundanz unnötig auf. So wurde die Frontend-Ausgabe durchgängig nach der „HTML 4.01 Transitional“-Spezifikation realisiert. Wegen der ständig wachsenden Nachfrage nach XHTML, der Trennung von Content und Layout, aber auch wegen der Barrierefreiheit wurde in TYPO3 Version 3.6 schließlich die Möglichkeit hinzugefügt, TYPO3 für die strikte XHTML-Ausgabe einzustellen. Es gab die neue Konfigurationsmöglichkeit „config.doctype“. Bei Angabe einer XHTML-Variante wird TYPO3 angewiesen im Page-Header die passende XHTML-Präambel zu erzeugen. Auch weitere Stellen im TYPO3-Kern nutzen diese Information gezielt, um Inhalte entsprechend der Spezifikation auszugeben. Um von TYPO3 eine Ausgabe in XML-Syntax zu bekommen, ist folgende Zeile notwendig:

TYPOSCRIPT
config.xhtml_cleaning = all
Listing 1
Der Albtraum aller Webentwickler: Der W3C-Validator meldet &bdquo;nicht valide&ldquo;.

Der Albtraum aller Webentwickler: Der W3C-Validator meldet „nicht valide“.

Im Einzelnen bewirkt dies folgendes:

  • leere Elemente werden mit „/>“ abgeschlossen (z.B. „<br/>“, „<img.../>“ usw.)
  • die Tag- und Attributnamen werden stets in Kleinbuchstaben ausgegeben
  • alle Attribute werden in Anführungszeichen gesetzt

Diese Transformationen geschehen in sämtlichen Ausgaben, die durch TYPO3 erzeugt werden. Allerdings wird die Wohlgeformtheit der Ausgabe nicht überprüft. Somit ist eine unkonforme Ausgabe trotz „cleanings“ möglich, z.B. bei Attributen oder Verschachtelungen, die in XHTML nicht erlaubt sind. Die „xhtml_cleaning“-Transformationen lassen sich im Übrigen auch für den Rich Text Editor (RTE) einschalten. Somit ist auch die redaktionelle Eingabe über den RTE zumindest syntaktisch XHTML-konform:

TYPOSCRIPT - PAGE SETUP
RTE.default.proc.entryHTMLparser_db.xhtml_cleaning = 1
Listing 2

Mit der Version 3.8 wurden im TYPO3-Kern die meisten Ausgaben bereits für XHTML angepasst. Es ist daher möglich, mit dieser Version zum großen Teil XHTML-konforme Webseiten zu gestalten. Die Erweiterung „qcom_htmlcleaner“ schafft hier zusätzlich Abhilfe, indem von der entsprechenden XHTML-Spezifikation nur noch gültige Tags und Attribute zugelassen werden. Die Ausgabe ist dann weitgehend konform, allerdings kann an einigen Stellen die Funktionalität verloren gehen.

Was die Zukunft bringt: XHTML mit TYPO3 4.0

In TYPO3 4.0 sollen die noch offenen Problemstellen korrigiert werden. Ultimatives Ziel ist die Konformität des TYPO3-Kerns mit XHTML 1.1. Im Einzelnen: Wer XHTML-konforme Seiten entwickelt, sollte mit „css_styled_content“ statt „content (default)“ arbeiten. Eine strikte XHTML-Konformität ist bisher bei der Ausgabe der Inhaltselemente „Text mit Bild“ nicht möglich. Hier werden „align“-Attribute in Tabellen verwendet, was in XHTML 1.1 nicht mehr erlaubt ist. Durch die geplante Integration von „cron_cssstyledimgtext“ in „css_styled_content“ sind Tabellen für das Ausrichten der Bilder in diesen Elementen nicht mehr notwendig: Die Positionierung basiert vollständig auf CSS. Somit werden Elemente nicht nur XHTML-konform, sondern sogar barrierefrei.

Ein weiteres Problem verursacht die Erweiterung „indexed_search“, die als TYPO3-Systemerweiterung mitgeliefert wird. Bisher war eine XHTML-konforme Ausgabe nur durch Ändern des Quelltextes möglich, da dort HTML direkt eingebettet war. Die Ausgabe war daher nicht XHTML-konform. Ab TYPO3 4.0 wird auch dieses Problem behoben sein. Die Erweiterung wird mittels HTML-Templates gesteuert und ein XHTML 1.1 Template ist bereits enthalten.

In der XHTML 1.1 Spezifikation wurde bei den Elementen „a“, „applet“, „form“, „frame“, „iframe“, „img“ und „map“ das Attribut „name“ durch das generische, XML-konforme „id“ ersetzt. Ein Identifier muss dabei mit einem Buchstaben beginnen. Standardmäßig generiert TYPO3 vor jedem Inhaltselement einen Anker „<a name="{pid}">“, wobei „{pid}“ die ID der Seite in Form eines Integer-Werts ist. Also gilt es hier gleich zwei Probleme zu lösen. In der nächsten TYPO3-Version gibt es eine Konfigurationsmöglichkeit, in der festgelegt werden kann, ob dem Anker ein Buchstabenpräfix vorangestellt werden soll. Auch wird der Anker dann nur noch mit dem „id“-Attribut generiert.

Ähnliche Probleme hatte man bisher bei Formularen. Hier wurde das Attribut „name“ im FORM-Element verwendet. Auch die Konfiguration mittels „accessibility=1“ war noch nicht ausgereift. Dies wird in der neuen Version besser umgesetzt, sodass auch Formulare komplett barrierefrei gestaltet werden können: Dazu gehören Fieldsets für Radio-Buttons mit Legend-Elementen und korrekt ausgezeichnete Label-Elemente für sämtliche Eingabefelder - natürlich alles XHTML-konform.

Ausblick

Selbst wenn TYPO3 4.0 einen großen Schritt in Richtung vollständiger XHTML-Konformität erzielen wird und auch wesentliche Möglichkeiten der Barrierefreiheit berücksichtigt werden, steht noch ein langer Weg bevor. Viele TypoScript-Konfigurationen und zahlreiche Erweiterungen müssen noch von der Konformität „überzeugt“ werden. Selbst heute werben viele Websites mit angeblicher Barrierefreiheit und XHTML-Konformität, was zum großen Teil nicht der Realität entspricht. Aufklärung ist in jedem Fall notwendig. TYPO3 und die Content Rendering Gemeinschaft können dabei eine wesentliche Rolle spielen.

- Anzeige-

Dieser Artikel stammt aus:

 

Weitere Artikel dieser Ausgabe

AJAX

Revolution oder alter Wein in neuen Schläuchen?

AJAX (Asynchronous Javascript and XML) macht seit einigen Monaten als neuer Heilsbringer für... »

Barrieren im Internet

Erkennen, abbauen, vermeiden

Zehn bis zwanzig Prozent der Weltbevölkerung leiden unter einer Behinderung. Nicht alle... »

Darf es etwas mehr sein?

Multiserver-Szenarien mit TYPO3

TYPO3 hat unterschiedliche Eigenschaften, die seinen großen Erfolg begünstigen: Funktionsumfang... »

Dynamische Bildverarbeitung mit TYPO3

Eine der größten Stärken von TYPO3 sind die zahlreichen Möglichkeiten,... »

Formulare nach Wunsch

Dynamische FlexForms für das TYPO3 Backend mit der Extension DynaFlex

FlexForms sind seit TYPO3 3.6 eine neue Art Eingabemasken im Backend zu definieren. Sie erlauben... »

Innovatives Handwerk

Meister wissen wie’s geht: Komfortabel und effizient mit TYPO3

Optisch und technisch neu präsentiert sich der Internetauftritt des Zentralverbands des... »

Lagebericht

Die TYPO3 Association zieht Bilanz

Mit Ausnahme des Mega-Events TYCON3, der weltweit ersten TYPO3-Konferenz, schien es in den letzten... »

MySQL 5

Endlich Enterprise: Eine Datenbank wird erwachsen

Der Datenbankserver MySQL ist jetzt in der Version 5 erschienen. MySQL selbst bezeichnet diese... »

Object-TypoScript-Workshop

Dan Frost in Darmstadt

Am 4. und 5. November 2005 veranstalteten die User Groups Darmstadt und Frankfurt in den Räumen... »

Offen für alle Gruppen

Teamarbeit mit dem Open-Xchange Server

Manchmal entsteht durch geschickte Kombination mehrerer Komponenten ein neues Produkt, das mehr... »