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
Inhaltsverzeichnis
Die Multimedia-Eigenschaften von HTML gestatten Autoren die Einbindung von Bildern, Applets (Programme, die automatisch heruntergeladen und auf dem Rechner des Benutzers ausgeführt werden), Videoclips und anderen HTML-Dokumenten in ihre Seiten.
Um zum Beispiel eine PNG-Graphik in ein Dokument einzubetten, können Autoren schreiben:
<BODY> <P>Hier ist eine Großaufnahme des Grand Canyon: <OBJECT data="canyon.png" type="image/png"> Dies ist eine <EM>Großaufnahme</EM> des Grand Canyon. </OBJECT> </BODY>
Frühere Versionen von HTML gestatteten Autoren die Einbindung von Bildern (über IMG) und Applets (über APPLET). Diese Elemente haben mehrere Einschränkungen:
Um diese Probleme anzugehen, führt HTML 4 das Element OBJECT ein, das eine universelle Lösung für die allgemeine Objekteinbindung anbietet. Das OBJECT-Element erlaubt HTML-Autoren, alle für die Darstellung im Benutzerprogramm erforderlichen Informationen des Objekts anzugeben: Quelltext, Anfangswerte und Laufzeitdaten. In dieser Spezifikation wird der Begriff »Objekt« in dem Sinn verwendet, dass er alle Dinge beschreibt, die jemand in einem HTML-Dokument unterbringen möchte; andere allgemein verwendete Begriffe für diese Dinge sind: Applets, Plug-Ins, Medien-Handler usw.
Das neue Element OBJECT übernimmt so einige Aufgaben, die von bestehenden Elementen ausgeführt werden. Stellen Sie sich die folgenden Funktionalitäten vor:
Art der Einbindung | Spezielles Element | Allgemeines Element |
---|---|---|
Bild | IMG | OBJECT |
Applet | APPLET(Missbilligt.) | OBJECT |
Ein weiteres HTML-Dokument | IFRAME | OBJECT |
Die Tabelle zeigt, dass jede Art der Einbindung eine spezielle und eine allgemeine Lösung hat. Das allgemeine Element OBJECT wird als Lösung für die Implementierung zukünftiger Medientypen fungieren.
Zur Einbindung von Bildern können Autoren das Element OBJECT oder das Element IMG verwenden.
Zur Einbindung von Applets sollten Autoren das Element OBJECT verwenden, weil das APPLET-Element missbilligt wird.
Zur Einbindung eines HTML-Dokuments in ein anderes, können Autoren entweder das neue Element IFRAME oder das Element OBJECT verwenden. In beiden Fällen bleibt das eingebettete Dokument unabhängig vom Hauptdokument. Visuelle Benutzerprogramme können das eingeschlossene Dokument in einem separaten Fenster innerhalb des Hauptdokuments darstellen. Bitte lesen Sie zum Vergleich zwischen OBJECT und IFRAME in Bezug auf die Dokumenteinbindung die »Anmerkungen zu eingebetteten Dokumenten« weiter unten.
Bilder und andere eingebundene Objekte können mit ihnen verbundene Hyperlinks haben, beide durch den Standard-Link-Mechanismus, aber auch über Imagemaps. Eine Imagemap gibt aktive geometrische Bereiche eines eingebetteten Objekts an und verbindet jeden Bereiche mit einem Link. Bei ihrer Aktivierung können diese Links den Empfang eines Dokuments veranlassen, ein Programm auf dem Server starten usw.
In den folgenden Abschnitten behandeln wir die verschiedenen Mechanismen, die Autoren für die Multimedia-Einbindung und zum Erstellen von Imagemaps dafür zur Verfügung haben.
<!-- To avoid problems with text-only UAs as well as to make image content understandable and navigable to users of non-visual UAs, you need to provide a description with ALT, and avoid server-side image maps --> <!ELEMENT IMG - O EMPTY -- Embedded image --> <!ATTLIST IMG %attrs; -- %coreattrs, %i18n, %events -- src %URI; #REQUIRED -- URI of image to embed -- alt %Text; #REQUIRED -- short description -- longdesc %URI; #IMPLIED -- link to long description (complements alt) -- name CDATA #IMPLIED -- name of image for scripting -- height %Length; #IMPLIED -- override height -- width %Length; #IMPLIED -- override width -- usemap %URI; #IMPLIED -- use client-side image map -- ismap (ismap) #IMPLIED -- use server-side image map -- >
Start-Tag: erforderlich, End-Tag: verboten
Attributdefinitionen
longdesc
-Quelle des
ersteren von dem Mechanismus für den Zugriff auf die href-Quelle des letzteren
unterscheiden.An anderer Stelle definierte Attribute
Das IMG-Element bettet ein Bild an der Stelle in das aktuelle Dokument ein, an der die Elementdefinition zu finden ist. Das IMG-Element hat keinen Inhalt; es wird im Allgemeinen im Textfluss (inline) durch das Bild ersetzt, das vom src-Attribut angegeben wird. Eine Ausnahme besteht für links oder rechts ausgerichtete Bilder, die aus dem Textfluss herausfließen.
In einem früheren Beispiel haben wir einen Verweis zu einem Familienfoto definiert. Hier fügen wir das Foto direkt in das aktuelle Dokument ein:
<BODY> <P>Ich komme gerade aus dem Urlaub nach Hause! Hier ist ein Foto meiner Familie am See: <IMG src="http://www.somecompany.com/People/Ian/vacation/family.png" alt="Ein Foto meiner Familie am See."> </BODY>
Diese Einbindung könnte auch mit dem OBJECT-Element wie folgt geschehen:
<BODY> <P>Ich komme gerade aus dem Urlaub nach Hause! Hier ist ein Foto meiner Familie am See: <OBJECT data="http://www.somecompany.com/People/Ian/vacation/family.png" type="image/png"> Ein Foto meiner Familie am See. </OBJECT> </BODY>
Das Attribut alt gibt alternativen Text an, der dargestellt wird, wenn das Bild nicht angezeigt werden kann (mehr Informationen finden sie in Abschnitt »Wie alternativer Text angegeben wird« weiter unten). Benutzerprogramme müssen alternativen Text darstellen, wenn sie keine Bilder unterstützen, bestimmte Bildtypen nicht unterstützen oder wenn sie so konfiguriert sind, dass sie Bilder nicht anzeigen.
Das folgende Beispiel zeigt, wie das longdesc-Attribut verwendet werden kann, um auf eine ausführlichere Beschreibung zu verweisen:
<BODY> <P> <IMG src="sitemap.gif" alt="HP Labs Site Map" longdesc="sitemap.html"> </BODY>
Anmerkung der Übersetzer:
Eine Möglichkeit, auf solch eine Beschreibung zu verweisen, zeigt das folgende Bild (hier das Eigenschaftsfenster eines Bildes in Mozilla).
Das alt-Attribut liefert eine kurze Beschreibung des Bildes. Diese sollte ausreichend sein, um Benutzern die Entscheidung zu ermöglichen, ob sie dem von longdesc-Attribut angegebenen Link auf die längere Beschreibung folgen möchten, in diesem Fall sitemap.html.
Bitte lesen Sie in Abschnitt »Visuelle Darstellung von Objekten, Bildern und Applets« die Informationen über Bildgröße, Ausrichtung und Rahmen.
<!ELEMENT OBJECT - - (PARAM | %flow;)* -- generic embedded object --> <!ATTLIST OBJECT %attrs; -- %coreattrs, %i18n, %events -- declare (declare) #IMPLIED -- declare but don't instantiate flag -- classid %URI; #IMPLIED -- identifies an implementation -- codebase %URI; #IMPLIED -- base URI for classid, data, archive-- data %URI; #IMPLIED -- reference to object's data -- type %ContentType; #IMPLIED -- content type for data -- codetype %ContentType; #IMPLIED -- content type for code -- archive CDATA #IMPLIED -- space-separated list of URIs -- standby %Text; #IMPLIED -- message to show while loading -- height %Length; #IMPLIED -- override height -- width %Length; #IMPLIED -- override width -- usemap %URI; #IMPLIED -- use client-side image map -- name CDATA #IMPLIED -- submit as part of form -- tabindex NUMBER #IMPLIED -- position in tabbing order -- >
Start-Tag: erforderlich, End-Tag: erforderlich
Attributdefinitionen
An anderer Stelle defnierte Attribute
Die meisten Benutzerprogramme haben einen eingebauten Mechanismus zur Darstellung von allgemeinen Datentypen, dazu gehören Text, GIF-Bilder, Farben, Schriftarten und eine Handvoll graphischer Elemente. Um Datentypen darzustellen, die sie nicht nativ unterstützen, verwenden Benutzerprogramme im Allgemeinen externe Anwendungen. Das Element OBJECT gestattet dem Autor die Kontrolle darüber, ob Daten extern dargestellt werden sollen oder durch ein vom Autor angegebenes Programm, das Daten innerhalb eines Benutzerprogramms anzeigt.
Im allgemeinsten Fall hat ein Autor drei Infromationstypen anzugeben:
Das Element OBJECT gestattet zwar Autoren die Angabe aller drei Datentypen, jedoch müssen Autoren nicht unbedingt alle drei Angaben zugleich machen. Zum Beispiel benötigen einige Objekte vielleicht keine Daten (z.B. ein in sich geschlossenes Applet, das eine kurze Animation zeigt). Andere benötigen eventuell keine Laufzeitinitialisierung. Wieder andere benötigen möglicherweise keine zusätzlichen Implementierungsinformationen, z.B. kann das das Benutzerprogramm selbst schon wissen, wie dieser Datentyp darzustellen ist (z.B. GIF-Bilder).
Autoren geben eine Objektimplementierung und den Ort der darzustellenden Daten über das OBJECT-Element an. Um Laufzeitwerte anzugeben, verwenden Autoren jedoch das Element PARAM, das im Abschnitt »Objektinitialisierung« erörtert wird.
Das OBJECT-Element kann auch im Inhalt des Elements HEAD stehen. Weil Benutzerprogramme im Allgemeinen Elemente im HEAD nicht darstellen, sollten Autoren sicherstellen, dass kein OBJECT-Element im HEAD Inhalt angibt, der dargestellt werden kann. Bitte lesen Sie unter »Daten teilen mit anderen Frames« im Abschnitt 16.2.1 nach, dort findet sich ein Beispiel für die Einbindung des OBJECT-Elements in das HEAD-Element.
Bitte lesen Sie den Abschnitt 17.2, »Steuerelemente«, dort finden Sie Informationen über OBJECT-Elemente in Formularen.
Dieses Dokument spezifiziert nicht das das Verhalten von OBJECT-Elementen, die sowohl das Attribut classid zur Identifizierung einer Implementierung als auch das Attribut data zur Angabe von Daten für diese Implementierung verwenden. Um für Portabilität zu sorgen, sollten Autoren das Element PARAM verwenden, um Implementierungen mitzuteilen, woher sie zusätzliche Daten beziehen können.
Benutzerprogramme müssen ein OBJECT-Element entsprechend der folgenden Rangfolge interpretieren:
Autoren sollten keinen Inhalt in OBJECT-Elemente einschließen, die im HEAD-Element stehen.
Im folgenden Beispiel fügen wir das Applet einer analogen Uhr in ein Dokument über das OBJECT-Element ein. Das in der Sprache Python geschriebene Applet benötigt keine weiteren Daten oder Laufzeitwerte. Das Attribut classid gibt den Ort des Applets an:
<P><OBJECT classid="http://www.miamachina.it/analoguhr.py"> </OBJECT>
Beachten Sie, dass die Uhr dargestellt wird, sobald das Benutzerprogramm diese OBJECT-Deklaration interpretiert. Es ist möglich, die Darstellung eines Objekts zu verzögern, indem man das Objekt zuerst deklariert (weiter unten beschrieben).
Autoren sollten diese Deklaration durch Angabe eines alternativen Textes im Inhalt des OBJECT-Elements vervollständigen, falls das Benutzerprogramm die Uhr nicht anzeigen kann.
<P><OBJECT classid="http://www.miamachina.it/analoguhr.py"> Eine animierte Uhr. </OBJECT>
Eine signifikante Konsequenz des Aufbaus des OBJECT-Elements ist, dass er einen Mechanismus bietet, alternative Objektdarstellungen anzugeben; jede eingebettete OBJECT-Deklaration kann alternative Inhaltstypen deklarieren. Kann ein Benutzerprogramm das äußere OBJECT nicht darstellen, versucht es, den Inhalt darzustellen, der wiederum ein OBJECT-Element sein kann, usw.
Im folgenden Beispiel betten wir meherere OBJECT-Deklarationen ein, um zu zeigen, wie die alternative Darstellung funktioniert. Ein Benutzerprogramm wird versuchen, das erste OBJECT-Element darzustellen, das es kann, und zwar in der folgenden Reihenfolge: (1) Ein in der Sprache Python geschriebenes Erde-Applet, (2) eine MPEG-Animation der Erde, (3) ein GIF-Bild der Erde, (4) alternativen Text.
<P> <!-- Zuerst versuche das Python-Applet --> <OBJECT title="Die Erde vom All aus betrachtet" classid="http://www.observer.mars/DieErde.py"> <!-- Sonst, versuche das MPEG-Video --> <OBJECT data="TheEarth.mpeg" type="application/mpeg"> <!-- Sonst, versuche das GIF-Bild --> <OBJECT data="TheEarth.gif" type="image/gif"> <!-- Sonst stelle den Text dar --> Die <STRONG>Erde</STRONG> aus dem All betrachtet. </OBJECT> </OBJECT> </OBJECT>
Die äußere Deklaration gibt ein Applet an, das keine Daten oder Anfangswerte erfordert. Die zweite Deklaration gibt eine MPEG-Animation an, und weil sie keinen Ort für eine Implementierung definiert, die MPEG verarbeitet, liegt die Vorgehensweise in Bezug auf die Animation beim Benutzerprogramm. Wir geben auch das type-Attribut an, so dass ein Benutzerprogramm sich nicht bemühen wird, die Datei »TheEarth.mpeg« aus dem Netz zu laden, wenn ihm bekannt ist, dass es MPEG nicht darstellen kann. Die dritte Deklaration gibt den Ort einer GIF-Datei an und liefert einen alternativen Text, falls alle anderen Mechanismen versagen.
Interne gegen externe Daten. Darzustellende Daten können auf zwei Arten zur Verfügung gestellt werden: intern und aus externen Quellen. Während die erstgenannte Methode im Allgemeinen zu einer schnelleren Darstellung führt, ist sie nicht praktisch, wenn größere Datenmengen dargestellt werden.
Hier folgt ein Beispiel, das zeigt, wie ein OBJECT intern mit Daten gefüttert werden kann:
<P> <OBJECT id="uhr1" classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502" data="data:application/x-oleobject;base64, ...base64-Daten..."> Eine Uhr. </OBJECT>
Bitte lesen sie den Abschnitt »Visuelle Darstellung von Objekten, Bildern und Applets«. Hier finden Sie Informationen zu Objektgröße, -ausrichtung und Rahmen.
<!ELEMENT PARAM - O EMPTY -- named property value --> <!ATTLIST PARAM id ID #IMPLIED -- document-wide unique id -- name CDATA #REQUIRED -- property name -- value CDATA #IMPLIED -- property value -- valuetype (DATA|REF|OBJECT) DATA -- How to interpret value -- type %ContentType; #IMPLIED -- content type for value when valuetype=ref -- >
Start-Tag: erforderlich, End-Tag: verboten
Attributdefinitionen
ref
angegeben ist. Dieses Attribut gibt so den Typ der Werte für
das Benutzerprogramm an, die unter dem URI gefunden werden, der von
value angegeben ist.An anderer Stelle definierte Attribute
PARAM-Elemente geben eine Wertemenge an, die von einem Objekt zur Laufzeit benötigt werden kann. Eine beliebige Anzahl von PARAM-Elementen kann im Inhalt der Elemente OBJECT oder APPLET in jeder erdenklichen Reihenfolge erscheinen, jedoch müssen sie zu Beginn des Inhalts der einschließenden Elemente OBJECT oder APPLET stehen.
Es wird angenommen, dass die Syntax der Namen und Werte von der Implementierung des Objekts verstanden wird. Dieses Dokument gibt weder an, wie Benutzerprogramme die Name/Wert-Paare empfangen sollen, noch wie sie doppelt erscheinende Parameternamen interpretieren sollen.
Kehren wir zum Uhr-Beispiel zurück, um die Verwendung des PARAM-Elements zu verdeutlichen: Nehmen Sie an, dass ein Applet in der Lage ist, zwei Laufzeitparameter zu verarbeiten, die dessen Anfangshöhe und -breite definieren. Wir können die Anfangsabmessung mit zwei PARAM-Elementen auf 40x40 Pixel festlegen.
<P><OBJECT classid="http://www.miamachina.it/analoguhr.py"> <PARAM name="height" value="40" valuetype="data"> <PARAM name="width" value="40" valuetype="data"> Dieses Benutzerprogramm kann keine Python-Anwendungen darstellen. </OBJECT>
Im folgenden Beispiel werden Laufzeitdaten für den
Objektparameter Init_values
als externe Quelle (eine
GIF-Datei) angegeben. Der Wert des Attributs valuetype wird folglich auf »ref«
gesetzt, und value ist ein URI, der die
Quelle angibt.
<P><OBJECT classid="http://www.gifstuff.com/gifappli" standby="Elvis wird geladen ..."> <PARAM name="Init_values" value="./images/elvis.gif"> valuetype="ref"> </OBJECT>
Beachten Sie, dass wir das standby-Attribut so angegeben haben, dass ein Benutzerprogramm eine Nachricht einblenden kann, solange der Darstellungsmechanismus geladen wird.
Wird ein OBJECT-Element dargestellt, müssen Benutzerprogramme den Inhalt nur nach PARAM-Elementen durchsuchen, die direkte Kinder sind und das OBJECT damit »füttern«.
Daraus abgeleitet gilt für das folgende Beispiel, dass »param1« für »obj1« (und nicht für »obj2«) gilt, wenn »obj1« dargestellt wird. Wird »obj1« nicht dargestellt, jedoch »obj2«, dann wird »param1« ignoriert und »param2« gilt für »obj2«. Wird keines der beiden OBJECT-Elemente dargestellt, gilt auch keines der beiden PARAM-Elemente.
<P> <OBJECT id="obj1"> <PARAM name="param1"> <OBJECT id="obj2"> <PARAM name="param2"> </OBJECT> </OBJECT>
Der Ort der Implementierung eines Objekts ist durch einen URI gegeben. Wie wir in Abschnitt 2.1.1, »Einführung zu URIs« erörtert haben, gibt das erste Segment eines absoluten URIs das Namensschema an, das verwendet wird, um die Daten zu übertragen, die vom URI bestimmt sind. Für HTML-Dokumente ist das Schema häufig »http«. Einige Applets können andere Namensschemata einsetzen. Wenn zum Beispiel ein Java-Applet angegeben wird, können Autoren URIs verwenden, die mit »java« beginnen oder für ActiveX-Applets können Autoren das »clsid« verwenden.
Im folgenden Beispiel fügen wir ein Java-Applet in ein HTML-Dokument ein.
<P><OBJECT classid="java:program.start"> </OBJECT>
Durch Angabe des codetype-Attributs kann ein Benutzerprogramm, abhängig von seiner Fähigkeit Java zu verarbeiten, entscheiden, ob es die Java-Anwendung empfangen will.
<OBJECT codetype="application/java-archive" classid="java:program.start"> </OBJECT>
Einige Darstellungsschemata erfordern zusätzliche Informationen, um ihre Implementierung zu identifizieren. Ihnen muss mitgeteilt werden, wo sie diese Informationen finden. Autoren können Pfadinformationen zu der Implementierung des Objekts über das Attribut codebase angeben.
<OBJECT codetype="application/java-archive" classid="java:program.start"> codebase="http://foooo.bar.com/java/myimplementation/" </OBJECT>
Das folgende Beispiel gibt über einen URI, der mit dem Namensschema »clsid« beginnt, ein ActiveX-Objekt an (mit dem classid-Attribut). Das Attribut data lokalisiert die Daten, die dargestellt werden sollen (eine andere Uhr).
<P><OBJECT classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502" data="http://www.acme.com/ole/clock.stm"> Diese Anwendung wird nicht unterstützt. </OBJECT>
Um ein Objekt zu deklarieren, ohne dass es ausgeführt wird, wenn das Benutzerprogramm es ausliest, setzt man das Boolesche Attribut declare im OBJECT-Element. Zur gleichen Zeit müssen Autoren diese Deklaration dadurch kennzeichnen, dass sie den Wert des id-Attributs im OBJECT-Element auf einen eindeutigen Wert setzen. Spätere werden sich Instanzen des Objekts auf diesen Bezeichner beziehen.
Ein deklariertes OBJECT muss im Dokument vor der ersten Instanz dieses Objektes (OBJECT) stehen.
Für ein mit dem declare-Attribut definiertes Objekt wird jedesmal eine Instanz erzeugt, wenn ein Element, das sich auf das Objekt bezieht, fordert, dass es dargestellt wird (z.B. ein Verweis bezieht sich auf dieses Objekt und wird aktiviert oder ein Objekt bezieht sich auf dieses Objekt und wird aktiviert usw.).
Im folgenden Beispiel deklarieren wir ein OBJECT und erzeugen eine Instanz des Objekts, indem wir uns über einen Verweis darauf beziehen. So kann das Objekt zum Beispiel durch Anklicken eines abgesetzten Texts aktiviert werden.
<P><OBJECT declare id="erd.deklaration" data="DieErde.mpeg" type="application/mpeg"> Die <STRONG>Erde</STRONG> aus dem All betrachtet. </OBJECT> ...später im Dokument... <P>Eine tolle <A href="#erd.deklaration"> Animation der Erde!</A>
Anmerkung der Übersetzer:
Die Errata ergänzen hierzu: Eine weitere Möglichkeit, von einem in dieser Weise deklarierten Objekt eine Instanz zu erzeugen, ist Folgendes:
<object data="#erd.deklaration"></object>
Das folgende Beispiel zeigt, wie Laufzeitwerte angegeben werden, die wiederum andere Objekte sind. In diesem Beispiel schicken wir einen Text (in der Tat ein Gedicht) an einen hypothetischen Mechanismus zur Ansicht von Gedichten. Das Objekt erkennt einen Laufzeitparameter namens »font« (sagen wir, um das Gedicht in einer bestimmten Schriftart darzustellen). Der Wert für diesen Parameter ist seinerseits ein Objekt, welches das Schriftart-Objekt einfügt (aber nicht darstellt). Die Beziehung zwischen dem Schriftart-Objekt und dem Gedichtbetrachter-Objekt wird (1) durch Angabe der id»tribune« in der Deklaration des Schriftart-Objekts und (2) durch den Bezug darauf über das PARAM-Element des Gedichtbetrachter-Objekts (mit valuetype und value) hergestellt.
<P><OBJECT declare id="tribune" type="application/x-webfont" data="tribune.gif"> </OBJECT> ...betrachte das Gedicht in KublaKhan.txt hier... <P><OBJECT classid="http://foo.bar.com/poem_viewer" data="KublaKhan.txt"> <PARAM name="font" valuetype="object" value="#tribune"> <P>Ihnen fehlt ein wirklich cooler Gedichtbetrachter ... </OBJECT>
Benutzerprogramme, die das Attribut declare nicht verstehen, müssen den Inhalt der OBJECT-Deklaration darstellen.
In der Transitional DTD finden Sie die formale Definition.
Attributdefinitionen
codebase
-Attribut des Applets aufgelöst. Quellen
vorab zu laden, kann die Performance eines Applets signifikant
erhöhen.
Wenn das Applet »deserialisiert« wird, wird die start()-Methode, aber nicht die init()-Methode aufgerufen. Attributwerte, die zum Zeitpunkt gültig waren, als das Objekt serialisiert wurde, werden nicht wieder hergestellt. Jegliche Attribute, die an diese APPLET-Instanz übergeben werden, werden für das Applet zur Verfügung stehen. Autoren sollten dieses Feature mit großer Vorsicht einsetzen. Ein Applet sollte vor der Serialisierung angehalten werden.
Entweder code oder object müssen vorhanden sein. Falls sowohl code als auch object angegeben sind, ist es ein Fehler, wenn sie verschiedene Klassennamen nennen.
An anderer Stelle definierte Attribute
Dieses von allen Java-fähigen Browsern unterstützte Element, gestattet es Autoren, ein Java-Applet in ein HTML-Dokument einzubetten. Es wird zu Gunsten des Elements OBJECTmissbilligt.
Der Inhalt des APPLET-Elements dient als alternative Information für Benutzerprogramme, die dieses Element nicht unterstützen oder so konfiguriert sind, dass sie Applets nicht zu unterstützen. Andernfalls müssen Benutzerprogramme den Inhalt ignorieren.
MISSBILLIGTES BEISPIEL:
Im folgenden Beispiel fügt das APPLET-Element ein Java-Applet in das
Dokument ein. Weil kein codebase-Attribut angegeben ist,
wird angenommen, dass sich dieses Applet im gleichen Verzeichnis
wie das aktuelle Dokument befindet.
<APPLET code="Bubbles.class" width="500" height="500"> Ein Java-Applet, das animierte Seifenblasen malt. </APPLET>
Dieses Beispiel kann wie folgt mit einem OBJECT-Element erzeugt werden:
<P><OBJECT codetype="application/java" classid="java:Bubbles.class" width="500" height="500"> Ein Java-Applet, das animierte Seifenblasen malt. </OBJECT>
Anfangswerte können an dem Applet über das PARAM-Element bereitgestellt werden.
MISSBILLIGTES BEISPIEL:
Das folgende Beispiel eines Java-Applets:
<APPLET code="AudioItem" width="15" height="15"> <PARAM name="snd" value="Hello.au|Welcome.au"> Ein Java-Applet, das eine Willkommensmusik spielt. </APPLET>
kann mit Hilfe eines OBJECT-Elements wie folgt erzeugt werden:
<OBJECT codetype="application/java" classid="AudioItem" width="15" height="15"> <PARAM name="snd" value="Hello.au|Welcome.au"> Ein Java-Applet, das eine Willkommensmusik spielt. </OBJECT>
Ein eingebettetes Dokument ist vollkommen unabhängig vom Dokument, in das es eingebettet ist. Zum Beispiel werden relative URIs im eingebetteten Dokument zu dem Base-URI des eingebetteten Dokuments aufgelöst, nicht zu dem des Hauptdokuments. Ein eingebettetes Dokument wird nur innerhalb eines anderen Dokuments dargestellt (z.B. in einem Unterfenster); ansonsten bleibt es unabhängig.
Zum Beispiel bettet die folgende Zeile den Inhalt von embed_me.html an der Stelle ein, an der die OBJECT-Definition erscheint.
...Text vorher... <OBJECT data="embed_me.html"> Warnung: embed_me.html konnte nicht eingebettet werden. </OBJECT> ...Text danach...
Rufen Sie sich in Erinnerung, dass der Inhalt von OBJECT nur dann dargestellt werden muss, wenn die vom data-Attribut angegebene Datei nicht geladen werden kann.
In dem Fall, in dem eine Datei sich selbst enthält, ist das Verhalten eines Benutzerprogramms nicht defniert.
Eine Imagemap wird erzeugt, indem einem Objekt sensitive geometrische Bereiche zugewiesen werden.
Es gibt zwei Arten von Imagemaps:
Client-seitige Imagemaps werden den Server-seitigen Imagemaps aus mindestens zwei Gründen vorgezogen: Sie sind zugänglicher für Menschen, die mit nicht visuellen Benutzerprogrammen surfen, und sie geben eine direkte Rückmeldung, ob sich ein Zeiger über einem aktiven Bereich befindet.
<!ELEMENT MAP - - ((%block;) | AREA)+ -- client-side image map --> <!ATTLIST MAP %attrs; -- %coreattrs, %i18n, %events -- name CDATA #REQUIRED -- for reference by usemap -- >
Start-Tag: erforderlich, End-Tag: verboten
<!ELEMENT AREA - O EMPTY -- client-side image map area --> <!ATTLIST AREA %attrs; -- %coreattrs, %i18n, %events -- shape %Shape; rect -- controls interpretation of coords -- coords %Coords; #IMPLIED -- comma-separated list of lengths -- href %URI; #IMPLIED -- URI for linked resource -- nohref (nohref) #IMPLIED -- this region has no action -- alt %Text; #REQUIRED -- short description -- tabindex NUMBER #IMPLIED -- position in tabbing order -- accesskey %Character; #IMPLIED -- accessibility key character -- onfocus %Script; #IMPLIED -- the element got the focus -- onblur %Script; #IMPLIED -- the element lost the focus -- >
Start-Tag: erforderlich, End-Tag: verboten
Attributdefinitionen für MAP
Attributdefinitionen für AREA
Koordinaten sind relativ zu der oberen linken Ecke des Objekts. Alle Werte sind Maße (length, siehe Abschnitt 6.6). Alle Werte werden durch Kommata getrennt.
Attribute, um eine Imagemap mit einem Element zu verbinden
An anderer Stelle definierte Attribute
Anmerkung der Übersetzer:
Die Errata merken zu AREA an: »In der Spezifikation ist unklar, ob x,y-Koordinaten die Basis 0 oder 1 verwenden. Ist die linke obere Ecke (0,0) oder (1,1)?« Eine Korrektur steht bisher (Stand 01/2003) nicht zur Verfügung.
Die Fassung von XHTML, an der zur Zeit gearbeitet wird (XHTML 2.0, Working Draft, 18. Dezember 2002), definiert die Koordinaten eindeutig. Dort heißt es in der »Sammlung der Imagemap-Attribute«: »Bildschirmkoordinaten werden als Pixelwerte ausgedrückt, die relativ zum Bild sind; ihr Ursprung ist (0,0) in der linken oberen Ecke.«
Das Element MAP gibt eine Client-seitige Imagemap an (oder einen anderen Navigationsmechanismus), die mit anderen Elementen (IMG, OBJECT oder INPUT) verbunden werden kann. Eine Imagemap wird mit einem Element über das usemap-Attribut des Elements verknüpft. Das Element MAP kann als allgemeiner Navigationsmechanismus ohne ein verknüpftes Bild verwendet werden.
Die Gegenwart eines usemap-Attributs in einem OBJECT bedingt, dass dieses eingebettete Objekt ein Bild ist. Wenn das Element OBJECT darüber hinaus eine verknüpfte Client-seitige Imagemap hat, können Benutzerprogramme eine Interaktion des Benutzers mit dem OBJECT-Element nur in Bezug auf die Client-seitige Imagemap implementieren. Dies gestattet Benutzerprogrammen (wie einem Audio-Browser oder einem Robot) mit dem OBJECT-Element zu interagieren, ohne es ausführen zu müssen; das Benutzerprogramm kann sogar entscheiden, das referenzierte Objekt nicht zu laden (oder auszuführen). Hat ein OBJECT-Element eine verknüpfte Imagemap, sollten Autoren nicht erwarten, dass dieses Objekt von jedem Benutzerprogramm empfangen oder ausgeführt wird.
Das Inhaltsmodell des MAP-Elements gestattet Autoren die Kombination des Folgenden:
Wenn ein MAP-Element gemischten Inhalt enthält (sowohl AREA-Elemente als auch Blockinhalt), müssen Benutzerprogramme das AREA-Element ignorieren.
Autoren sollten die Geometrie einer Imagemap vollständig mit AREA-Elementen, vollständig mit A-Elementen oder, wenn der Inhalt gemischt ist, vollständig mit beiden Elementen angeben. Autoren möchten vielleicht den Inhalt mischen, damit auf der einen Seite ältere Benutzerprogramme die Map-Geometrie bearbeiten können, die durch AREA-Elemente angegeben wird, und neue Benutzerprogramme auf der anderen Seite Vorteil aus vielfältigerem Blockinhalt ziehen können.
Überschneiden sich zwei oder mehr definierte Bereiche, hat das den Bereich beschreibende Element, das zuerst im Dokument steht, den Vorrang (z.B. reagiert es auf Benutzereingabe).
Benutzerprogramme und Autoren sollten alternativen Text zu graphischen Imagemaps bieten, und zwar für den Fall, dass die Graphiken nicht verfügbar sind oder der Benutzer nicht auf sie zugreifen kann. Zum Beispiel können Benutzerprogramme den Text des alt-Attributs verwenden, um Textverweise anstelle einer graphischen Imagemap zu erzeugen. Solche Verweise können auf verschiedene Weise aktiviert werden (Tastatur, Sprachaktivierung usw.).
Anmerkung: MAP ist nicht rückwärtskompatibel zu Benutzerprogrammen, die für HTML 2.0 geschrieben wurden.
Im folgenden Beispiel erzeugen wir eine Client-seitige Imagemap für das Element OBJECT. Wir wollen den Inhalt der Imagemap nicht darstellen, wenn das OBJECT dargestellt wird, deshalb »verstecken« wir das Element MAP im Inhalt des Elements OBJECT. Folglich wird der Inhalt des Elements MAP nur dann dargestellt, wenn das OBJECT nicht dargestellt werden kann.
<HTML> <HEAD> <TITLE>Die coole Seite!</TITLE> </HEAD> <BODY> <P><OBJECT data="navbar1.gif" type="image/gif" usemap="#map1"> <MAP name="map1"> <P>Navigiere durch die Web-Seiten: <A href="guide.html" shape="rect" coords="0,0,118,28">Hilfe</a> | <A href="shortcut.html" shape="rect" coords="118,0,184,28">Gehe zu</A> | <A href="search.html" shape="circle" coords="184,200,60">Suchen</A> | <A href="top10.html" shape="poly" coords="276,0,276,28,100,200,50,50,276,0">Top 10</A> </MAP> </OBJECT> </BODY> </HTML>
Vielleicht möchten wir den Inhalt der Imagemap sogar dann darstellen, wenn ein Benutzerprogramm das OBJECT wiedergeben kann. Zum Beispiel wollen wir vielleicht eine Imagemap mit einem OBJECT-Element verknüpfen und eine Textnavigation am Fuß der Seite anbringen. Um das zu realisieren, definieren wir das MAP-Element außerhalb des OBJECT-Elements:
<HTML> <HEAD> <TITLE>Die coole Seite!</TITLE> </HEAD> <BODY> <P><OBJECT data="navbar1.gif" type="image/gif" usemap="#map1"> </OBJECT> ...der Rest der Seite hier... <MAP name="map1"> <P>Navigiere durch die Seite: <A href="guide.html" shape="rect" coords="0,0,118,28">Hilfe</a> | <A href="shortcut.html" shape="rect" coords="118,0,184,28">Gehe zu</A> | <A href="search.html" shape="circle" coords="184,200,60">Suchen</A> | <A href="top10.html" shape="poly" coords="276,0,276,28,100,200,50,50,276,0">Top 10</A> </MAP> </BODY> </HTML>
Im folgenden Beispiel erzeugen wir eine ähnliche Imagemap, diesmal mit dem AREA-Element. Beachten Sie die Verwendung des alternativen Texts mit Hilfe des Attributs alt:
<P><OBJECT data="navbar1.gif" type="image/gif" usemap="#map1"> <P>Dies ist eine Navigationsleiste. </OBJECT> <MAP name="map1"> <AREA href="guide.html" alt="Hilfe" shape="rect" coords="0,0,118,28"> <AREA href="search.html" alt="Suchen" shape="rect" coords="184,0,276,28"> <AREA href="shortcut.html" alt="Gehe zu" shape="circle" coords="184,200,60"> <AREA href="top10.html" alt="Top 10" shape="poly" coords="276,0,276,28,100,200,50,50,276,0"> </MAP>
Hier ist eine ähnliche Version, die das IMG-Element statt des OBJECT-Elements verwendet (mit der gleichen MAP-Deklaration):
<P><IMG src="navbar1.gif" usemap="#map1" alt="Navigationsleiste">
Das folgende Beispiel zeigt, wie Imagemaps gemeinsam verwendet werden können.
Verschachtelte OBJECT-Elemente sind nützlich, um Ausweichmöglichkeiten parat zu halten, falls ein Benutzerprogramm ein bestimmtes Format nicht unterstützt. Zum Beispiel:
<P> <OBJECT data="navbar.png" type="image/png"> <OBJECT data="navbar.gif" type="image/gif"> Text, der das Bild beschreibt... </OBJECT> </OBJECT>
Unterstützt das Benutzerprogramm das PNG-Format nicht, versucht es, das GIF-Bild darzustellen. Wenn es GIF nicht unterstützt (z.B. ein sprachbasiertes Benutzerprogramm), dann stellt es die Textbeschreibung dar, die als Inhalt des inneren OBJECT-Elements angegeben ist. Sind OBJECT-Elemente auf diese Weise verschachtelt, können Autoren die Imagemaps für diese Elemente gemeinsam nutzen.
<P> <OBJECT data="navbar.png" type="image/png" usemap="#map1"> <OBJECT data="navbar.gif" type="image/gif" usemap="#map1"> <MAP name="map1"> <P>Navigate the site: <A href="guide.html" shape="rect" coords="0,0,118,28">Hilfe</a> | <A href="shortcut.html" shape="rect" coords="118,0,184,28">Gehe zu</A> | <A href="search.html" shape="circle" coords="184,200,60">Suchen</A> | <A href="top10.html" shape="poly" coords="276,0,276,28,100,200,50,50,276,0">Top 10</A> </MAP> </OBJECT> </OBJECT>
Das folgende Beispiel zeigt, wie Anker angegeben werden können, um inaktive Bereiche innerhalb einer Imagemap zu erzeugen. Der erste Anker gibt einen kleinen kreisförmigen Bereich ohne verbundenen Verweis an. Der zweite Anker gibt einen größeren kreisförmigen Bereich mit den gleichen Mittelpunktkoordinaten an. Zusammen formen die beiden einen Ring, dessen Mitte inaktiv, und dessen Rand aktiv ist. Die Reihenfolge der Ankerdefinitionen ist wichtig, weil der kleinere Kreis den größeren Kreis überschreiben muss.
<MAP name="map1"> <P> <A shape="circle" coords="100,200,50">Ich bin inaktiv.</A> <A href="outer-ring-link.html" shape="circle" coords="100,200,250">Ich bin aktiv.</A> </MAP>
Ähnlich dazu deklariert das Attribut nohref des AREA-Elements, dass ein geometrischer Bereich keinen verbundenen Link enthält.
Server-seitige Imagemaps können in den Fällen interessant sein, in denen die Imagemap für eine client-seitige Imagemap zu kompliziert ist.
Eine server-seitige Imagemap kann nur für die Elemente IMG und INPUT definiert werden. Im Fall von IMG muss sich IMG innerhalb eines A-Elements befinden und das Boolesche Attribut ismap ([CI]) muss gesetzt sein. Im Fall von INPUT muss INPUT vom Typ »image« sein.
Aktiviert der Benutzer den Link durch Anklicken der Graphik, werden die Bildschirmkoordinaten direkt zum Server geschickt, auf dem das Dokument vorliegt. Bildschirmkoordinaten werden als Bildschirmpixelwerte relativ zur Graphik ausgedrückt. Normative Informationen über die Definition eines Pixels und wie seine Position bestimmt wird, finden Sie in [CSS1].
Im folgenden Beispiel definiert der aktive Bereich einen Server-seitigen Link. Durch einen Klick auf irgendeine Stelle im Bild werden die Koordinaten des Klicks zum Server geschickt.
<P><A href="http://www.acme.com/cgi-bin/competition"> <IMG src="game.gif" ismap alt="Ziel"></A>
Der angeklickte Punkt wird wie folgt zum Server weitergeleitet. Das Benutzerprogramm erzeugt einen neuen URI aus dem URI, der vom href-Attribut des A-Elements angegeben ist. Dies geschieht durch Anhängen eines »?«, gefolgt von den x- und y-Koordinaten, getrennt durch ein Komma. Dem Link wird dann mit dem neuen URI nachgegangen. Klickt der Benutzer im gegebenen Beispiel auf die Stelle mit den Koordinaten x=10 und y=27, dann ist der abgeleitete URI »http://www.acme.com/cgi-bin/competition?10,27«.
Benutzerprogramme, die dem Benutzer nicht die Möglichkeit bieten, bestimmte Koordinaten auszuwählen (z.B. nicht graphische Benutzerprogramme, die auf Tastatureingaben angewiesen sind, sprachbasierte Benutzerprogramme usw.), sollten die Koordinaten »0,0« an den Server senden, wenn der Link aktiviert wird.
Attributdefinitionen
Werden die Attribute width und height angegeben, weisen sie das Benutzerprogramm an, die originalen Bild- oder Objektgrößen zu Gunsten dieser Werte zu überschreiben.
Ist das Objekt ein Bild, wird es skaliert. Benutzerprogramme sollten ihr Bestes geben, um ein Objekt oder Bild in der Breite und Höhe so anzupassen, wie es vom Autor angegeben ist. Beachten Sie, dass sich prozentual angegebene Längen auf den horizontal oder vertikal verfügbaren Raum beziehen, der aktuell zur Verfügung steht, und nicht auf die originale Größe des Bilds, Objekts oder Applets.
Die Attribute height und width geben Benutzerprogrammen Informationen über die Größe eines Bilds oder Objekts, so dass sie Platz reservieren und das Dokument weiter aufbauen können, während sie auf die Bilddaten warten.
Attributdefinitionen
Ein Bild oder Objekt kann von einem Rahmens umgeben sein (z.B. wenn ein Rahmen vom Benutzer vorgegeben wurde, oder wenn das Bild Inhalt eines A-Elements ist).
Attributdefinitionen
Attributdefinitionen
Die folgenden Werte für align betreffen die Position des Objekts in Bezug auf den umgebenden Text:
Zwei weitere Werte, left und right, lassen das Bild zum aktuellen linken oder rechten Rand fließen. Sie werden im Abschnitt 15.1.3, »Umflossene Objekte« besprochen.
Unterschiedliche Auslegung von
align
. Benutzerprogramme interpretieren das
align-Attribut unterschiedlich. Einige
berücksichtigen nur, was in der Textzeile vor dem Element
erscheint, einige berücksichtigen den Text auf beiden Seiten
des Elements.
Anmerkung der Übersetzer:
Anstelle der missbilligten Atribute, die sich alle auf die visuelle Darstellung beziehen, ist der Einsatz von Stylesheets zu empfehlen.
Die Attribute width und height, die auf den ersten Blick ebenfalls der visuellen Darstellung dienen, sollten auch weiterhin benutzt werden. Wenn diese Werte bekannt sind bevor die Bilddatei selbst geladen ist, gestatten sie auch neueren visuellen Browsern einen »ruhigeren« Aufbau der Darstellung.
Attributdefinitionen
Viele Elemente, die primär nicht darauf ausgelegt sind, Text darzustellen (IMG, AREA, APPLET und INPUT), bieten Autoren die Möglichkeit, einen alternativen Text anzugeben, der als Inhalt dient, wenn das Element nicht wie vorgesehen dargestellt werden kann. Die Angabe von alternativem Text unterstützt Benutzer ohne graphische Anzeigeterminals, Benutzer, deren Browser keine Formulare unterstützen, Benutzer mit Sehschwächen, die Sprachsynthesizer verwenden, diejenigen, die ihren graphischen Browser so konfiguriert haben, dass Bilder nicht angezeigt werden usw.
Das alt-Attribut muss für die Elemente IMG und AREA angegeben werden. Es ist optional für die Elemente INPUT und APPLET.
Auch wenn alternativer Text sehr hilfreich sein kann, so muss er doch mit Vorsicht verwendet werden. Autoren sollten die folgenden Richtlinien beachten:
Entwickler sollten den Abschnitt »Anmerkungen zur Zugänglichkeit« im Anhang B lesen, um Informationen zu erhalten, wie in Fällen, in denen alternativer Text fehlt, zu verfahren ist.