edition W3C.de

HTML 4.01-Spezifikation

Deutsche Übersetzung

Diese Version:
http://www.edition-w3.de/TR/1999/REC-html401-19991224
Aktuelle Version:
http://www.edition-w3c.de/TR/html4
Übersetzer:
Christine Kühnel (Übersetzung, fachliche Kommentierung) <kuehnel@screenexa.net>
Stefan Mintert (Fachlektorat und fachliche Kommentierung) <www.mintert.com/stefan/mail/>
Stefan Schumacher (Übersetzung, fachliche Kommentierung) <sts@schumacher-netz.de>

Bei diesem Dokument handelt es sich um eine Übersetzung eines W3C-Textes. Dieser Text ist urheberrechtlich geschützt; bitte beachten Sie die nachfolgenden Hinweise des Originaldokuments. Die Rechte an der Übersetzung liegen bei den Übersetzern und dem Verlag Addison-Wesley. Die Übersetzung hat keine durch das W3C legitimierte, normative Wirkung. Das einzige maßgebliche Dokument ist das englische Original.

Bitte senden Sie Fehler und Korrekturen zur deutschen Fassung an die Übersetzer.

Kommentare der Übersetzer, die als solche gekennzeichnet sind, unterliegen dem Urheberrecht der Übersetzer. Sie sind nicht Bestandteil des Ursprungsdokuments.

Diese Veröffentlichung ist eine Vorveröffentlichung. Kein Teil dieses Textes darf kopiert werden. Alle Rechte vorbehalten. Nach Abschluss der Arbeit wird das endgültige Dokument unter der oben angegebenen Adresse veröffentlicht. Die jetzige Veröffentlichung während der laufenden Arbeit dient zur Information von Interessierten und zur Prüfung durch die Fachöffentlichkeit. Sollten Sie Fehler finden oder Verbesserungsvorschläge haben, schicken Sie diese bitte per Mail an die Übersetzer.
Folgende Teile liegen noch in Englisch vor und müssen noch in deutscher Fassung generiert werden: (a) Gesamtinhaltsverzeichnis (b) Index


7 Die globale Struktur eines HTML-Dokuments

Inhaltsverzeichnis

7.1 Einführung in die Struktur eines HTML-Dokuments

Ein HTML 4-Dokument setzt sich aus drei Teilen zusammen:

  1. Einer Zeile, die HTML-Versionsinformationen enthält
  2. Einem deklarativen Kopfabschnitt (begrenzt durch das HEAD-Element)
  3. Einem Rumpf, der den eigentlichen Inhalt des Dokuments enthält. Der Rumpf kann durch das BODY-Element oder das FRAMESET-Element eingebunden sein.

Leerräume (white spaces; Leerzeichen, Zeilenwechsel, Tabulatursprünge und Kommentare) können vor und nach jedem Abschnitt auftauchen. Abschnitt 2 und 3 sollten durch das HTML-Element begrenzt sein.

Hier ist ein Beispiel für ein einfaches HTML-Dokument:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
   <HEAD>
      <TITLE>My first HTML document</TITLE>
   </HEAD>
   <BODY>
      <P>Hello world!
   </BODY>
</HTML>

7.2 HTML-Versionsinformation

Ein gültiges HTML-Dokument gibt die im Dokument benutzte HTML-Version an. Die Dokumenttyp-Deklaration benennt die für das Dokument verwendete Dokumenttyp-Definition (DTD) (s. [ISO8879]).

HTML 4.01 spezifiziert drei DTDs, deshalb müssen Autoren eine der folgenden Dokumenttyp-Deklarationen in ihre Dokumente aufnehmen. Die DTDs unterscheiden sich in den Elementen, die sie unterstützen.

Der URI in jeder Dokumenttyp-Deklaration gestattet es Benutzerprogrammen, die DTD und irgendwelche benötigte Entity-Sätze (siehe Abschnitt 24) herunterzuladen. Die folgenden (relativen) URIs verweisen auf DTDs und Entity-Sätze für HTML 4:

Die Zuordnung von Public Identifiers zu Dateien kann durch die Verwendung einer Katalogdatei, deren Format sich nach den Empfehlungen des Oasis Open Consortiums dafür richtet (siehe [OASISOPEN]), durchgeführt werden. Eine Beispiel-Katalogdatei für HTML 4.01 ist am Anfang des Abschnittes über SGML-Referenzinformationen für HTML enthalten (s. Abschnitt 19.2). Die letzten beiden Buchstaben der Deklaration geben die Sprache der DTD an. Für HTML ist dies immer Englisch (»EN«).

Anmerkung: Mit der Version vom 24. Dezember von HTML 4.01 verpflichtet sich die HTML-Arbeitsgruppe zu folgendem Verfahren:

Das bedeutet, dass Autoren in Dokumenttyp-Deklaration ruhig einen System-Bezeichner benutzen können, der auf die letzte Version einer HTML 4-DTD verweist. Autoren können sich auch entschließen, einen Systembezeichner zu verwenden, der auf eine bestimmte (veraltete) Version einer HTML 4-DTD verweist, wenn Gültigkeit gegenüber dieser besonderen DTD erforderlich ist. W3C wird alle Anstrengungen unternehmen, um archivierte Dokumente an ihren Originaladressen in ihrer Originalform unbeschränkt verfügbar zu machen.

7.3 Das HTML-Element

<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content;)    -- document root element -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  >

Start-Tag: optional, End-Tag: optional

Attributdefinitionen

version = cdata [CN]
Missbilligt. Der Wert dieses Attributs spezifiziert, welche HTML-DTD-Version für das aktuelle Dokument maßgebend ist. Dieses Attribut wurde missbilligt, weil es redundant zur Versions-Information ist, die vom Dokument-Typ angeboten wird.

An anderer Stelle definierte Attribute

Der gesamte Rest eines HTML-Dokuments nach der Dokumenttyp-Deklaration wird vom HTML-Element aufgenommen. Somit hat ein typisches HTML-Dokument diese Struktur:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
...Kopf, Rumpf usw. stehen hier...
</HTML>

7.4 Der Dokument-Kopf

7.4.1 Das HEAD-Element

<!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" -->
<!ENTITY % head.content "TITLE & BASE?">

<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head -->
<!ATTLIST HEAD
  %i18n;                               -- lang, dir --
  profile     %URI;          #IMPLIED  -- named dictionary of meta info --
  >

Start-Tag: optional, End-Tag: optional

Attributdefinitionen

profile = uri [CT]
Dieses Attribut spezifiziert den Fundort eines oder – durch Leerzeichen getrennt – mehrerer Metadaten-Profile. Im Hinblick auf künftige Erweiterungen sollten Benutzerprogramme den Wert als Liste ansehen, auch wenn diese Spezifikation nur den ersten URI als signifikant betrachtet. Profile werden weiter unten in Abschnitt 7.4.4, »Meta-Daten« diskutiert.

An anderer Stelle definierte Attribute

Das HEAD-Element enthält Informationen über das aktuelle Dokument, wie seinen Titel, Schlüsselwörter, die sinnvoll für Suchmaschinen sein können, und andere Daten, die nicht als Dokumentinhalt betrachtet werden. Benutzerprogramme stellen Elemente, die im HEAD stehen, im Allgemeinen nicht als Inhalt dar. Sie können jedoch Informationen aus dem HEAD über andere Mechanismen für den Benutzer verfügbar machen.

Anmerkung der Übersetzer:

Das ist zum Beispiel das Head-Element der englischen Originalfassung der Seite zu Abschnitt 7 dieser Spezifikation:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>The global structure of an HTML document</title>
<link rel="previous" href="../types.html">
<link rel="next" href="dirlang.html">
<link rel="contents" href="../cover.html#toc">
<link rel="stylesheet" type="text/css" href=" 
http://www.w3.org/StyleSheets/TR/W3C-REC">
<link rel="STYLESHEET" href="../style/default.css" type="text/css">
</head>

Eine Möglichkeit, wie ein Benutzerprogramm (hier der Mozilla-Browser) dem Benutzer die enthaltenen Informationen zugänglich machen kann, zeigen die folgenden Abbildungen:

7.4.2 The TITLE-Element

<!-- The TITLE element is not considered part of the flow of text.
       It should be displayed, for example as the page header or
       window title. Exactly one title is required per document.
    -->
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- document title -->
<!ATTLIST TITLE %i18n>

Start-Tag: erforderlich, End-Tag: erforderlich

An anderer Stelle definierte Attribute

Jedes HTML-Dokument muss ein TITLE-Element im HEAD-Abschnitt haben.

Autoren sollten das TITLE-Element benutzen, um den Inhalt eines Dokuments zu beschreiben. Da Benutzer oft Dokumente aus dem Zusammenhang gerissen aufrufen, sollten Autoren selbsterklärende Titel anbieten. So sollten Autoren anstelle eines Titels wie »Einführung«, der nicht viel Information über den Kontext bietet, einen Titel wie »Einführung in die Bienenhaltung im Mittelalter« wählen.

Anmerkung der Übersetzer:

Das TITLE-Element wird von Autoren oft vernachlässigt. Nicht selten trifft man Dokumente mit dem Title »Untitled« an, das ist der Titel, den eine Reihe von HTML-Editoren standardmäßig einsetzen. Dem Benutzer wird damit der Umgang mit den Dokumenten erschwert. Sie sind auch im Katalog der Lesezeichen, Favoriten oder wie immer er im konkreten Benutzerprogramm heißen mag, »Untitled«. Hat ein Benutzer mehrere Fenster geöffnet, so wird ihm die Auswahl eines konkreten geöffneten Dokuments nicht leicht gemacht, wenn es »Untitled« ist. Wie das bei vier offenen Fenstern, von denen nur eines ein Dokument mit aussagefähigem Titel enthält, aussehen kann, zeigt das folgende Bild (hier Internet Explorer 5 unter Mac OS):

Aus Gründen der Zugänglichkeit müssen Benutzerprogramme den Inhalt des TITLE-Elements für Benutzer immer verfügbar machen (TITLE-Elemente, die in einem Frame erscheinen, eingeschlossen). Der Mechanismus dafür hängt vom Benutzerprogramm ab (z.B. als Überschrift, gesprochen).

Titel dürfen Zeichen-Entities enthalten (für Zeichen mit Akzentzeichen, Sonderzeichen usw.), können aber keine andere Auszeichnung enthalten (Kommentare eingeschlossen). Hier ist ein Beispiel für einen Dokument-Titel:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>Eine Studie der Entwicklung der Population</TITLE>
... andere Kopfelemente ...
</HEAD>
<BODY>
... Dokumentrumpf ...
</BODY>
</HTML>

7.4.3 Das title-Attribut

Attributdefinition

title = text [CS]
Dieses Attribut bietet kommentierende Information über das Element, für das es gesetzt ist.

Anders als das TITLE-Element, das Informationen über ein ganzes Dokument bietet und nur einmal vorkommen darf, kann das title-Attribut eine beliebige Anzahl von Elementen mit Kommentaren versehen. Bitte sehen Sie in der Definition eines Elements nach, um zu überprüfen, ob es dieses Attribut unterstützt.

Werte des title-Attributs können von Benutzerprogrammen auf verschiedenste Art dargestellt werden. Zum Beispiel zeigen visuelle Browser »title« oft als »Tooltip« (eine kurze Nachricht, die erscheint, wenn das Zeigegerät über einem Objekt innehält). Audio-Benutzerprogramme können die »title«-Information in entsprechendem Kontext sprechen. Zum Beispiel ermöglicht das Setzen dieses Attributs für einen Link Benutzerprogrammen (visuellen und nicht visuellen), Benutzern etwas über die Beschaffenheit der verlinkten Ressource zu sagen:

... Text ...
Hier ist ein Bild von 
<A href="http://someplace.com/neatstuff.gif" title="ich beim Tauchen">
   mir beim Tauchen letzten Sommer
</A>
... Text ...

Das title-Attribut hat keine zusätzliche Funktion, wenn es mit dem LINK-Element benutzt wird, um ein externes Stylesheet zu benennen. Details finden Sie in Abschnitt 12.3.2, »Links und externe Stylesheets«.

Anmerkung der Übersetzer:

Das title-Attribut ist nicht zu verwechseln mit dem alt-Attribut oder mit diesem gleich zu setzen. Da das title-Attribut von älteren gängigen Browsern nicht unterstützt wurde, der Wert des alt-Attributs von ihnen nicht nur – wie es seinem eigentlichen Anliegen enstpricht – als Alternative gezeigt wurde, sondern zum Beispiel auch bei Mausberührung, benutzten Autoren das alt-Attribut häufig »zweckentfremdet«. Wir raten dringend, an dieser Stelle zwischen beiden zu unterscheiden. So könnten zum Beispiel title und alt für ein Bild verwendet werden:

<img src="klassentreffen.jpg"
     alt="Foto vom Klassentreffen"
     title="Klassentreffen am 15.06.2002, 
            festgehalten von Peter Meier">

Kann das Bild nicht angezeigt werden, könnte eine sinnvolle visuelle Präsentation so wie im folgenden Bild aussehen; der Text aus dem Wert des alt-Attributs ersetzt das Bild. Anderenfalls würde das Bild gezeigt und dazu der Text aus dem title-Attribut.

Anmerkung: Um die Qualität der Sprachsynthese für Fälle, die durch Standardtechniken mangelhaft behandelt werden, zu verbessern, können künftige HTML-Versionen ein Attribut für Kodierung phonetischer und prosodischer Informationen beinhalten.

7.4.4 Meta-Daten

Anmerkung: Das Resource Description Framework des W3C (siehe [RDF10]) wurde im Februar 1999 W3C-Recommendation. RDF erlaubt Autoren, maschinenlesbare Meta-Daten über HTML-Dokumente und andere über ein Netzwerk erreichbare Ressourcen zu spezifizieren.

HTML lässt Autoren Meta-Daten -- Informationen über ein Dokument im Gegensatz zum Inhalt des Dokuments -- auf unterschiedliche Art spezifizieren.

Um zum Beispiel den Autor eines Dokuments anzugeben, kann man das META-Element wie folgt benutzen:

<META name="Author" content="Dave Raggett">

Das META-Element spezifiziert eine Eigenschaft (hier »Author«) und ordnet ihr einen Wert zu (hier »Dave Raggett«).

Diese Spezifikation definiert keine Sammlung gültiger Eigenschaften für Meta-Daten. Die Bedeutung einer Eigenschaft und der Satz gültiger Werte für diese Eigenschaft sollten in einem Referenz-Lexikon, Profil genannt, definiert werden. Beispielsweise würde ein Profil, das entworfen wurde, um Suchmaschinen bei der Indizierung von Dokumenten zu helfen, Eigenschaften wie »author«, »copyright«, »keywords« usw. definieren.

Anmerkung der Übersetzer:

Informationen über die Arbeitsweise verschiedener Suchmaschinen gibt es zum Beispiel auf www.searchengineworld.com.

Spezifizierung von Meta-Daten 

Im Allgemeinen erfolgt die Spezifizierung von Meta-Daten in zwei Schritten:

  1. Deklarieren einer Eigenschaft und eines Wertes für diese Eigenschaft. Das kann auf zwei Arten geschehen:
    1. Im Innern eines Dokuments mit Hilfe des META-Elements.
    2. Außerhalb eines Dokuments durch Verlinken von Meta-Daten mit Hilfe des LINK-Elements (siehe Abschnitt 6.12, »Link-Typen«).
  2. Verweisen auf ein Profil, in dem die Eigenschaft und deren gültige Werte definiert sind. Um ein Profil anzugeben, verwenden Sie das profile-Attribut des HEAD-Elements.

Beachten Sie, dass, wenn ein Profil für das HEAD-Element definiert wird, dasselbe Profil für alle META- und LINK-Elemente im Dokument-Kopf gilt.

Es ist nicht erforderlich, dass Benutzerprogramme Mechanismen zur Unterstützung von Meta-Daten haben. Für den Fall, dass sie sich entschließen, Meta-Daten zu unterstützen, definiert diese Spezifikation nicht, wie Meta-Daten interpretiert werden sollten.

Das META-Element 

<!ELEMENT META - O EMPTY               -- generic metainformation -->
<!ATTLIST META
  %i18n;                               -- lang, dir, for use with content --
  http-equiv  NAME           #IMPLIED  -- HTTP response header name  --
  name        NAME           #IMPLIED  -- metainformation name --
  content     CDATA          #REQUIRED -- associated information --
  scheme      CDATA          #IMPLIED  -- select form of content --
  >

Start-Tag: erforderlich, End-Tag: verboten

Attributdefinitionen

Die erlaubten Werte und ihre Interpretation für die folgenden Attribute sind abhängig vom Profile:

name = name [CS]
Dieses Attribut weist den Namen einer Eigenschaft aus. Diese Spezifikation listet gültige Werte für dieses Attribut nicht auf.
content = cdata [CS]
Dieses Attribut spezifiziert den Wert einer Eigenschaft. Diese Spezifikation listet gültige Werte für dieses Attribut nicht auf.
scheme = cdata [CS]
Dieses Attribut benennt ein Schema, das zur Interpretation des Wertes der Eigenschaft herangezogen wird (Details finden Sie in den Ausführungen über Profile).
http-equiv = name [CI]
Dieses Attribut kann anstelle des name-Attributs benutzt werden. HTTP-Server verwenden dieses Attribut, um Informationen für Header-Zeilen der HTTP-Antwort zusammenzutragen.

An anderer Stelle definierte Attribute

Das META-Element kann verwendet werden, um Eigenschaften eines Dokuments auszuweisen (z.B. Autor, Verfallsdatum, eine Liste von Schlüsselwörtern usw.) und diesen Eigenschaften Werte zuzuweisen. Diese Spezifikation definiert keinen normativen Satz von Eigenschaften.

Jedes META-Element spezifiziert ein Eigenschaft/Wert-Paar. Das name-Attribute identifiziert die Eigenschaft und das content-Attribut spezifiziert den Wert der Eigenschaft.

Zum Beispiel setzt die folgende Deklaration einen Wert für die Author-Eigenschaft:

<META name="Author" content="Dave Raggett">

Das lang-Attribut kann zusammen mit META verwendet werden, um die Sprache für den Wert des content-Attributs zu spezifizieren. Das gestattet Sprachsynthesizern sprachabhängige Ausspracheregeln anzuwenden.

In diesem Beispiel ist der Name des Autors als französisch deklariert:

<META name="Author" lang="fr" content="Arnaud Le Hors">

Anmerkung: Das META-Element ist ein allgemeiner Mechanismus zur Spezifizierung von Meta-Daten. Jedoch handhaben einige HTML-Elemente und -Attribute bereits bestimmte Teile von Meta-Daten und können von Autoren anstelle von META benutzt werden, um diese Teile zu spezifizieren: das TITLE-Element, das ADDRESS-Element, die Elemente INS und DEL, das title-Attribut und das cite-Attribut.

Anmerkung: Wenn eine durch ein META-Element spezifizierte Eigenschaft einen Wert annimmt, der ein URI ist, ziehen es manche Autoren vor, die Meta-Daten über das LINK-Element zu spezifizieren. So kann die folgende Deklaration von Meta-Daten:

<META name="DC.identifier"
      content="http://www.ietf.org/rfc/rfc1866.txt">

auch so geschrieben werden:

<LINK rel="DC.identifier"
         type="text/plain"
         href="http://www.ietf.org/rfc/rfc1866.txt">
META und HTTP-Header

Das http-equiv-Attribut kann anstelle des name-Attributs verwendet werden; es hat eine besondere Bedeutung, wenn Dokumente per Hypertext-Transfer-Protocol (HTTP) abgerufen werden. HTTP-Server können den durch http-equiv-Attribut spezifizierten Namen der Eigenschaft verwenden, um einen [RFC822]-Style-Header in der HTTP-Response zu erzeugen. Bitte lesen Sie die Details zu gültigen HTTP-Headern in der Spezifikation ([RFC2616]) nach.

Die folgende Beispiel-META-Deklaration:

<META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">

wird diesen HTTP-Header ergeben:

Expires: Tue, 20 Aug 1996 14:25:27 GMT

Caches können dies verwenden, um festzulegen, wann sie eine neue Kopie des zugehörigen Dokuments heranholen .

Anmerkung: Manche Benutzerprogramme unterstützen die Verwendung von META, um die aktuelle Seite nach einer festgelegten Anzahl von Sekunden zu erneuern -- mit der Option, sie durch einen anderen URI zu ersetzen. Autoren sollten diese Technik nicht benutzen, um Benutzer zu anderen Seiten weiterzuleiten, weil das die Seite für einige Benutzer unzugänglich macht. Statt dessen sollte automatische Weiterleitung durch den Einsatz serverseitiger Redirects realisiert werden.

Anmerkung der Übersetzer:

Ohne die vorhergehende Anmerkung übergehen zu wollen, sei folgender Hinweis gestattet: Eine serverseitige Umlenkung ist nicht für alle Autoren realisierbar. Wer seinen Server durch einen Web-Hosting-Anbieter betreiben lässt, hat unter Umständen keine Möglichkeit, auf die Server-Konfiguration zuzugreifen. Beispielsweise lässt sich der Apache durch Dateien mit dem Namen .htaccess in jedem Verzeichnis konfigurieren. Ohne eine solche Option bleibt nur die Verwendung eines Meta-Elements. Richtig eingesetzt lässt sich auch etwaiger Schaden vermeiden. Folgendes Beispiel zeigt eine Umlenkung per Meta-Element:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>de.comp.lang.javascript</title>
    <meta http-equiv="refresh" content="0; url=http://www.dcljs.de/">
 </head>
  <body bgcolor="white">
   <p>Die neue Heimat der JavaScript-FAQ befindet sich
   unter <a href="http://www.dcljs.de/">www.dcljs.de</a>.</p>
</body>
</html>

Das Meta-Element tritt hier an die Stelle des HTTP-Headers refresh. Nach null (0) Sekunden soll die neue Seite http://www.dcljs.de/ geladen werden. Falls ein Programm mit der Anweisung nichts anfangen kann, erklärt der Dokumentrumpf, dass sich die gesuchte Seite unter einer neuen Adresse befindet. Auf diese Art kann jeder mit der Information etwas anfangen.

META und Suchmaschinen

META wird häufig verwendet, um Schlüsselwörter anzugeben, die eine Suchmaschine zur Verbesserung der Qualität von Suchergebnissen nutzen kann. Wenn verschiedene META-Elemente sprchabhängige Informationen über ein Dokument anbieten, können Suchmaschinen anhand des lang-Attributs filtern, um Suchergebnisse gemäß den Sprachprioritäten des Benutzers anzuzeigen.
Zum Beispiel:

<!-- For speakers of US English -->
<META name="keywords" lang="en-us" 
         content="vacation, Greece, sunshine">
<!-- For speakers of British English -->
<META name="keywords" lang="en" 
         content="holiday, Greece, sunshine">
<!-- For speakers of French -->
<META name="keywords" lang="fr" 
         content="vacances, Gr&egrave;ce, soleil">

Die Effektivität von Suchmaschinen kann auch dadurch erhöht werden, dass das LINK-Element verwendet wird, um Links zu spezifizieren hin zu Übersetzungen des Dokuments in andere Sprachen, zu Versionen des Dokuments in anderen Formaten (z.B. PDF) und, wenn das Dokument Teil einer Sammlung ist, zu einem geeigneten Startpunkt zum Blättern in der Sammlung.

Mehr Hilfe bietet der Abschnitt »Suchmaschinen helfen, die eigene Website zu indexieren« im Anhang B.

META und PICS

Die Platform for Internet Content Selection (PICS, spezifiziert in [PICS]) ist eine Infrastruktur, um Kennzeichnungen (labels, Meta-Daten) mit Internet-Inhalt zu verbinden. Ursprünglich entworfen, um Eltern und Lehrern bei der Kontrolle zu helfen, was Kindern im Internet zugänglich gemacht wird, erleichtert sie auch andere Nutzungen von Kennzeichnungen, einschließlich Code-Signierung, Privatsphäre, Schutz von geistigem Eigentum (code signing, privacy, and intellectual property rights management).

Dieses Beispiel zeigt, wie man eine META-Deklaration dazu verwenden kann, eine PICS 1.1 Kennzeichnung einzubeziehen:

<HEAD>
 <META http-equiv="PICS-Label" content='
 (PICS-1.1 "http://www.gcf.org/v2.5"
    labels on "1994.11.05T08:15-0500"
      until "1995.12.31T23:59-0000"
      for "http://w3.org/PICS/Overview.html"
    ratings (suds 0.5 density 0 color/hue 1))
 '>
  <TITLE>... document title ...</TITLE>
</HEAD>
META und Standardinformationen

Das META-Element kann verwendet werden, um in folgenden Fällen die Standardinformation für ein Dokument zu spezifizieren:

Das folgende Beispiel gibt die Zeichenkodierung für ein Dokument mit ISO-8859-5 an

<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-5"> 

Meta-Daten-Profil 

Das profile-Attribut des HEAD gibt den Fundort eines Meta-Daten-Profils an. Der Wert des profile-Attributs ist ein URI. Benutzerprogramme können diesen URI auf zwei Arten benutzen:

Dieses Beispiel verweist auf ein hypothetisches Profil, das nützliche Eigenschaften zur Dokument-Indizierung definiert. Die Werte der durch dieses Profil definierten Eigenschaften -- das sind »author«, »copyright«, »keywords« und »date« -- werden nachträglich durch META-Deklarationen gesetzt.

 <HEAD profile="http://www.acme.com/profiles/core">
  <TITLE>How to complete Memorandum cover sheets</TITLE>
  <META name="author" content="John Doe">
  <META name="copyright" content="&copy; 1997 Acme Corp.">
  <META name="keywords" content="corporate,guidelines,cataloging">
  <META name="date" content="1994-11-06T08:49:37+00:00">
 </HEAD>

Während diese Spezifikation geschrieben wird, ist es gängige Praxis, die in in [RFC2616], Abschnitt 3.3. beschriebenen Datums-Formate zu verwenden. Weil diese Formate relativ schwer zu verarbeiten sind, empfehlen wir Autoren, das [ISO8601]-Datums-Format zu benutzen. Mehr Informationen finden Sie in Abschnitt 9.4 zum INS- und DEL-Element.

Das scheme-Attribut erlaubt Autoren, Benutzerprogrammen mehr Kontext für die korrekte Interpretation von Meta-Daten anzubieten. Gelegentlich kann so eine Zusatzinformation kritisch sein, nämlich dann, wenn Meta-Daten in unterschiedlichen Formaten spezifiziert sein können. Zum Beispiel könnte ein Autor ein Datum im (nicht eindeutigen) Format »10-9-97« spezifizieren. Ist damit der 9. Oktober 1997 oder der 10. September 1997 gemeint? Der Wert »Month-Day-Year« des scheme-Attributs würde die Mehrdeutigkeit des Datums-Wertes vermeiden.

Bei anderen Gelegenheiten kann das scheme-Attribut dem Benutzerprogramm hilfreiche, aber unkritische Informationenin bieten.

Zum Beispiel kann die folgende scheme-Deklaration Benutzerprogrammen helfen, festzustellen, dass es sich bei dem Wert der »identifier«-Eigenschaft um einen ISBN-Code handelt:

<META scheme="ISBN"  name="identifier" content="0-8230-2355-9">

Die Werte eines scheme-Attributs sind abhängig der name-Eigenschaft und dem zugehörigen Profile.

Anmerkung: Ein Beispiel für ein Profil ist das Dublin Core (siehe [DCORE]). Dieses Profil definiert einen Satz empfohlener Eigenschaften, bibliografische Beschreibungen in elektronischer Form und ist dafür vorgesehen. die Interoperabilität zwischen unterschiedlichen Beschreibungsmodellen zu fördern.

7.5 Der Dokumentrumpf

7.5.1 Das BODY-Element

<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
<!ATTLIST BODY
  %attrs;                              -- %coreattrs, %i18n, %events --
  onload          %Script;   #IMPLIED  -- the document has been loaded --
  onunload        %Script;   #IMPLIED  -- the document has been removed --
  >

Start-Tag: optional, End-Tag: optional

Attributdefinitionen

background = uri [CT]
Missbilligt. Der Wert dieses Attributs ist ein URI, der auf eine Graphik-Ressource (image) zeigt. Die Graphik wird im Allgemeinen als Hintergrund gekachelt (in visuellen Browsern).
text = color [CI]
Missbilligt. Dieses Attribut legt die Vordergrundfarbe des Textes (für visuelle Browser) fest.
link = color [CI]
Missbilligt. Dieses Attribut legt die Textfarbe noch nicht besuchter Hyperlinks (für visuelle Browser) fest.
vlink = color [CI]
Missbilligt. Dieses Attribut legt die Textfarbe besuchter Hyperlinks (für visuelle Browser) fest.
alink = color [CI]
Missbilligt. Dieses Attribut legt die Textfarbe von Hyperlinks für den Moment fest, in dem sie ausgewählt sind (für visuelle Browser).

An anderer Stelle definierte Attribute

Der Rumpf eines Dokuments enthält den Inhalt des Dokuments. Ein Benutzerprogramm kann den Inhalt auf unterschiedlichste Art präsentieren. Für visuelle Browser zum Beispiel kann man sich den Rumpf als Leinwand vorstellen, auf der der Inhalt erscheint: Text, Bilder, Farben, graphische Darstellungen usw. Für akustische Benutzerprogramme kann derselbe Inhalt gesprochen werden. Inzwischen sind Stylesheets die bevorzugte Art, die Erscheinung eines Dokuments zu bestimmen, deswegen wurden die auf die Präsentation gerichtete Attribute für BODYmissbilligt.

MISSBILLIGTES BEISPIEL:
Das folgende HTML-Fragment zeigt die Verwendung der missbilligten Attribute. Es setzt die Hintergrundfarbe der Zeichenfläche auf Weiß, die Vordergrundfrabe des Textes auf Schwarz und die Farbe der Hyperlinks zunächst auf Rot, für den Moment der Aktivierung auf Fuchsia und auf Maroon, wenn erst einmal besucht.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
 <TITLE>Eine Studie der Entwicklung der Population</TITLE>
</HEAD>
<BODY bgcolor="white" text="black"
  link="red" alink="fuchsia" vlink="maroon">
  ... Dokumentrumpf ...
</BODY>
</HTML>

Mit Hilfe von Stylesheets könnte derselbe Effekt folgendermaßen erreicht werden:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
 <TITLE>Eine Studie der Entwicklung der Population</TITLE>
 <STYLE type="text/css">
  BODY { background: white; color: black}
  A:link { color: red }
  A:visited { color: maroon }
  A:active { color: fuchsia }
 </STYLE>
</HEAD>
<BODY>
  ... Dokumentrumpf ...
</BODY>
</HTML>

Die Verwendung externer (linked) Stylesheets gibt Ihnen die Flexibilität, die Darstellung ohne Überarbeitung des Ursprungs-HTML-Dokuments zu ändern:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
 <TITLE>Eine Studie der Entwicklung der Population</TITLE>
 <LINK rel="stylesheet" type="text/css" href="smartstyle.css">
</HEAD>
<BODY>
  ... Dokumentrumpf ...
</BODY>
</HTML>

Framesets und HTML-Rümpfe: Dokumente, die Framesets enthalten, ersetzen das BODY-Element durch das FRAMESET-Element. Mehr Informationen finden Sie im Abschnitt über Frames.

7.5.2 Element-Identifikatoren: das id- und das class-Attribut

Attributdefinitionen

id = name [CS]
Dieses Attribut ordnet dem Element einen Namen zu. Innerhalb des Dokuments muss dieser Name eindeutig sein.
class = cdata-list [CS]
Dieses Attribut ordnet einem Element einen Klassennamen oder einen Satz von Klassennamen zu. Dem- oder denselben Klassennamen kann eine beliebige Anzahl von Elementen zugeordnet werden. Multiple Klassennamen müssen durch Leerzeichen voneinander getrennt werden.

Das id-Attribut ordnet einem Element einen eindeutigen Identifikator zu (der durch einen SGML-Parser verifiziert werden kann). Zum Beispiel unterscheiden sich die folgenden Absätze durch ihre id-Werte:

<P id="myparagraph">Das ist ein eindeutig benannter Absatz.</P>
<P id="yourparagraph">Das ist ebenfalls ein eindeutig benannter Absatz.</P>

Das id-Attribute spielt in HTML verschiedene Rollen:

Anmerkung der Übersetzer:

Das id-Attribut wird sehr häufig verwendet, um Elemente per Skript anzusprechen. Gibt man dem Bild vom Klassentreffen von oben eine id, kann man zum Beispiel mit Hilfe von JavaScript den Wert seines title-Attributs anzeigen lassen.

<img src="klassentreffen.jpg" 
     id="foto" 
     alt="Foto vom Klassentreffen"
     title="Klassentreffen am 15.06.2002, 
            festgehalten von Peter Meier">
<form>
<input type="button" value="Bildtitel zeigen" 
       onclick="alert(document.getElementById('foto').title)">
</form>

Das class-Attribut auf der anderen Seite ordnet einem Element einen oder mehrere Klassen-Namen zu; das Element soll damit zu diesen Klassen gehören. Ein Klassen-Name kann von mehreren Elementen benutzt werden. In HTML spielt das class-Attribut verschiedene Rollen:

Im folgenden Beispiel wird das SPAN-Element zusammen mit dem id- und dem class-Attribut zur Auszeichnung von Meldungen im Dokument benutzt. Die Nachrichten erscheinen sowohl in englischer als auch in deutscher Version.

<!-- English messages -->
<P><SPAN id="msg1" class="info" lang="en">Variable declared twice</SPAN>
<P><SPAN id="msg2" class="warning" lang="en">Undeclared variable</SPAN>
<P><SPAN id="msg3" class="error" lang="en">Bad syntax for variable name</SPAN>
<!-- Deutsche Meldungen -->
<P><SPAN id="msg1" class="info" lang="de">Variable zweimal deklariert</SPAN>
<P><SPAN id="msg2" class="warning" lang="de">Nicht deklarierte Variable</SPAN>
<P><SPAN id="msg3" class="error" lang="de">Falsche Syntax fü Variablennamen</SPAN>

Die folgenden CSS-Style-Vorgaben würden visuellen Benutzerprogrammen sagen, dass sie informelle Meldungen grün, Warnungen gelb und Fehlermeldungen rot anzeigen sollen:

SPAN.info    { color: green }
SPAN.warning { color: yellow }
SPAN.error   { color: red }

Beachten Sie, dass das deutsche »msg1« und das englische »msg1« nicht im selben Dokument erscheinen können, da sie denselben id-Wert haben. Vom id-Attribut können Autoren außerdem Gebrauch machen, um die Präsentation individueller Meldungen zu verfeinern, sie zu Zielankern zu machen usw.

Fast jedem HTML-Element können Identifikator und Klasseninformation zugeordnet werden.

Stellen Sie sich zum Beispiel vor, dass wir ein Dokument über eine Programmiersprache erstellen. In das Dokument ist eine Anzahl formatierter (preformatted) Beispiele aufzunehmen. Zur Formatierung der Beispiele verwenden wir das PRE-Element. Darüber hinaus weisen wir allen Instanzen des PRE-Elements, die zur Klasse »example« gehören, eine Hintergrundfarbe (green) zu.

<HEAD>
<TITLE>... Dokumenttitel ...</TITLE>
<STYLE type="text/css">
PRE.example { background : green }
</STYLE>
</HEAD>
<BODY>
<PRE class="example" id="example-1">
... Code ...
</PRE>
</BODY>

Durch Setzen des id-Attributs für dieses Beispiel können wir (1) einen Hyperlink darauf erzeugen und (2) Formatierungsinformationen der Klasse durch Formatierungsinformationen für die Instanz überschreiben.

Anmerkung: Das id-Attribut benutzt denselben Namensraum wie das name-Attribut, wenn es für Ankernamen verwendet wird. Im Abschnitt 12.2.3, »Anker mit id-Attribut« finden Sie mehr Informationen.

7.5.3 Elemente auf Blockebene und inzeilige Elemente (Block-Level/Inline)

Bestimmte HTML-Elemente, die im BODY erscheinen können, werden »Blockelemente« (block-level) genannt, während andere »inzeilig« sind (Inline; auch bekannt als »text-level«). Die Unterscheidung basiert auf mehreren Gedanken.

Inhalts-Modell (content model)
Im Allgemeinen können Block-Elemente inzeilige (inline) Elemente und andere Block-Elemente und inzeilige Elemente nur Daten und andere inzeilige Elemente enthalten. In dieser strukturellen Unterscheidung ist die Idee enthalten, dass Block-Elemente »größere« Strukturen schaffen als inzeilige Elemente.
Formatierung
Standardmäßig werden Block-Elemente anders formatiert als inzeilige. Im Allgemeinen beginnen Block-Elemente in einer neuen Zeile, Inzeilige Elemente tun das nicht. Informationen über Leerräume, Zeilenumbrüche und Block-Formatierungen finden Sie in Abschnitt 9, »Text«.
Schreibrichtung
Aus technischen Gründen, einer davon ist der [UNICODE]-Bidirektional-Textalgorithmus, unterscheiden sich Block- und inzeilige Elemente darin, wie sie Information über die Leserichtung vererben. Details dazu finden Sie in Abschnitt 8.2.2, »Vererbung von Informationen zur Leserichtungen«.

Stylesheets stellen Werkzeuge zur Verfügung, die Wiedergabe beliebiger Elemente zu spezifizieren, unter anderem auch, ob ein Element als Block oder inzeilig dargestellt wird. In manchen Fällen, wie etwa die inzeilige Darstellung von Listenelementen, kann das angemessen sein, allgemein wird Autoren jedoch davon abgeraten, die konventionelle Interpretation von HTML-Elementen auf diese Art zu überschreiben.

Die Änderung traditioneller Präsentationsgepflogenheiten für Block- und Inline-Elemente hat auch starke Auswirkungen auf den Bidirektional-Textalgorithmus. Mehr Informationen finden Sie in Abschnitt 8.2.6, »Die Wirkung von Stylesheets auf die Bidirektionalität«.

7.5.4 Gruppierung von Elementen: das DIV- und das SPAN-Element

<!ELEMENT DIV - - (%flow;)*            -- generic language/style container -->
<!ATTLIST DIV
  %attrs;                              -- %coreattrs, %i18n, %events --
  >
<!ELEMENT SPAN - - (%inline;)*         -- generic language/style container -->
<!ATTLIST SPAN
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

Start-Tag: erforderlich, End-Tag: erforderlich

An anderer Stelle definierte Attribute

Das DIV- und das SPAN-Element bieten zusammen mit dem id- und dem class-Attribute einen allgemeinen Mechanismus, Dokumenten Struktur hinzuzufügen. Diese Elemente definieren Inhalt als inzeilige (SPAN) oder Block-Elemente (DIV), erlegen dem Inhalt aber keine anderen Darstellungsvorgaben auf. So können Autoren diese Elemente zusammen mit Stylesheets, dem lang-Attribut usw. dafür verwenden, HTML auf ihre eigenen Bedürfnisse und ihren Geschmack zuzuschneiden.

Nehmen wir zum Beispiel an, dass wir basierend auf einer Datenbank mit Client-Informationen ein HTML-Dokument generieren wollten. Da HTML keine Elemente zur Identifikation solcher Objekte wie »Client«, »Telefonnummer«, »Mailadresse« usw. enthält, benutzen wir DIV und SPAN, um die gewünschten Strukturierungs- und Präsentationsergebnisse zu erzielen. Um die Information zu strukturieren, könnten wir das TABLE-Element wie folgt verwenden:

<!-- Example of data from the client database: -->
<!-- Name: Stephane Boyera, Tel: (212) 555-1212, Email: sb@foo.org -->

<DIV id="client-boyera" class="client">
<P><SPAN class="client-title">Client information:</SPAN>
<TABLE class="client-data">
<TR><TH>Last name:<TD>Boyera</TR>
<TR><TH>First name:<TD>Stephane</TR>
<TR><TH>Tel:<TD>(212) 555-1212</TR>
<TR><TH>Email:<TD>sb@foo.org</TR>
</TABLE>
</DIV>

<DIV id="client-lafon" class="client">
<P><SPAN class="client-title">Client information:</SPAN>
<TABLE class="client-data">
<TR><TH>Last name:<TD>Lafon</TR>
<TR><TH>First name:<TD>Yves</TR>
<TR><TH>Tel:<TD>(617) 555-1212</TR>
<TR><TH>Email:<TD>yves@coucou.com</TR>
</TABLE>
</DIV>

Für das Finetuning der Präsentation der Datenbankeinträge können wir später einfach Stylesheet-Deklarationen hinzufügen.

Ein weiteres Anwendungsbeispiel finden Sie weiter oben im Abschnitt über die Attribute class und id.

Visuelle Benutzerprogramme fügen im Allgemeinen vor und nach dem DIV-Element einen Zeilenumbruch ein, zum Beispiel ist für

<P>aaaaaaaaa<DIV>bbbbbbbbb</DIV><DIV>ccccc<P>ccccc</DIV>

eine typische Darstellungsform:

aaaaaaaaa
bbbbbbbbb
ccccc

ccccc

7.5.5 Überschriften: Die Elemente H1, H2, H3, H4, H5, H6

<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
<!--
  There are six levels of headings from H1 (the most important)
  to H6 (the least important).
-->

<!ELEMENT (%heading;)  - - (%inline;)* -- heading -->
<!ATTLIST (%heading;)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

Start-Tag: erforderlich, End-Tag: erforderlich

An anderer Stelle definierte Attribute

Ein Überschrift-Element beschreibt kurz das Thema des Abschnittes, den es eröffnet. Überschrifftsinformatioen können von Benutzerprogrammen zum Beispiel dafür verwendet werden, für ein Dokument automatisch ein Inhaltsverzeichnis zu erstellen.

In HTML gibt es sechs Überschriftebenen, von denen H1 die oberste und H6 die unterste ist. Visuelle Benutzerprogramme stellen wichtigere Überschriften meist in größerer Schrift dar als weniger wichtige.

Das folgende Beispiel zeigt, wie man das DIV-Element einsetzt, um die Überschrift mit dem darauffolgenden Abschnitt des Dokuments zu verbinden. Dieses Vorgehen ermöglicht es Ihnen, für den Abschnitt mit Hilfe von Stylesheets einen Stil (style) zu definieren (dem Hintergrund eine Farbe zu geben, die Schriftart festzulegen usw.).

<DIV class="section" id="forest-elephants" >
<H1>Forest elephants</H1>
<P>In this section, we discuss the lesser known forest elephants.
...this section continues...
<DIV class="subsection" id="forest-habitat" >
<H2>Habitat</H2>
<P>Forest elephants do not live in trees but among them.
...this subsection continues...
</DIV>
</DIV>

Diese Struktur kann wie folgt mit Formatierungsinformationen ausgestattet werden:

<HEAD>
<TITLE>... document title ...</TITLE>
<STYLE type="text/css">
DIV.section { text-align: justify; font-size: 12pt}
DIV.subsection { text-indent: 2em }
H1 { font-style: italic; color: green }
H2 { color: green }
</STYLE>
</HEAD>

Numerierte Abschnitte und Referenzen
HTML selbst bewirkt nicht, dass Abschnittsnummern aus Überschriften generiert werden. Diese Möglichkeit kann jedoch von Benutzerprogrammen angeboten werden. Bald werden Stylesheet-Sprachen wie CSS es Autoren erlauben, die Generierung von Abschnittsnummern zu steuern (nützlich für Vorwärts-Referenzen in gedruckten Dokumenten wie z.B. »siehe Abschnitt 7.2«).

Manche werten das Überspringen von Überschriftsebenen als schlechten Stil. Sie akzeptieren H1 H2 H1, aber nicht H1 H3 H1, weil die Überschriftsebene H2 übersprungen wird.

7.5.6 Das ADDRESS-Element

<!ELEMENT ADDRESS - - (%inline;)* -- information on author -->
<!ATTLIST ADDRESS
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

Start-Tag: erforderlich, End-Tag: erforderlich

An anderer Stelle definierte Attribute

Autoren können das ADDRESS-Element benutzen, um Kontaktinformationen für ein Dokument oder für einen bedeutenden Teil eines Dokuments, wie zum Beispiel ein Formular, bereitzustellen. Dieses Element erscheint oft am Anfang oder Ende eines Dokuments.

Zum Beispiel könnte eine Seite der Website des W3C, die Bezug hat zu HTML, die folgende Kontaktinformation enthalten:

<ADDRESS>
<A href="../People/Raggett/">Dave Raggett</A>, 
<A href="../People/Arnaud/">Arnaud Le Hors</A>, 
contact persons for the <A href="Activity">W3C HTML Activity</A><BR> 
$Date: 1999/12/24 23:07:14 $
</ADDRESS>