Henry: <head> Element Pflicht?

problematische Seite

Hallo,

hier im Wiki wird unmissverständlich gesagt, dass das <head>Element zwingend notwendig ist. Wenn ich das hier aber richtige verstehe, ist dem nicht so?

Daher frage ich hier mal lieber, bevor ich das unsinnigerweise ändere.

Gruss
Henry

--
Meine Meinung zu DSGVO & Co:
„Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“

akzeptierte Antworten

  1. problematische Seite

    Hallo Henry,

    hier im Wiki wird unmissverständlich gesagt, dass das <head>Element zwingend notwendig ist. Wenn ich das hier aber richtige verstehe, ist dem nicht so?

    beachte zuerst, dass die von dir verlinkte Spec HTML 4.01 ist, die Informationen im Wiki aber in der Regel für HTML 5 gelten. Da mag es Unterschiede geben.

    Darüber hinaus lese ich in HTML 4.01, dass sowohl das Start-Tag, als auch das End-Tag für head optional sind. Das head-Element wird aber implizit dennoch im DOM erzeugt - ähnlich wie ein tbody-Element, das im DOM auch existiert, wenn es nicht ausdrücklich im Quellcode notiert wurde.

    Letztendlich finde ich die Frage aber akademisch. Ein ordentlich aufgebautes HTML-Dokument sollte meines Erachtens auch ein im Quellcode ausgeschriebenes head-Element haben, auch wenn man die Regeln vielleicht dahingehend interpretieren kann, dass man es weglassen darf.

    Live long and pros healthy,
     Martin

    --
    Für welches Tier mühen wir uns am meisten ab? - Für die Katz'.
    1. problematische Seite

      Hallo Der,

      beachte zuerst, dass die von dir verlinkte Spec HTML 4.01 ist, die Informationen im Wiki aber in der Regel für HTML 5 gelten. Da mag es Unterschiede geben.

      upps, gut zu wissen. Dann brauche ich da auch gar nicht auf die Inkosistenz einzugehen, die dort besagt, head optional aber title Pflicht und im Head-Element.

      Darüber hinaus lese ich in HTML 4.01, dass sowohl das Start-Tag, als auch das End-Tag für head optional sind. Das head-Element wird aber implizit dennoch im DOM erzeugt - ähnlich wie ein tbody-Element, das im DOM auch existiert, wenn es nicht ausdrücklich im Quellcode notiert wurde.

      Mit <head> hast du recht, <tbody> aber nicht unbedingt automatisch.

      Letztendlich finde ich die Frage aber akademisch. Ein ordentlich aufgebautes HTML-Dokument sollte meines Erachtens auch ein im Quellcode ausgeschriebenes head-Element haben, auch wenn man die Regeln vielleicht dahingehend interpretieren kann, dass man es weglassen darf.

      Kann man so sehen, ich allerdings freue mich immer wenn Sachen wegfallen und dennoch ein gültiges Dokument dabei herauskommt.

      Gruss
      Henry

      --
      Meine Meinung zu DSGVO & Co:
      „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
      1. problematische Seite

        @@Henry

        Hallo Der,

        Nicht mehr neu, also nur noch mittelmäßig lustig. 😉

        beachte zuerst, dass die von dir verlinkte Spec HTML 4.01 ist, die Informationen im Wiki aber in der Regel für HTML 5 gelten. Da mag es Unterschiede geben.

        upps, gut zu wissen.

        Was noch gut zu wissen ist: die HTML-4.01-Spec ist irrelevant.

        Dann brauche ich da auch gar nicht auf die Inkosistenz einzugehen, die dort besagt, head optional aber title Pflicht und im Head-Element.

        Da ist keine Inkonsistenz, sondern ein Missverständnis deinerseits. Du solltest zwischen Element und Tag unterscheiden lernen.

        Das head-Element ist Pflicht. Es ist immer vorhanden, auch wenn nicht explizit im HTML, denn

        die Tags <head> und </head> sind optional. Auch wenn sie nicht im Quelltext vorhanden sind, wird ein head-Element im DOM generiert.

        Beispiel: Dieses HTML

        <title>Beispiel</title>
        <p>Das ist ein Beispiel.
        

        generiert dieses DOM:

        document
        └╴html
          ├╴head
          │ └╴title
          │   └╴"Beispiel"
          └╴body
            └╴p
              └╴"Das ist ein Beispiel."
        

        Mit <head> hast du recht, <tbody> aber nicht unbedingt automatisch.

        Niemand hat automatisch recht. Recht hat Der Martin aber dennoch.

        Ein tbody-Element ist als Kind von table immer vorhanden, auch wenn keine <tbody>/</tbody>-Tags im HTML-Quelltext stehen. (Wenn wir nicht über XHTML 1.x reden, was irrelevant ist.)

        Kann man so sehen, ich allerdings freue mich immer wenn Sachen wegfallen und dennoch ein gültiges Dokument dabei herauskommt.

        Bei der CSSBattle freue ich mich immer, wenn Sachen wegfallen; völlig egal, ob ein gültiges Dokument dabei herauskommt. 😆

        In allen anderen Fällen finde ich den Code wie Der Martin besser lesbar, wenn optionale Tags nicht weggelassen werden.

        Wenn man an einer Seite arbeitet, die millionenfach pro Minute aufgerufen wird, mag die Optimierung anders aussehen. Aber das sind sehr wenige Spezialfälle.

        😷 LLAP

        --
        “When I was 5 years old, my mother always told me that happiness was the key to life. When I went to school, they asked me what I wanted to be when I grew up. I wrote down ‘happy.’ They told me I didn’t understand the assignment, and I told them they didn’t understand life.” —John Lennon
      2. problematische Seite

        Tach!

        Letztendlich finde ich die Frage aber akademisch. Ein ordentlich aufgebautes HTML-Dokument sollte meines Erachtens auch ein im Quellcode ausgeschriebenes head-Element haben, auch wenn man die Regeln vielleicht dahingehend interpretieren kann, dass man es weglassen darf.

        Kann man so sehen, ich allerdings freue mich immer wenn Sachen wegfallen und dennoch ein gültiges Dokument dabei herauskommt.

        Auch wenn man einige Start- und End-Tags nicht weglassen darf, erzeugt der Browser oftmals die gewünschte Darstellung, wenn man es trotzdem tut, weil dann seine Fehlerkorrektur einschreitet. Und auch wenn die Spezifikation sehr oft vorgibt, wie auf Fehler zu reagieren ist, sollte man das nicht als Freibrief für sich selbst ansehen, Dinge wegzulassen.

        Bei falsch platzierten Tags kann man zumindest noch sehen, was der Autor gemeint hat. Bei fehlenden Dingen, wird das schwer. Wenn man das Weglassen aus Bequemlichkeitsgründen in Erwägung zieht, sollte man lieber über geeignete Editoren oder IDEs nachdenken, die einem Arbeit abnehmen und trotzdem oder auch gerade deshalb das Erstellen gültiger und lesbarer Dokumente unterstützen.

        dedlfix.

  2. problematische Seite

    Servus!

    Hallo,

    hier im Wiki wird unmissverständlich gesagt, dass das <head>Element zwingend notwendig ist. Wenn ich das hier aber richtige verstehe, ist dem nicht so?

    Daher frage ich hier mal lieber, bevor ich das unsinnigerweise ändere.

    Ich bin grad dabei die HTML-Referenz zu aktualisieren.

    Aber selbst dort steht es richtig: HTML/Elemente/head

    Die betreffenden Seiten mit Live-Beispielen (schwierig bei html, head und meta) werden sukzessive zu Kursen umgebaut und dann hoffentlich um Fehler bereinigt.

    Herzliche Grüße

    Matthias Scharwies

    --
    Einfach mal was von der ToDo-Liste auf die Was-Solls-Liste setzen.“
    1. problematische Seite

      Hallo Matthias,

      Ich bin grad dabei die HTML-Referenz zu aktualisieren.

      Aber selbst dort steht es richtig: HTML/Elemente/head

      Ah… die Referenz gibts ja auch. Ja stimmt, das steht es. Hätte dann aber auch was für den Title-Element dort. Ist zwar Pflicht aber nicht unbedingt immer:

      The title element is a required child in most situations, but when a higher-level protocol provides title information, e.g. in the Subject line of an e-mail when HTML is used as an e-mail authoring format, the title element can be omitted.

      Steht seltsamerweise im Head Artikel dort.

      Quelle: https://dev.w3.org/html5/spec-LC/semantics.html#the-head-element

      Und noch eine Frage. In der aktuellen Spec, finde ich keinen Hinweis darauf, dass (wie hier in der Referenz) title im head sein muss. Das Netz ist da auch nicht unbedingt einheitlich. Ist <title> nun nur im Head erlaubt oder nicht?

      Gruss
      Henry

      --
      Meine Meinung zu DSGVO & Co:
      „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
      1. problematische Seite

        Hallo Henry,

        Und noch eine Frage. In der aktuellen Spec, finde ich keinen Hinweis darauf, dass (wie hier in der Referenz) title im head sein muss. Das Netz ist da auch nicht unbedingt einheitlich. Ist <title> nun nur im Head erlaubt oder nicht?

        Doch: https://dev.w3.org/html5/spec-LC/semantics.html#the-title-element

        Contexts in which this element can be used: In a head element containing no other title elements.

        There must be no more than one title element per document.

        Ausnahme ist die Verwendung von inline-SVG. Dort könnte man dann im anderen Namensraum (der aber nicht mehr deklariert werden muss) weitere title-Elemente als Tooltip setzen.

        Referenz:SVG/Elemente/title

        Herzliche Grüße

        Matthias Scharwies

        --
        Einfach mal was von der ToDo-Liste auf die Was-Solls-Liste setzen.“
        1. problematische Seite

          Hallo Matthias,

          Doch: https://dev.w3.org/html5/spec-LC/semantics.html#the-title-element

          Contexts in which this element can be used: In a head element containing no other title elements.

          hmm… dann ist aber doch Quatsch von denen zu sagen, <head> wäre optional, oder sehe ich das falsch? Gibt aber dort noch eine Aussage:

          If the title element is null, then a new title element must be created and appended to the head element. Let element be that element. Otherwise, let element be the title element.

          Angehängt am <head> Element würde ich jetzt ausserhalb verstehen oder meinen die doch innerhalb damit?

          Gruss
          Henry

          --
          Meine Meinung zu DSGVO & Co:
          „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
          1. problematische Seite

            Servus!

            Hallo Matthias,

            Doch: https://dev.w3.org/html5/spec-LC/semantics.html#the-title-element

            Contexts in which this element can be used: In a head element containing no other title elements.

            hmm… dann ist aber doch Quatsch von denen zu sagen, <head> wäre optional, oder sehe ich das falsch? Gibt aber dort noch eine Aussage:

            If the title element is null, then a new title element must be created and appended to the head element. Let element be that element. Otherwise, let element be the title element.

            Angehängt am <head> Element würde ich jetzt ausserhalb verstehen oder meinen die doch innerhalb damit?

            Optional heißt nur, dass Du das nicht hinschreiben musst. Es wird dann vom Browser erzeugt:

            <!doctype html>
            <!----  <html> wird vom Browser erzeugt! -->
            <!---- <head>  das auch --->
            
            <title>Dokument ohne html und head</title>
            
            <h1>Überschrift</h1>
            

            Speicher das mal ab und schau's dir im Chrome Debugger an!

            Und deshalb würde ich das mit dem optional gleich vergessen und alle Elemente immer notieren.

            Bei einer CSS-Challenge mag so was sinnvoll sein - im normalen Leben nicht.

            Herzliche Grüße

            Matthias Scharwies

            --
            Einfach mal was von der ToDo-Liste auf die Was-Solls-Liste setzen.“
          2. problematische Seite

            Hallo,

            Doch: https://dev.w3.org/html5/spec-LC/semantics.html#the-title-element

            Contexts in which this element can be used: In a head element containing no other title elements.

            hmm… dann ist aber doch Quatsch von denen zu sagen, <head> wäre optional, oder sehe ich das falsch?

            du unterscheidest nicht sauber zwischen Tag und Element. Die öffnenden und schließenden head-Tags darfst du weglassen (auch wenn ich das nicht schön finde), aber das Element wird's im DOM trotzdem geben.

            If the title element is null, then a new title element must be created and appended to the head element. Let element be that element. Otherwise, let element be the title element.

            Angehängt am <head> Element würde ich jetzt ausserhalb verstehen oder meinen die doch innerhalb damit?

            Wenn vom Element die Rede ist, meint man in der Regel die browserinterne DOM-Repräsentation. Und im DOM heißt append: Als Kindknoten einhängen.

            Live long and pros healthy,
             Martin

            --
            Für welches Tier mühen wir uns am meisten ab? - Für die Katz'.
        2. problematische Seite

          Hej Matthias,

          Ausnahme ist die Verwendung von inline-SVG. Dort könnte man dann im anderen Namensraum (der aber nicht mehr deklariert werden muss) weitere title-Elemente als Tooltip setzen.

          Referenz:SVG/Elemente/title

          Zum Wiki: Die Darstellung als Tooltipp machen zwar viele (alle?) Browser so, aber die Spec schreibt das nicht vor. Selbst wenn der Browser Tooltipps ausgibt, werden die meisten Nutzer das nicht sehen.

          Trotzdem sollte man title sinnvoll befüllen, damit es einen zugänglichen Namen für Screenreader gibt.

          Besser sind allerdings sichtbare Texte, damit jeder Nutzer Beschreibungen erreichen kann.

          Ich habe das entsprechend angepasst und ergänzt, dass das Element aus Gründen der Abwärtskompatibilität zu SVG 1.1 als erster Kind stehen sollte. (Der Grund war nciht angegeben).

          Marc (marctrix)

          --
          Ceterum censeo Google esse delendam
          1. problematische Seite

            Servus!

            Ich habe das entsprechend angepasst und ergänzt, dass das Element aus Gründen der Abwärtskompatibilität zu SVG 1.1 als erster Kind stehen sollte. (Der Grund war nciht angegeben).

            Vielen Dank!

            Herzliche Grüße

            Matthias Scharwies

            --
            Einfach mal was von der ToDo-Liste auf die Was-Solls-Liste setzen.“
            1. problematische Seite

              Hej Matthias,

              Ich habe das entsprechend angepasst und ergänzt

              Vielen Dank!

              Nicht dafür!

              Marc (marctrix)

              --
              Ceterum censeo Google esse delendam