Kralle: Hinweis vom HTML-Validator - wie mache ich es richtig?

Moin,

wenn ich diesen Code durch den Validator von (https://validator.w3.org) schicke, bekomme ich Hinweise die ich gerne weg hätte:

!DOCTYPE html>
  <html lang="de">
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Industriesiedlung e.V.</title>
      <meta name="description" content="Auftritt der Industriesiedlung in Bremerhavem-Wulsdorf" />
      <meta name="keywords" content="Siedlung, Bremerhaven, Wulsdorf, Gemeinschaft" />
      <meta name="author" content="Heiko Rompel" />
      <meta name="publisher" content="Sören Brunke" />
      <meta name="robots" content="index,follow" />
      <link rel="stylesheet" href="styles.css" type="text/css" />
    </head>
 

Meldungen:

    Info: Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

    From line 5, column 7; to line 5, column 78

    8">↩      <meta name="viewport" content="width=device-width, initial-scale=1.0" />↩     

    Info: Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

    From line 7, column 7; to line 7, column 98

    le>↩      <meta name="description" content="Auftritt der Industriesiedlung in Bremerhavem-Wulsdorf" />↩     

    Info: Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

    From line 8, column 7; to line 8, column 86

     />↩      <meta name="keywords" content="Siedlung, Bremerhaven, Wulsdorf, Gemeinschaft" />↩     

    Info: Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

    From line 9, column 7; to line 9, column 51

     />↩      <meta name="author" content="Heiko Rompel" />↩     

    Info: Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

    From line 10, column 7; to line 10, column 54

     />↩      <meta name="publisher" content="Sören Brunke" />↩     

    Info: Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

    From line 11, column 7; to line 11, column 51

     />↩      <meta name="robots" content="index,follow" />↩     

    Info: Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.

    From line 12, column 7; to line 12, column 65

     />↩      <link rel="stylesheet" href="styles.css" type="text/css" />↩    <Quelltext hier

Es sind zwar nur Info-Meldungen, aber ich möchte eine Seite erzeugen, die keine Meldungen erzeugt. Was muss man also ändern?

Gruß Heiko

  1. Hallo Heiko,

    ja, das Thema hatten wir auch auf der letzten Mitgliederversammlung von Selfhtml e.V. Nimmt man HTML so, wie es in den W3C Beispielen aussieht und wie es im klassischen, DTD-basierenden HTML 4 geschrieben wurde, oder verwendet man, so wie Du, die XML-Schreibweise.

    Deine Konfrontation mit dem Validator spricht gegen die auf der MV geäußerte Sicht, dass wir aus didaktischen Gründen empfehlen sollten, inhaltsleere Elemente im XML Stil zu schreiben. Zumindest ist das W3C der Meinung, dass man es nicht tun solle und lässt seinen Validator meckern.

    <meta> ist ein inhaltsleeres Element. Das heißt: Es hat nur ein Anfangs-Tag, kein End-Tag. Da sich dieser Syntax-Quirk mit einem XML-Parser nicht verarbeiten lässt, gestattet die WHATWG Spezifikation für HTML auch eine XML Syntax, für die man eben <meta .../> und nicht <meta ...> zu schreiben hat. Gleiches gilt für andere inhaltsleere Elemente wie input oder br. Unser Wiki weist an den jeweiligen Stellen darauf hin ("Ende-Tag: Verboten")

    Der Nu Validator hat keinen Schalter, mit dem Du ihm sagen kannst, dass Du XML Syntax für HTML verwenden willst. Deswegen bringt er diese Info-Meldungen.

    Lösung 1: Verwende keine XML Syntax und schreibe <meta ...>.

    Lösung 2: Wenn Du unbedingt XML Syntax verwenden willst, dann blende diese Meldungen aus. Dafür hat der Validator einen Schalter.

    Dass vor dem !doctype html> ein < fehlt, ist sicherlich dem Copy+Paste geschuldet, oder?

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Danke.

      Ich habe den Forward-Slash weggelassen und bekomme keine Meldungen mehr.

      Die fehlende "<" ist ein Kopierfehler.

      Gruß Heiko

  2. Hallo

    <!DOCTYPE html>
      <html lang="de">
        <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0" />
          <title>Industriesiedlung e.V.</title>
          <meta name="description" content="Auftritt der Industriesiedlung in Bremerhavem-Wulsdorf" />
          <meta name="keywords" content="Siedlung, Bremerhaven, Wulsdorf, Gemeinschaft" />
          <meta name="author" content="Heiko Rompel" />
          <meta name="publisher" content="Sören Brunke" />
          <meta name="robots" content="index,follow" />
          <link rel="stylesheet" href="styles.css" type="text/css" />
        </head>
     
    

    Einen der möglichen Lösungswege, nämlich den, die Slashes am Ende von inhaltsleeren Elementen wegzulassen, hast du ja schon beschritten. Daher nur eine Anmerkung.

    Wenn du die XML-Notation mit Slashes denn benutzen wolltest, dann bitte auch durchgängig. Bei <meta charset="utf-8"> fehlt er nämlich. Das wäre bei Verwertung des HTMLs als XML ein Fehler und üblichwerweise einer, bei dem man sich eins zwei fix 'nen Wolf suchen kann.

    Tschö, Auge

    --
    „Habe ich mir das nur eingebildet, oder kann der kleine Hund wirklich sprechen?“ fragte Schnapper. „Er behauptet, nicht dazu imstande zu sein“ erwiderte Victor. Schnapper zögerte (…) „Nun …“ sagte er schließlich, „ich schätze, er muss es am besten wissen.“ Terry Prattchett, Voll im Bilde