Open Source im professionellen Einsatz

© Mikhail Kokhanchikov, 123RF

HTML-Dateien validieren und bereinigen

Der Dreck soll weg

Die vier Testkandidaten helfen Webentwicklern dabei, HTML-Dokumente auf Standardkonformität hin zu prüfen. Die Saubermacher können aber nicht nur den Code validieren, sondern auch erlaubte, aber unerwünschte Elemente aufspüren und entfernen.

Früher war das Leben viel einfacher – Kompendien wie Self-HTML [1] deckten auf einer überschaubaren Seitenzahl so ziemlich alles ab, was das Webprogrammiererherz begehrte. Heute ist das Netz interaktiver und vielseitiger, aber auch komplizierter und gefährlicher. Das "eine HTML" gibt es schon lange nicht mehr, stattdessen existiert ein Vielzahl von Versionen [2]. HTML 4.01, XHTML und das aktuelle HTML 5 sind nur einige davon; hinzu kommen Varianten wie Strict oder Transitional, garniert durch CSS-Dateien in mehreren Spielarten.

Kurz vor dem 20. Geburtstag von HTML ist das Durcheinander dank neuer Versionen, Varianten und Elemente perfekt. Valide und sichere Dokumente zu erzeugen ist inzwischen alles andere als einfach. Contentmanagement-Systeme und Wysiwyg-HTML-Editoren helfen, dennoch bringt der prüfende Blick auf den Code meist Überflüssiges und echte Fehler zum Vorschein. Betreiber von Blogs und Foren stehen vor einem weiteren Problem: Oft sollen bestimmte Teile gar nicht erst im Quelltext auftauchen, beispielsweise um Bilder und interaktive Inhalte zu filtern.

Vier Tools helfen dabei, den eigenen Code zu prüfen und zu bereinigen. HTML Tidy [3] und der Total Validator [4] treten im Test als Vertreter der klassischen Validierungstools an. Der HTML Purifier [5] und das darauf aufbauende HTM Lawed [6] sind PHP-basierte Bibliotheken, die HTML-Code besonders für Foren und Blogs bereinigen.

HTML Tidy

Den Auftakt macht eines der bekanntesten Tools, das in vielen Kreisen neben dem offiziellen W3C-Validator [7] als Referenz gilt. Das unter der MIT-Lizenz veröffentlichte und mittlerweile als Sourceforge-Projekt entwickelte Programm ist als Stand-alone-Variante sowie als Bibliothek im Angebot. Letztere steht Software-Entwicklern bei, die ihre eigenen Anwendungen um eine HTML-Validierungsfunktion erweitern oder dem Original eine grafische Oberfläche spendieren möchten. HTML Tidy selbst arbeitet auf der Kommandozeile und bietet dazu sehr strukturierte und übersichtliche Aufrufoptionen.

Der Klassiker unter den Validatoren unterstützt alle gängigen HTML-Varianten bis einschließlich Version 4.01, XHTML und mit Einschränkungen auch XML. Das noch recht neue HTML 5 findet keine Beachtung (Abbildung 1), was nicht weiter verwundert, stammt doch die letzte Relase vom März 2009.

Abbildung 1: Das noch recht neue Format HTML 5 versteht HTML Tidy in der derzeitigen Programmversion noch nicht. Die neuen Tags erkennt es nicht und wirft entsprechend mit Fehlermeldungen um sich.

Abbildung 1: Das noch recht neue Format HTML 5 versteht HTML Tidy in der derzeitigen Programmversion noch nicht. Die neuen Tags erkennt es nicht und wirft entsprechend mit Fehlermeldungen um sich.

HTML Tidy ist Bestandteil vieler Distributionen; Anwender installieren das entsprechende Paket aus den üblichen Repositories. Es punktet mit zahlreichen Funktionen, korrigiert mangelhafte Elemente nach Möglichkeit beziehungsweise ergänzt Fehlendes und gibt kurze Erläuterungen zu den kritisierten Codestellen. Eine farbliche Hervorhebung des Quelltextes findet auf der Shell nicht statt, aber die Ausgabe von Zeile und Spalte hilft bei der Orientierung.

Das Tool ist grundsätzlich auf lokale Dateien angewiesen und akzeptiert keine URLs als Quellen beim Aufruf. Es bietet viele Optionen, um den Quelltext zu optimieren und zu formatieren (»pretty print« , Abbildung 2). So rückt der Parameter »-i« automatisch ein, »-w« fügt Zeilenumbrüche hinzu und »-u« setzt alle Tags konsequent in Großbuchstaben. Auch beliebte Flüchtigkeitsfehler, etwa ungültige Quotezeichen (»-b« ), Backslashes (»--fix-backslash yes« ) und Sonderzeichen in URLs (»--fix-uri yes« ), korrigiert das Tool bis zu einem gewissen Grad.

Abbildung 2: HTML Tidy unterstützt Webentwickler bei der Formatierung des Quellcodes. Im Gegensatz zur Originaldatei (links) präsentiert sich die bearbeitete Datei (rechts) deutlich besser lesbar.

Darüber hinaus konvertiert es Dokumente in gängige Zeichensätze (zum Beispiel mit »-latin0« ) und entfernt proprietäre Elemente (»--drop-proprietary-attributes« ) sowie Kommentare (»--hide-comments yes« ). Auf Wunsch überführt HTML Tidy bestimmte HTML-Elemente in CSS-Tags (»-c« ).

Augen auf!

HTML Tidy untersucht mit »-access« die Barrierefreiheit der Dateien und fordert etwa »ALT« -Tags für Bilder ein. Grafiken dürfen zudem nicht nur aus Platzhaltern, Namen oder Größenangabe bestehen. Ähnliches gilt für eingebundene Applets oder Audiodateien. Das Tool beschwert sich auch über einen unzureichenden Farbkontrast zwischen Vorder- und Hintergrund und fehlende Noscript-Varianten in den Script-Sektionen. HTML Tidy hält Entwickler dazu an, auf indirekte Formatierung zu setzen (zum Beispiel Header-Auszeichnung statt großer Schriftart) und die Sprache des Dokuments zu kennzeichnen. Alle Kriterien samt Erklärungen und Testdateien finden Interessierte unter [8].

Fehlermeldungen schreibt das Tool mit »-f« und korrigierte Dokumente mit »-o« in separate Dateien. Alternativ landen sie direkt auf der Konsole. Einziger Wermutstropfen ist, dass die Anwender HTML Tidy nur eingeschränkt um eigene Tags erweitern dürfen, und dies auch nur für den Body der Dokumente. Den Header der Dateien fasst das Tool nicht an.

HTML-Dateien konvertiert es mit dem Parameter »-asxhtml« nach XHTML; in die umgekehrte Richtung führt die Option »-ashtml« . Anwender, die nicht jedes Mal einen Rattenschwanz von Aufrufoptionen übergeben möchten, speichern ihre Einstellungen in einer frei wählbaren Konfigurationsdatei. In dieser können etwa Einträge wie die folgenden stehen:

fix-backslash: yes
fix-uri: yes
hide-comments: yes
accessibility-check: 0
show-warnings: yes

Die Webseite [9] listet alle Möglichkeiten mit Beispielen und den Standardwerten auf. Die Einrichtungsdatei übergeben Anwender anschließend über »-config« .

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook