Coding-Schatzkästlein
Kleine Tips & Scripts zum Webdesign
Start > Know-how

Know-how: Anmerkungen für zukünftige HTML-Experten
(oder: "Was ist valides HTML?" und der Sinn des HTML-Validators)

In der Schulzeit mit dem Hobby "Computer" auf einem TI-99/4A angefangen ("Wer sagt denn, daß man mit Zeichensatz-Grafik nicht tolle Grafikdemos programmieren kann?"), über den Atari 600XL ("Habe ich eigentlich schon mal die Geschichte erzählt, wie ich bei meinem 300-Baud/Bits-per-Second-Akustikkoppler immer in die Muschel pfeifen mußte, um einen Connect zu bekommen?"), den Atari 130XE ("Wow - 128 KByte via Bankswitching!"), den Atari 520ST+ ("Es läuft sogar MacOS, MS-DOS und MS-Windows 3.11!"), den Atari TT ("Nein, dieses tolle DTP-Programm gibt es nicht für Windows-PCs - schon gar nicht in der Geschwindigkeit."), bis zum Windows-PC ("Die Atari-Programme laufen mittlerweile ein vielfaches schneller, als jemals auf einer Atari-Hardware.") - mit privaten und beruflichen Abstechern zum Amiga ("Der aufwendigste Türstopper wo gibt."), IBM-PC ("Mit ein paar Basic- und Batch-Routinen ließe sich die Arbeit deutlich optimieren!"), Unix ("Ist hier noch ein Terminal offen? Ich habe mich gerade ausgesperrt - und übrigens: alle anderen auch!") und FreeBSD ("Ähnlich wie Linux - nur besser."), bin ich HTML-Autor seit der Zeit, als Mosaic noch der Browser war, Netscape Navigator noch eine "Nullnummer" trug und Bill Gates "Internet" noch nicht mal buchstabieren konnte (na ja, es zumindest nicht wollte) ... ;-)
Vielleicht "ungewohnte" HTML-, CSS- und/oder Script-Konstrukte und -Elemente sind (jedenfalls in der Regel) wohl durchdacht und reflektieren diese jahrelange Erfahrung mit Generationen von Computern, Browsern und Web-Standards. =;-)

Die Seiten wurden entwickelt fürs Surfen mit Browsern, nicht für HTML-"Validatoren" & Co.! Letztere melden ggf. "Fehler", da der verwendete HTML-Code zwar syntaktisch korrekt ist(!), aber nicht einer bestimmten Version entspricht (z.B. HTML-4-strict), sondern eine Mischung aus allen Versionen darstellt (s. z.B. auch das Titelthema der Computerzeitschrift c't 8/2003 "Website nach Maß: HTML-Rechtschreibung - Webdesign ohne Diskriminierung" - leider steht nur der Artikelanfang kostenlos im Netz :-(), inkl. u.a. auch proprietärer Netscape- & Microsoft-HTML-Tags & -Attribute. Aus diesem Grund fehlt auch ein, nachträglich in den Standard aufgenommenes, einleitendes DOCTYPE: eigene DTDs (Document Type Definition: die Datei, die festlegt, was wie in einem Dokument stehen darf und was nicht) werden von den HTML-Browsern, trotz der dortigen Angabe des URLs der DTD, geflissentlich ignoriert - jeder Hersteller gängiger Browser verwendet intern ohnehin mindestens eine herstellerspezifische DTD, die von den "offiziellen" HTML-DTDs des W3Cs (mitunter auch treffend "3WC" genannt), von denen es ja ebenfalls mehrere gibt, mal mehr, mal weniger abweicht!

Anders als bei der "Mutter" der Beschreibungssprachen, SGML (worauf auch HTML beruht), bei der zu jedem Dokument verbindlich durch die real (und zuerst) existierende DTD dessen Gültigkeit (Validität) festgelegt wird, ist es das Grundprinzip von HTML (aber auch von CSS), daß die Tags & Attribute vom Browser zu ignorieren sind, die er nicht kennt - man hätte sonst auch bei SGML bleiben können (Achtung: Bei Scripts ist dies nicht der Fall: sie müssen so programmiert werden, daß neue Scriptelemente von Browsern mit älteren Scriptversionen nicht interpretiert werden). D.h., ein ordnungsgemäßes SGML-Dokument darf wirklich nur die Elemente aufweisen, wie sie in der DTD definiert wurden, um von einer SGML-fähigen Software verarbeitet werden zu können. Bei einem HTML-Dokument reicht es, wenn es keine logischen Fehler enthält (z.B. falsch verschachtelte Tags oder nicht geöffnete/geschlossene Tags - auch und gerade durch Tippfehler). Ist die syntaktische Korrektheit aber gegeben, so spricht man von einem "wohlgeformten" Dokument. Sinn dieser Lockerung war, daß ein HTML-Dokument möglichst einfach zu erstellen sein sollte, um so möglichst hohe Verbreitung zu finden (was ja auch vorzüglich geklappt hat :-)). Ein SGML-Dokument bedarf, insbesondere was Planung und Erstellung der DTD angeht, eines weitaus höheren Aufwands, was auch der Grund ist, warum es vergleichsweise wenig Programme gibt, die HTML-Code prüfen: Die anfangs existenten (teuren) Validatoren kannten gar kein HTML. Sie behandelten HTML-Dokumente eben wie SGML-Dokumente, ohne auf das HTML-Grundprinzip Rücksicht zu nehmen. Hieraus dürfte sich auch der in bestimmten Kreisen verbreitete Irrglaube gebildet haben, ein HTML-Dokument habe unbedingt valide zu sein (wohlgemerkt valide im bei HTML-Autoren heute gebräuchlichen Sinn: Geprüft anhand einer "offiziellen" W3C-DTD - auch ein "nur" wohlgeformtes HTML-Dokument ist valide: nur eben nicht zu einer W3C-DTD, sondern, ganz im Sinn von SGML, zu einer ganz speziellen, hier aber ggf. nur "virtuellen" DTD).

Das HTML-Grundprinzip des wohlgeformten Dokuments kann nun als Glücks- oder als Sündenfall angesehen werden (darüber läßt sich wahrlich streiten - auch in bin da durchaus zwiegespalten, habe ich dereinst doch ebenfalls SGML, auch und gerade zu lieben, gelernt) und auch das die WWW-Standards weiterentwickelnde Gremium W3C versucht ja, zumindest einige "Wildwüchse" wieder einzudämmen (wenn man manchen Protagonisten allerdings so zuhört, möchte man meinen, es würde sich eher um die Schliessung der Büchse der Pandora, bzw. die Rettung des Abendlandes handeln ;->). Aber es ist nun einmal Fakt, und so kann man bedenkenlos spezielle Elemente für z.B. nur einen einzigen Browser mit 1% Verbreitung verwenden, die 99% der restlichen Browserwelt würden sie einfach ignorieren (und umgekehrt). Und da ich fast von Anfang an dabei bin, sind neue Techniken halt einfach kumulativ hinzugekommen - sie haben das "alte Wissen" nicht verdrängt, was letztlich auch eine Rückversicherung dafür ist, daß neue, vollkommen unbekannte (Minimal-)Browser, aber auch alte, vielleicht nicht updatefähige Systeme, ebenfalls diese Seiten nutzen können (egal ob nun in neuen Multimedia-Handys oder alten Web-Set-Top-Boxen bzw. Spielkonsolen für den Fernseher) - trotz aller Tricks & Spielereien. Und natürlich ist auch erwünscht, daß reichlich Surfer diese Seiten finden, weil die Suchmaschinen mit diesem, wiederum von modernen Browsern eher ignorierten "Minimal-" oder "Altcode", gut zufriedenzustellen sind (die Tricks & Spielereien ignorieren sie halt einfach). Der Nachteil, daß die üblichen (SGML-lastigen) Validatoren "meckern", weil sie leider nicht nur die Syntax prüfen (wie es zumindest ein penibler Browser eigentlich tun müßte - aber oft nicht tut, was zur ärgerlichen Folge haben kann, daß ein fehlerhaftes HTML-Dokument in einem Browser wie gewünscht dargestellt wird, in einem anderen Browser jedoch nicht), sondern (eben konträr zum definierten Verhalten eines HTML-Browsers) auch versuchen, die Semantik zu überprüfen (also z.B.: sind die Elemente bekannt und "erwünscht", d.h. gehören sie zur einer bestimmten, ggf. auch einer vielleicht zukünftigen, noch zu schreibenden DTD =:-o). Und wie hieß es doch im genannten c't-Artikel zu den Validatoren: "Das Fehlerprotokoll kann die Suche nach Problemen wesentlich erleichtern, wenn es kompetent interpretiert wird." Dabei ist es nun wahrlich kein Problem, eine valide (also vom Validator für einwandfrei befundene) HTML-Seite zu erstellen, die in einem oder allen Browsern furchtbar bis gar nicht dargestellt wird, wie es umgekehrt eben auch der Fall ist - mag dies auch von so manchen "HTML-Standard-4-strict-Bürokraten" nicht akzeptiert werden, die jedes Konstrukt kritisieren, das nicht mindestens mit 3-fachem Durchschlag vom letzten Monat "offiziell" genehmigt wurde. ;->

Und gerade weil die Validatoren dem HTML-Anfänger eine große Hilfe sind, wenn er, noch unsicher in dem was er da tut, auf mögliche Fehler aufmerksam gemacht wird: Der Web-Autor muß sich stets vor Augen halten, daß valides HTML (im gebräuchlichen Sinne) ungleich korrektes HTML ist! Denn von Bedeutung ist in HTML eben zum einen einzig die Validität der Syntax (jedenfalls solange man nicht durch die Angabe in einer DOCTYPE behauptet, die Seite wäre zur angegebenen DTD gültig, was sie aber in Wirklichkeit dann doch nicht ist - zumal man wissen muß, daß manche Browser versuchen, den DOCTYPE - nicht jedoch die DTD - auszuwerten, um das Dokument dann entsprechend darzustellen - ein mehr als unsinniges, in keinster Weise standardisiertes und auch noch mitunter fehlerhaft umgesetzes Verfahren namens DOCTYPE-Sniffing), zum anderen natürlich das, was die unterschiedlichen Browser mit ihren unterschiedlichen internen DTDs und ihren unterschiedlichen Fehlern daraus machen ...

Wenn also kein gravierender Fehler in der Browser-Software vorliegt, sollte diese Website mit jedem Browser in jeder Konfiguration (und eben auch durch Suchmaschinen) sinnvoll genutzt werden können - online vom Server, wie offline von CD! Egal ob HTML-1- oder gar Text-orientierte Browser ohne Frames und/oder Tabellen, über die ersten Browser mit JavaScript, bis hin zu aktuellen Browsern mit CSS 1/2, ECMA-Script und W3C-DOM: Jeder Browser wird Binary Online (seinen Fähigkeiten entsprechend) darstellen, unabhängig auch von der Auflösung des benutzten Bildschirms

Viel Spaß also beim Studieren der Quelltexte,
Cybaer@binon.net, Juli 2003

P.S.: CSS 3 steht vor der Tür, während es selbst für CSS 1 (immer noch) keine vollständige Browser-Unterstützung gibt - von fehlerfreien XHTML-Browsern (dem designierten HTML-"Nachfolger" auf XML-Basis) ganz zu schweigen (wobei: Der Irrsinn hat wohl mittlerweile ein Ende). So gilt wohl immer noch: Niemand ist perfekt, aber man kann danach streben. 8-)


Kurz-URL dieses Artikels: http://Coding.binon.net/Know-how