XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   (X)HTML (http://xhtmlforum.de/forumdisplay.php?f=72)
-   -   Unterschied HTML5 und XHTML5 ? (http://xhtmlforum.de/showthread.php?t=61096)

Cyberman 10.05.2010 15:05

Unterschied HTML5 und XHTML5 ?
 
Ich hoffe jemand kann mir das in kurzen Worten erklären - ich habe versucht im Internet Antworten zu finden, aber offenbar suche ich falsch.

Ich kenne HTML und XHTML, aber was genau ist bei HTML5 der Unterschied zu XHTML5?
Damit meine ich jetzt nicht spezifische Beispiele, sondern prinzipiell.

Ist es wie bei HTML und XHTML?
Bzw, welches sollte man eher verwenden? Wenn XHTML5 die gleichen Optionen bietet wie HTML5 aber striktere Regeln erzwingt, wäre das ja IMO die bessere Variante.

Oder gibt es grundlegende Unterschiede? Ich konnte das aus den Texten die ich fand nicht wirklich herauslesen :-/

inta 10.05.2010 15:57

Ich bin einfach mal so frei und werfe dir ein paar Links an den Kopf. ;)

HTML 5 + XML = XHTML 5 | HTML5 Doctor
HTML vs. XHTML - WHATWG Wiki
HTML 5 Reference

Der letzte ist vielleicht sogar der interessanteste. Ich versuche in der Regel Dokumente zu schreiben, die sowohl den Regeln von HTML als auch von XHTML entsprechen.

gato 10.05.2010 19:00

Zitat:

Zitat von Cyberman (Beitrag 465685)
Ich kenne HTML und XHTML, aber was genau ist bei HTML5 der Unterschied zu XHTML5?
Damit meine ich jetzt nicht spezifische Beispiele, sondern prinzipiell.

HTML5 (name der Spezifikation) definiert ein Vokabular, das du nutzen kannst und sollst. Dieses Vokabular wird in der Begrifflichkeit des DOM definiert (HTML5 will HTML 4.01, DOM HTML und XHTML 1.0 ersetzen).

Dieses Vokabular kannst du nun nutzen um es als HTML zu schreiben (eine SGML ähnliche Sprache, die vom (ebenfalls in HTML5 definierten) HTML-Parser im Browser verarbeitet wird und Fehlerkorrekturen durchführt, z. B. ein tbody-Element innerhalb von table-Elementen erzeugt.

Alternativ dazu kannst du dieses Vokabular nutzen um es als XML-Dialekt zu verwenden (damit wird nun XHTML 1.0 ersetzt).

Beachte: Auch wenn du ein Dokument mit diesem Vokabular unter Berücksichtigung der XML-Regeln verfasst, handelt es sich um HTML, so lange es mit dem Medientyp text/html versendet wird.

Als XHTML darf laut HTML5 nur bezeichnet werden, was tatsächlich mit einem XML-Medientyp versendet wird.

Zitat:

Zitat von Cyberman (Beitrag 465685)
Bzw, welches sollte man eher verwenden? Wenn XHTML5 die gleichen Optionen bietet wie HTML5 aber striktere Regeln erzwingt, wäre das ja IMO die bessere Variante.

Dadurch dass HTML5 erstmals HTML als eigene Sprache und nicht mehr als SGML-Dialekt (was Browser ohnehin nie eingesetzt haben) kann HTML problemlos genauso streng geprüft werden wie XML.

Der W3C-validator bietet aktuell experimentelle Prüfung auf HTML5-Konformität.

Zitat:

Zitat von Cyberman (Beitrag 465685)
Oder gibt es grundlegende Unterschiede? Ich konnte das aus den Texten die ich fand nicht wirklich herauslesen :-/

HTML5 ist mit Rückwärtskompatibilität entworfen worden, daher solltest du bis auf wenige Ausnahmen keine Probleme feststellen. Allerdings musst du dir natürlich darüber im klarens ein, dass XHTML nicht von allen browsernv erarbeitet werden kann und ein paar Einschränkungen im Vergleich zu HTMl besitzt (die gab es schon immer, aber HTML5 löst ein paar der Unterschiede ins nichts auf).

Aktuell rate ich dir, bei HTML 4.01 oder XHTML 1.0 zu bleiben, das HTML5-Vokabular befindet sich noch in der Ausarbeitung und kann sich daher noch verändern.

Cyberman 13.05.2010 11:11

Zitat:

Zitat von inta (Beitrag 465686)
Ich bin einfach mal so frei und werfe dir ein paar Links an den Kopf. ;)

Nur zu.

Zitat:

Zitat von gato (Beitrag 465714)
Beachte: Auch wenn du ein Dokument mit diesem Vokabular unter Berücksichtigung der XML-Regeln verfasst, handelt es sich um HTML, so lange es mit dem Medientyp text/html versendet wird.

Hm.

Zitat:

Aktuell rate ich dir, bei HTML 4.01 oder XHTML 1.0 zu bleiben, das HTML5-Vokabular befindet sich noch in der Ausarbeitung und kann sich daher noch verändern.
Ja, ich weiß. Ich versuche momentan nur erstmal etwas aufzuholen und zu verstehen was genau HTML5 werden soll.
Bisher bin ich nicht wirklich überzeugt davon, unter anderem weils offenbar keinen Doctype mehr geben soll. (Was ich schon bei CSS fragwürdig fand).

Danke für die Links und die Informationen. Ich werde erstmal ein wenig lesen und darüber nachdenken.

Pascolo 13.05.2010 11:52

Zitat:

Zitat von Cyberman (Beitrag 465881)
Bisher bin ich nicht wirklich überzeugt davon, unter anderem weils offenbar keinen Doctype mehr geben soll.

Den gibt es schon noch, nur gibt es keine Versionierung mehr.

gato 13.05.2010 13:19

Zitat:

Zitat von Cyberman (Beitrag 465881)
Hm.

Das ist auch heute schon so und war auch schon immer so. Nur jetzt schreibst du dadurch kein invalides HTML mehr (<br/> ist invalid in HTML 4.01).

Zitat:

Zitat von Cyberman (Beitrag 465881)
Ja, ich weiß. Ich versuche momentan nur erstmal etwas aufzuholen und zu verstehen was genau HTML5 werden soll.

Einfach gesagt: Eine Überarbeitung und Zusammenfürung von HTML 4.01, XHTML 1.0 und DOM HTML Level 2. Damit sollen widersprüchliche Definitionen aufgelöst und die Interoperabilität gesteigert werden. Zudem werden einige neue Features hinzugefügt.

Der Wiki-Artikel (Abschnitt Aufbau) verrät dir etwas mehr über den aktuellen Stand, was HTML5 alles umfasst.

Zitat:

Zitat von Cyberman (Beitrag 465881)
Bisher bin ich nicht wirklich überzeugt davon, unter anderem weils offenbar keinen Doctype mehr geben soll. (Was ich schon bei CSS fragwürdig fand).

Doch, es gibt schon einen Doctype: <!doctype html> (case insesitive). Der ist aber nur in HTML notwendig, damit die Webseiten im Standardkonformen Modus verarbeitet werden. In XHTML ist er erlaubt aber nicht notwendig (XML wird immer im standardkonformen Modus verarbeitet).

CSS besitzt keinen mechanismus zur Versionierung, weil es vor- und rückwärtskompatibel gestaltet wurde - von Anfang an.

Zitat:

Zitat von Pascolo (Beitrag 465883)
Den gibt es schon noch, nur gibt es keine Versionierung mehr.

Ich hab den Artikel nur kurz überflogen, aber ich glaube er sagt auch aus, was einfach Fakt ist: Bei HTML gab es nie eine Versionierung, d.h. es hat nie Browser gegeben, die zwischen einem HTML-3.2- und einem HTML-4.0- oder HTML-4.01-Dokument unterschieden haben.

HTML5 setzt hier an und definiert einen HTML-Parser, der sowohl alte Webseiten als auch neue verarbeiten kann (Vor- und Rückwärtskompatibilität). Schon heute werden dadurch Inkosistenzen im DOM zwischen den Browsern vereinheitlicht.

Der Parser enthält aber nicht nur Regeln zum Verarbeiten der erlaubten Elemente und Attribute, sondern auch Regeln zur Fehlerkorrektur. Diese sind notwendig, weil die Browser sonst eigene Fehlerkorrekturmaßnahmen einführen. Die Vergangeheit zeigt, dass dies zu großer Inkompatibilität zwischen den Browsern führt.

Pascolo 13.05.2010 14:33

Zitat:

Zitat von gato (Beitrag 465884)
Bei HTML gab es nie eine Versionierung [...]

Das stimmt, in der Realität nicht, in der Theorie jedoch sehr wohl. Die 5 in HTML 5 hat deshalb im Prinzip keine Bedeutung, denn alles ist ganz einfach HTML. Aber wie soll man sich ohne Versionierung überhaupt noch weiterentwickeln? Wie soll man sich zukünftig orientieren?

Für mich ist diese fliessende Entwicklung eine Sackgasse...

mantiz 13.05.2010 15:04

Ich hab' bisher interessiert mitgelesen und da ich mich bisher noch nicht wirklich mit HTML5 beschäftigt habe, drängt sich mir gerade eine Frage auf, die hoffentlich nicht zu sehr offtopic ist. ;)

Wie wird eigentlich mit (noch) nicht unterstützten Tags umgegangen? Wie kann man ein solches Dokument validieren, wenn es keine Versionsinformationen im Dokument mehr gibt?
Für ausgeschaltetes JS kann man ja einen noscript-Block einfügen, noframes gibt es auch noch, aber es soll ja auch einen video-Tag z.B. geben, gibt es da die Möglichkeit alternativ einen Link anzubieten, wenn der Browser diesen Tag noch nicht unterstützt?
Wie verhält sich das dann mit CSS-Anweisungen, werden diese auf unbekannte Tags angewandt oder ignoriert? Werden unbekannte Tags als Block- oder Inline-Elemente behandelt, falls überhaupt?

gato 13.05.2010 19:43

Zitat:

Zitat von Pascolo (Beitrag 465887)
Das stimmt, in der Realität nicht, in der Theorie jedoch sehr wohl.

Ich denke dass ist allen klar, sonst müsste man ja nicht erklären, dass HTML5 dieses Prinzip abschafft :)

Zitat:

Zitat von Pascolo (Beitrag 465887)
Die 5 in HTML 5 hat deshalb im Prinzip keine Bedeutung, denn alles ist ganz einfach HTML.

Die 5 kannst du als Version der Spezifikation sehen, irgendwann gibt es sicher ein HTML6.

Zitat:

Zitat von Pascolo (Beitrag 465887)
Aber wie soll man sich ohne Versionierung überhaupt noch weiterentwickeln? Wie soll man sich zukünftig orientieren?

Sieh dir mal CSS an: Musst du in eine CSS-Datei reinschreiben, welches Level du verwendest? Nein, denn die Sprache wurde so gestaltet, dass sie vor- und rückwärtskompatibel ist. Ersteres bedeutet, dass vorhandene Seite durch das vorhandensein von CSS als Sprache diese Seiten nicht verändert. Zweites bedeutet, dass Features hinzugefügt werden können ohne dass Seiten verändert werden. Das ist zugegeben sehr ähnlich, aber ein feiner Unterschied.

In der Praxis ist das etwas anders, was man anhand von CSS 2.1 gut nachvollziehen kann, aber im Goßen und Ganzen funktioniert dieses Prinzip.

Das Selbe Prinzip will HTML5 nun auf HTML anwenden. HTML5 definiert, was frühere Spezifikationen zu der Sprache nicht definiert haben. Dadurch soll sichergestellt werden, dass auch Webseiten von 1998 nach wie vor so funktionieren, wie sie gestaltet wurden. Andererseits sollen Feature, die erst in der Zukunft implementiert werden, aktuelle Implementierungen nicht um den Verstand bringen.

Sieh dir die Formulare in HTML5 an. Eingabefelder für Daten, E-Mails, Suchanfragen. Alles heute schon nutzebar und auch in Browsern von vor 5 Jahren. Weil HTML5 vor- und rückwärtskompatibel sein will.

Zitat:

Zitat von Pascolo (Beitrag 465887)
Für mich ist diese fliessende Entwicklung eine Sackgasse...

Diese Entwicklung gab es schon immer, HTML5 ist lediglich die erste Spezifikation, die die Realität beachtet und sich nicht an Wunschgedanken von Puristen orientiert. Das habe ich auch erstmal lernen und verstehen mssen, bevor ich mich mit HTML5 anfreunden konnte.

Zitat:

Zitat von mantiz (Beitrag 465890)
Wie wird eigentlich mit (noch) nicht unterstützten Tags umgegangen? Wie kann man ein solches Dokument validieren, wenn es keine Versionsinformationen im Dokument mehr gibt?

Das ist mehr als eine Frage :)

Wie wird mit neuen Elementen umgegangen? Sehen wir und die Einzelnen Aspekte an. In allen Browsern (im IE bis Version 8 nur mit einem Trick*; IE9 kann es von sich aus) werden die neuen Elemente bereits erkannt und in den DOM-Elementbaum eingefügt. Verschachtelungen sind möglich. Die Darstellung kommt später.

Validierung ist aktuell über ein experimentelles Verfahren beim W3C-Validator möglich. Zudem gibt es Validator.nu, dessen parser identisch ist zu dem HTML-Parser, der in Firefox 4.0 enthalten sein wird, denn der Autor beider Parser ist der selbe Mann (Henri Sivonen).

Zitat:

Zitat von mantiz (Beitrag 465890)
Für ausgeschaltetes JS kann man ja einen noscript-Block einfügen, noframes gibt es auch noch, aber es soll ja auch einen video-Tag z.B. geben, gibt es da die Möglichkeit alternativ einen Link anzubieten, wenn der Browser diesen Tag noch nicht unterstützt?

video ist rückwärtskompatibel. Der Aufbau ist einfach gesagt
Code:

<video>1. Aufzählung alternativer Formate/Quellen; 2. Fallback-Inhalt</video>
Ein Browser der die Videoformate nicht versteht, die angeboten werden, oder der das video-Element gar nicht versteht ignoriert das Element und nutz stattdessen den Fallback-Inhalt,der z.B. aus object- oder dem noch älteren embed-Element bestehen kann.

embed ist nicht ideal, zugegeben, aber es muss unterstützt werden, damit ältere Inhalte nach wie vor funktionieren.

Zitat:

Zitat von mantiz (Beitrag 465890)
Wie verhält sich das dann mit CSS-Anweisungen, werden diese auf unbekannte Tags angewandt oder ignoriert? Werden unbekannte Tags als Block- oder Inline-Elemente behandelt, falls überhaupt?

CSS wird auf diese Elemente ganz normal angewendet (im IE bis Version 8 nur mit einem Trick*; IE9 kann es von Haus aus).

Aktuell werden diese Elemente noch wie inline-Elemente dargestellt (CSS Standarddefinition für Elemente), du kannst aber einfach display:block darauf anwenden. Allerdings rate ich momentan noch vom verwenden dieser Elemente ab. Sie werden noch immer diskutiert und sind noch nicht ausgereift.

* Ältere IE's haben leichte Probleme mit den neuen Elementen, anstatt sie im Elementbaum zu verschachteln werden Start- und Endtag als alleinstehende Elemente geparst. Es gibt aber einen trick, mit dem man den älteren IE's die neuen Elemente beibringen kann. Dazu ist nur etwas JavaScript notwendig.

Durch den einfachen Code
Code:

document.createElement('elementname');
lernt der IE, das Element "elementname" im Elementbaum zu verschachteln. Dann kannst du auch ganz normal CSS darauf anwenden. Der IE9 benötigt diese Angabe nicht mehr, sein Parser ist schon etwas überarbeitet worden.

Pascolo 14.05.2010 00:05

Zitat:

Zitat von gato (Beitrag 465907)
Musst du in eine CSS-Datei reinschreiben, welches Level du verwendest?

Nein. Allerdings sieht man hier sehr gut, wohin eine Missachtung der Versionierung führen kann.

Zitat:

Zitat von gato (Beitrag 465907)
[...] die Sprache wurde so gestaltet, dass sie vor- und rückwärtskompatibel ist. [...] Dadurch soll sichergestellt werden, dass auch Webseiten von 1998 nach wie vor so funktionieren, wie sie gestaltet wurden.

Das hat aber mit der neuen Version überhaupt nichts zu tun. Unter welcher Version diese Seite nämlich erstellt wurde, steht doch in der Dokumenttyp-Deklaration. Dazu braucht es keinen neuen HTML-5-Parser.

Zitat:

Zitat von gato (Beitrag 465907)
Diese Entwicklung gab es schon immer, HTML 5 ist lediglich die erste Spezifikation, die die Realität beachtet und sich nicht an Wunschgedanken von Puristen orientiert.

Die Spezifikation von HTML 5 ist vor allem die erste Spezifikation, die bereits gelöste Probleme wieder neu thematisieren will. Viele dieser Neuerungen sind widersprüchlich oder führen alte Elemente unter neuem Namen wieder ein. Das hat nichts mit Purismus zu tun, sondern entspricht der Realität.


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:11 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023