XHTML und die Browser



  • Ich wollte mal wieder nen bischen was web-technisches machen und dachte mir, wenn ich mich eh wieder frisch reinknien muss, kann ich ja gleich auf XHTML (strict) umsteigen.
    Gesagt getan, aber das lustig ist:
    Benenne ich die Datei als xhtml erkennt sie weder der IE noch der Mozilla, der IE bietet sie mir zum DL an, der Mozilla zeigt sie wenigstens an (allerdings keine stylesheets etc.)
    Benenne ich die Datei als xml zeigt mir der Mozilla das was ich erwarte an, der IE den XML-Tree
    Benenne ich die Datei als htm(l) zeigen mir beide an was ich erwarte, da xhtml ja kompatibel zu html ist

    Was ich möchte ist jedoch, dass die Datei als XHTML angesehen wird und dementsprechend streng validiert wird, sonst hab ich von dem Mehraufwand ja gar nichts, und nicht als HTML interpretiert wird.

    Wie bekomm ich sowohl den IE als auch Mozilla dazu die Datei als XHTML zu interpretieren?



  • Webber schrieb:

    Was ich möchte ist jedoch, dass die Datei als XHTML angesehen wird und dementsprechend streng validiert wird, sonst hab ich von dem Mehraufwand ja gar nichts, und nicht als HTML interpretiert wird.

    Wenn du XHTML-Code schreibst, also HTML nach strengen Regeln, interpretieren die neueren Browser diesen automatisch als xhtml, völlig unabhängig von der Dateiendung.

    Um den ganzen Code zusätzlich noch als XHTML zu deklarieren, kannst du noch eine sog. Dokumenttyp-Deklaration verwenden.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    

    Aber: Nicht selten beachten die Browser die Dokumenttyp-Deklaration gar nicht... Trotzdem wird der XHTML-Code als XHTML interpretiert. (Allerdings ist er dann nicht "valid", wenn du ihn auf den Seiten des w3c checken lässt!).

    Gruß, Caipi.



  • Irgendwie funktioniert es auch inzwischen so im Großen und Ganzen, ka warum, zumindest klappt es jetzt beim Firefox mit der Endung .xhtml
    Wenn ich als Endung .htm nehme, dann versteht der IE und Firefox das richtig?

    Also meine Datei ist gültiges xhtml, habs mitm validator gecheckt.



  • Also der Firefox zeigt es anders an, je nachdem ob ich als Endung xhtml oder htm habe.
    Bei xhtml wird folgender Teil beachtet, bei htm nicht:

    <div class="placeholder" />
    
    div.placeholder
    {
    	width: 100%;
    	height: 50px
    }
    


  • Ah mir kam gerade eine Idee

    <div class="placeholder">&nbsp;</div>
    

    das akzeptiert sowohl der Firefox als auch der IE

    Aber finde es trotzdem seltsam, dass der Firefox das Dokument anders behandelt je nach Endung und der IE die Datei gar nicht anschaut, wenn er die Endung nicht mag.



  • Caipi schrieb:

    Wenn du XHTML-Code schreibst, also HTML nach strengen Regeln, interpretieren die neueren Browser diesen automatisch als xhtml, völlig unabhängig von der Dateiendung.

    Um den ganzen Code zusätzlich noch als XHTML zu deklarieren, kannst du noch eine sog. Dokumenttyp-Deklaration verwenden.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    

    Aber: Nicht selten beachten die Browser die Dokumenttyp-Deklaration gar nicht... Trotzdem wird der XHTML-Code als XHTML interpretiert. (Allerdings ist er dann nicht "valid", wenn du ihn auf den Seiten des w3c checken lässt!).

    Unsinn.

    Der Internet Explorer beherrscht überhaupt kein XHTML, interpretiert also niemals irgendwas als XHTML. Er kennt selbiges ja nicht mal. Der fällt also schon mal grundsätzlich flach, denn für den ist alles (fehlerhaftes) HTML. Bleiben Browser wie Firefox und Opera. Und bei denen hängt es (wenn man die Datei direkt und nicht über einen Webserver aufruft) sehr wohl von der Dateiendung ab. Denn wie ich hier in einer laaangen Diskussion schon einem anderem selbst ernannten Experten klar gemacht habe, ob es als HTML oder XHTML verarbeitet wird hängt nur vom MIME-Type ab.
    Ist ein Webserver im Spiel, gibt dieser den MIME-Type an - und zwar im Falle von XHTML oft den falschen, nämlich den für HTML. Ist kein Webserver im Spiel, müssen die Browser raten, was es ist. Und das tun sie mit Hilfe der Dateiendung: .htm, .html wird als HTML verarbeitet und .xhtml eben als XHTML.

    Also noch mal in aller Deutlichkeit:
    Wie die Datei selbst aussieht, welchen Inhalt sie hat, ist für die Entscheidung HTML/XHTML bei den genannten Browsern völlig egal. Das hängt nur von der Datei-Endung ab.

    Und der Doctype wird auch nicht ignoriert. Zwar prüfen die Browser den Code nicht gegen die Doctypes, da hast du recht, aber sie verwenden die Doctypes sehr wohl und zwar um den Rendermodus (Quirks mode, Almost-Standards mode, Standards mode) zu bestimmen.
    Übrigens, würde sich Firefox die Mühe machen und das XHTML jedes Mal gegen die Spezifikation zu prüfen, hätte er ihm Webbers <div class="placeholder" /> um die Ohren geschmissen. Ein DIV-Tag darf gemäß Definition niemals leer sein.

    Webber, hoffe deine Fragen sind damit beantwortet. Der IE verhält sich anders als der Firefox, weil IE kein XHTML kennt und der Firefox schon. Ob eine lokale Datei als HTML oder XHTML gerendert wird hängt ausschließlich von der Dateiendung ab.



  • Danke, jetzt sind alle Fragen beantwortet 🙂

    Wenn <div class="placeholder" /> nicht erlaubt ist und der w3 validator es durchgehen lässt, dann ist das wohl eine dieser erwähnten Beschränkungen von dem.
    Danke für den Hinweis (auch wenn ich es inzwischen ubewusst selber korrigiert hab *g*).

    Kann der IE7 XHTML?



  • Webber schrieb:

    Kann der IE7 XHTML?

    So weit ich weiß nicht und es ist, glaube ich, auch nicht geplant.





  • @minhen: Ich danke dir für die Klarstellung! Da habe ich wohl was gänzlich falsch in Erinnerung. Ich bitte um Verzeihung! (Habe mich durch die Fehlertoleranz einiger Browser wohl zu der Annahme verleiten lassen, dass der Code unabhängig von der Dateiendung als xhtml interpretiert wird).

    Bzg: der Modes: Das was du sagst, ist die Theorie, die Praxis sieht anders aus.

    Gruß, Caipi.



  • minhen schrieb:

    Der Internet Explorer beherrscht überhaupt kein XHTML, interpretiert also niemals irgendwas als XHTML. Er kennt selbiges ja nicht mal. Der fällt also schon mal grundsätzlich flach, denn für den ist alles (fehlerhaftes) HTML.

    Selten so einen Blödsinn gelesen *kuller* 🤡
    Der Internet Explorer unterstützt XHTML, allerdings nicht 100% exakt wegen der Abwärtskompatibilität.

    minhen schrieb:

    Ist kein Webserver im Spiel, müssen die Browser raten, was es ist. Und das tun sie mit Hilfe der Dateiendung: .htm, .html wird als HTML verarbeitet und .xhtml eben als XHTML.

    Mit entsprechendem Doctype werden .htm und .html auch als XHTML interpretiert.

    minhen schrieb:

    Wie die Datei selbst aussieht, welchen Inhalt sie hat, ist für die Entscheidung HTML/XHTML bei den genannten Browsern völlig egal. Das hängt nur von der Datei-Endung ab.

    Noch mehr Blödsinn. Was glaubst du warum die (X)HTML-Ausgabe von .php korrekt angezeigt wird?!

    Antworter schrieb:

    Webber schrieb:

    Kann der IE7 XHTML?

    So weit ich weiß nicht und es ist, glaube ich, auch nicht geplant.

    Wieso sollte der IE7 etwas nicht können, was der IE6 schon kann? Was habt ihr nur für katastrophale Quellen?



  • Wer hat jetzt recht? Dass IE7 XHTML kann steht ja in dem eingen Link schon drin (mit dem richtigen DOCTYPE halt).
    Aber was ist jetzt mitm IE6 (hätte gerne nen Beleg)?



  • Webber schrieb:

    Wer hat jetzt recht? Dass IE7 XHTML kann steht ja in dem eingen Link schon drin (mit dem richtigen DOCTYPE halt).
    Aber was ist jetzt mitm IE6 (hätte gerne nen Beleg)?

    Irgendwie finde ich weder über Google noch über microsoft.com einen Beleg für oder wider die Unterstützung von XHTML im IE6.

    Worum genau geht es dir bei der Unterstützung eigentlich? Selbst wenn der IE6 XHTML einigermaßen unterstützt, .xhtml und entsprechenden Mime-Type wird er trotzdem nicht akzeptieren. .xhtml unterstützt der IE7 auch nicht, wie ich gerade eben zufällig festgestellt habe.



  • Caipi schrieb:

    Bzg: der Modes: Das was du sagst, ist die Theorie, die Praxis sieht anders aus.

    Nein. Verschiedene Rendermodes wären in der Theorie überhaupt nicht notwendig. Sie existieren quasi nur in der Praxis. Soll heißen: Doctype-Switching (wovon wir hier ja reden) ist gerade die Praxis und keine Theorie.

    Webber schrieb:

    Wer hat jetzt recht? Dass IE7 XHTML kann steht ja in dem eingen Link schon drin (mit dem richtigen DOCTYPE halt).
    Aber was ist jetzt mitm IE6 (hätte gerne nen Beleg)?

    Nein, da steht gerade drinnen, dass er es nicht kann. Ich hab es hier in dem Forum schon mal so gesagt, und es ist relativ passend: der IE 6 hat keinen blassen Schimmer, dass überhaupt sowas wie XHTML exisitert. Der IE 7 dagegen hat eine grobe Ahnung, dass sowas existiert (natürlich ohne es zu beherrschen).

    Ich rate dir besser solche Leute wie Neku zu ignorieren. Solche Laien, die nicht mal ansatzweise eine Ahnung haben, wovon sie reden, sich aber einbilden Halbgötter zu sein, gibt's leider gerade in dem Bereich wie Sand am Meer. Solche Leute am besten einfach ignorieren. Wenn sie in 5 Jahren mal wieder lesen sollten, was sie so verzapft haben, werden sie sich in Grund und Boden schämen. Das ist Strafe genug - denn das WWW vergisst fast nie was 😉

    Gerade sowas wie XHTML ja/nein speziell mit Dateiendung ja/nein lässt sich innerhalb weniger Sekunden selbst überprüfen.
    Erstell einfach mal eine leere Datei "test.html". Da der Inhalt völlig irrelevant ist, kannste natürlich auch irgendwas reinschreiben - oder sie eben leer lassen. Diese Datei öffnest du dann mal im Firefox. Merk dir das Ergebnis (eine leere Seite - nur weiß). Dann drücke Strg+I und merk dir ganz genau was bei "Typ" steht.
    Dann nimmst du die selbe Datei und benennst sie in "test.xhtml" um. Öffne die umbenannte Datei im Firefox. Bestaune die XML-Fehlermeldung und drücke Strg+I und schau dir den "Typ" mal genau an ...



  • minhen schrieb:

    Ich rate dir besser solche Leute wie Neku zu ignorieren. Solche Laien, die nicht mal ansatzweise eine Ahnung haben, wovon sie reden, sich aber einbilden Halbgötter zu sein, gibt's leider gerade in dem Bereich wie Sand am Meer. Solche Leute am besten einfach ignorieren. Wenn sie in 5 Jahren mal wieder lesen sollten, was sie so verzapft haben, werden sie sich in Grund und Boden schämen. Das ist Strafe genug - denn das WWW vergisst fast nie was 😉

    Interessante Aussage, wirklich. Eigentlich wollte ich mich ja nicht mehr äußern, aber jetzt muss ich doch noch einmal "meinen Senf dazu geben". Dazu sage ich vorweg, dass ich nun die konkreten Diskussionsgegenstände außer Acht lasse!

    Ich habe persönlich eher den Eindruck, dass du hier derjenige bist, der sich für den Vollgott hält.

    Deine stereotypen Aussagen wirken auf mich eher lächerlich als "professionell" und "fundiert", was du dir ja von dir im Gegensatz zu einer ganzen Menge Menschen zu behaupten anmaßt; wer also denkt, der IE7 könnte XHTML verwerten, der ist sofort ohne wenn und aber ein erbärmlicher Webnoob, ein Laie, der sich in den höchsten Wolken anmaßt, Ahnung zu haben, aber in letzter Hinsicht wie ein kleines Scriptkiddy den letzten Bullshit versprenkelt, für den es sich Jahre später - nach seiner wundersamen Erleuchtung - in Grund und Boden schämen muss. Wer bist du, dass du dir eine solche Interpretation zu äußern wagst? Diplompsychologe? Du meinst also, mich und Neku so weitgehend, wie du es hier geäußert hast, einschätzen zu können, nur weil wir Zwei Äußerungen gemacht haben, die deinen "Professionellen" komplementär sind; das ist anmaßend, arrogant und in keinster Weise zu rechtfertigen! Mit derlei schlichtweg stereotypen Behauptungen trittst du dir selber ins Bein, der du ja von deinen eigenen Qualifikationen wie selbstverständlich überzeugt zu sein scheinst.

    Ich würde dir raten, deine Interpretationsersuche und ungereifte Abstraktionen nicht unbedacht in die Welt zu schreien, wo du sie dir nicht erlauben kannst und wo du sie nicht ansatzweise rechtfertigen kannst. Andernfalls läufst du Gefahr, mit deinem hohen Ross zu kentern!

    Was willst du mit deiner niedermachenden, beleidigenden Ausdrucksweise erreichen? Allen beweisen, wie toll du dich auf diesem Gebiet auskennst? Das zeigst du durch freundliche, fundierte und quellenorientierte Antworten; ersteres scheint dir fremd, zweiteres nur in Ansätzen bekannt zu sein. Ich bin es eigentlich gewohnt, in derlei Fällen eine gute, zum allseitigen Interesse nicht vulgäre und für beide Gesprächspartner produktive Diskussion zu führen, aber stattdessen beleidigst du lieber mit einer perversen Selbstverständlich andere (fremde) Leute, stellst - ohne sie im Entferntesten zu kennen - abstruse Theorien über sie an, die du ferner als definitiv erklärst (Indikativ) und unterstellst jedem, der nicht 100%ig deiner Meinung ist, Unfähigkeit, nicht vorhandene Qualifikation wie Toleranz sowie eine beschämende Ignoranz (s. deinen oberen Beitrag). Und falls du nun erneut schreiben solltest "... du tust also das, was du anderen vorwirfst, selber", dann kann ich dir sagen: Nein! Ich beleidige dich nicht - im Gegensatz zu dir -, und ich erdreiste mich nicht, unbegründbare Dinge über deine Qualifikation oder deine Person zu behaupten sondern berufe meine Aussagen - im Gegensatz zu dir - ausschließlich auf dein Erscheinungsbild und deine Beiträge hier im Forum.

    Denke bitte daran, dass es so, wie es in den Wald schallt, auch wieder heraus kommt. Ich möchte keinen Flamewar anregen, habe aber in der Tat allmählich den Eindruck, dass auf jeden Beitrag hier, der einem von dir folgt und nicht exakt dessen Inhalt reflektiert, Beleidungen und Unterstellungen deinerseits folgen.

    Und somit schreibe ich mein endgültig letztes Wort in dieser - vermutlich sinnlosen - Debatte.



  • Reyx schrieb:

    wer also denkt, der IE7 könnte XHTML verwerten, der ist sofort ohne wenn und aber ein erbärmlicher Webnoob, ein Laie, der sich in den höchsten Wolken anmaßt, Ahnung zu haben, aber in letzter Hinsicht wie ein kleines Scriptkiddy den letzten Bullshit versprenkelt, für den es sich Jahre später - nach seiner wundersamen Erleuchtung - in Grund und Boden schämen muss.

    Nein, auf Leute die glauben der IE könne XHTML (und das auch sagen und nicht als absolute Wahrheit behaupten), trifft das natürlich überhaupt nicht zu. Es trifft aber uneingeschränkt auf Leute zu, die auf die Anmerkung, der IE könne kein XHTML, so reagieren:

    Neku schrieb:

    Selten so einen Blödsinn gelesen *kuller* 🤡
    Der Internet Explorer unterstützt XHTML, allerdings nicht 100% exakt wegen der Abwärtskompatibilität.

    Bei so einem Verhalten sehe ich wirklich keinen Grund die Samthandschuhe anzuziehen und durch die Blume vorsichtig darauf hinzuweisen, dass er sich irren könnte ...

    Wenn ich zu so einer Wortwahl greife und mich irren sollte, kann er (oder jeder sonst) gerne genau so reagieren und mich niedermachen. Ich hätte es dann auch verdient. Das Problem ist nur, ich philosophiere nicht über irgendwas und vermute auch nicht einfach drauf los, um es dann als absolute Wahrheit zu verkaufen ...

    Und nebenbei: Nein, ich bin kein Diplom-Psychologe. Ich studiere Psychologie lediglich im Nebenfach. Ich habe zwar die selben Vorlesungen wie die Diplom-Psychologen, aber in geringerem Umfang. Deswegen würde ich mir klinische Psychologie zum Beispiel niemals anmaßen. Wobei ich letztes Semester "Forensische Psychiatrie" in einer realen, echten Psychiatrie mit realen, echten Straftätern hatte. Einen gewissen Einblick würde ich mir also schon zutrauen, mehr aber auch nicht.
    Aber um nicht ganz vom Thema abzukommen, frei nach Sokrates: ich weiß, wenn ich etwas nicht weiß. Und das ist der große Unterschied. Das scheinen Menschen wie Neku zum Beispiel nicht gebacken zu bekommen. Anders kann ich mir deren Verhalten nicht erklären.

    Ich würde dir raten, deine Interpretationsersuche und ungereifte Abstraktionen nicht unbedacht in die Welt zu schreien, wo du sie dir nicht erlauben kannst und wo du sie nicht ansatzweise rechtfertigen kannst. Andernfalls läufst du Gefahr, mit deinem hohen Ross zu kentern!

    Oh, ich schreie nichts unbedacht in die Welt. Erlauben kann ich es mir und rechtfertigen sowieso. Den Grund dafür habe ich eben genannt.
    Wisse, wenn du etwas nicht weisst und wisse, was du weisst - und ich bin der höflichste Mensch auf der Welt. Wenn du etwas glaubst oder vermutest, und dazu sagst, dass du glaubst und vermutest, dann ist alles perfekt.
    Aber glaube und vermute und mache mich an, und ich sehe keinen Grund, ein Blatt vor den Mund zu nehmen.

    Was willst du mit deiner niedermachenden, beleidigenden Ausdrucksweise erreichen?

    Wie man in den Wald hineinruft, so schallt es zurück. Nur manchmal etwas niedermachender und beledigender 😉
    Eine Möglichkeit zur positiven Bestärkung seh ich hier nicht. Wohl aber eine für positive Bestrafung. Eine Ratte lernt auch durch Stromschläge ...

    habe aber in der Tat allmählich den Eindruck, dass auf jeden Beitrag hier, der einem von dir folgt und nicht exakt dessen Inhalt reflektiert, Beleidungen und Unterstellungen deinerseits folgen.

    Der Eindruck stimmt völlig - sofern der auf meinen Beitrag folgende Beitrag die Form

    Selten so einen Blödsinn gelesen *kuller* 🤡

    hat ...



  • Ok ich fasse mal zusammen:
    IE7 weiß, dass es XHTML gibt und über dieses DOCTYPE-Switching ändert sich irgendwas in dem IE-Renderer, dass er XHTML besser versteht?
    IE6 rendert es einfach als HTML, was bie XHTML1.0 laut w3 ja kein Problem ist.



  • Webber schrieb:

    Ok ich fasse mal zusammen:
    IE7 weiß, dass es XHTML gibt und über dieses DOCTYPE-Switching ändert sich irgendwas in dem IE-Renderer, dass er XHTML besser versteht?

    Jein. Wobei, eigentlich schon Ja. Die Sache ist die, der IE hatte schreckliche Darstellungsbugs. Da die Mehrheit aber seit Jahren den IE nutzt(e), haben sich die Webentwickler daraufeingstellt gehabt und ihre Seiten fehlerhaft geschrieben, damit der IE sie "korrekt" anzeigt. Das war eine mittlere Katastrophe und um sowohl diese falschen Seiten als auch korrekte und neue Seiten anzuzeigen, haben sich die Browser-Hersteller das Doctype-Switching ausgedacht (deswegen sagte ich vorher "pure Praxis, keine Theorie" - in der Theorie gibt es keine Bugs und nur richtigen Code).
    Die Browser kennen einige Doctypes und finden sie keinen Doctype oder einen völlig veralteten (u.a.), wird die Seite im sog. Quirks mode gerendert. Überspitzt ausgedrückt werden in diesem Modus die Bugs des IEs simuliert.
    Finden die Browser einen neuen und brauchbaren Doctype, wird im "Standards mode" gerendert. Der erklärt sich jetzt hoffentlich von selbst.
    Der Witz ist jetzt, dass selbst beim IE Doctype-Switching notwendig geworden ist. Der Doctype steht bei HTML immer in der ersten Zeile. Die Heuristik des IEs zur Ermittlung des Modus besteht also bis und einschließlich Version 6 des Browsers darin, sich nur die erste Zeile anzuschauen. Ist dort ein Doctype, wird normales Doctype-Switching ausgeführt. Ist dort kein Doctype, wird die Seite automatisch im Quirks mode gerendert.
    Bei XHTML kann aber noch vor dem Doctype ein sog. XML-Prolog mit Angabe der XML-Version usw stehen. Das erwischt den IE6, der ja nur HTML erwartet, auf dem falschen Fuß. Findet der nämlich in der ersten Zeile ein XML-Prolog und kein Doctype, geht's ab in den Quirks mode. Dabei müsste die XHTML-Seite im "Standards mode" gerendert werden.
    Dieser Bug wurde im IE7 behoben. D.h., der Unterschied zum IE6 ist jetzt der, dass der IE7 ein XML-Prolog zulässt und in der zweiten Zeile auch nach dem Doctype sucht. Der IE7 kann also nicht besser XHTML rendern sondern entscheidet sich lediglich für den besseren (HTML-)Rendermodus. Den selben hat der IE6 auch schon, nur trifft der halt die falsche Entscheidung.

    IE6 rendert es einfach als HTML, was bie XHTML1.0 laut w3 ja kein Problem ist.

    Jupp, genau so ist es 🙂



  • Ok jetzt hab ich es verstanden. Der XML-Prolog ist bei XHTML laut w3schools-Tutorial kein muss, d.h. wenn ich den weg lasse, dann rendert sowohl der IE6, als auch die XHTML-fähigen (bzw fähigeren) Browser die Seite am "optimalsten"?



  • Ja, er ist kein Muss. Aber man sollte die Worte der "XHTML 1.0"-Spezifikation im Hinterkopf behalten:

    An XML declaration is not required in all XML documents; however XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required when the character encoding of the document is other than the default UTF-8 or UTF-16 and no encoding was determined by a higher-level protocol.

    Bei XHTML 1.1 wurde der Zusatz "and no encoding was determined by a higher-level protocol" übrigens weggelassen ...

    Ohne XML-Prolog ist es optimal für den IE. Für XHTML-fähige Browser ist es dagegen optimal, wenn der Webserver die Seite als "application/xhtml+xml" anbietet, d.h. als XHTML, ausliefert. Wobei man dann XHTML-unfähige Browser eben extra behandeln muss.
    Hast du vor dein XHTML 1.0 sowieso als HTML rendern zu lassen (also "text/html"), dann brauchst du dir über die ganzen XHTML-Sachen sowieso keine Gedanken machen.


Anmelden zum Antworten