Contents
HTML's multimedia features allow authors to include images, applets(programs that are automatically downloaded and run on the user's machine),video clips, and other HTML documents in their pages.
For example, to include a PNG image in a document, authors may write:
<BODY><P>Here's a closeup of the Grand Canyon:<OBJECT data="canyon.png" type="image/png">This is a <EM>closeup</EM> of the Grand Canyon.</OBJECT></BODY>
Previous versions of HTML allowed authors to include images (viaIMG) andapplets (viaAPPLET). These elements have several limitations:
To address these issues, HTML 4 introduces theOBJECTelement, which offers an all-purpose solution to generic object inclusion. TheOBJECT element allows HTML authors to specify everything required byan object for its presentation by a user agent: source code, initial values,and run-time data. In this specification, the term "object" is used to describethe things that people want to place in HTML documents; other commonly usedterms for these things are: applets, plug-ins, media handlers, etc.
The newOBJECT element thus subsumes some of the tasks carried outby existing elements. Consider the following chart of functionalities:
Type of inclusion | Specific element | Generic element |
---|---|---|
Image | IMG | OBJECT |
Applet | APPLET(Deprecated.) | OBJECT |
Another HTML document | IFRAME | OBJECT |
The chart indicates that each type of inclusion has a specific and a generalsolution. The generic
To include images, authors may use theOBJECTelement or theIMG element.
To include applets, authors should use theOBJECTelement as theAPPLET element isdeprecated.
To include one HTML document in another, authors mayuse either the newIFRAME element or theOBJECTelement. In both cases, the embedded document remains independent of the maindocument. Visual user agents may present the embedded document in a distinctwindow within the main document. Please consult thenotes on embedded documents for a comparison ofOBJECT andIFRAME for document inclusion.
Images and other included objects may have hyperlinks associated with them,both through the standardlinking mechanisms, butalso viaimage maps. An image mapspecifies active geometric regions of an included object and assigns a link toeach region. When activated, these links may cause a document to be retrieved,may run a program on the server, etc.
In the following sections, we discuss the various mechanisms available toauthors for multimedia inclusions and creating image maps for thoseinclusions.
<!-- 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 --><!ELEMENTIMG - 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) --nameCDATA #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:required, End tag:forbidden
Attribute definitions
Attributes defined elsewhere
TheIMG element embeds an image in the current document at the locationof the element's definition. TheIMG element has no content; it isusually replaced inline by the image designated by thesrc attribute, the exception being for left or right-aligned imagesthat are"floated" out ofline.
In an earlier example, we defined a link to a family photo. Here, we insertthe photo directly into the current document:
<BODY><P>I just returned from vacation! Here's a photo of my family at the lake:<IMG src="http://www.somecompany.com/People/Ian/vacation/family.png" alt="A photo of my family at the lake."></BODY>
This inclusion may also be achieved with theOBJECTelement as follows:
<BODY><P>I just returned from vacation! Here's a photo of my family at the lake:<OBJECT data="http://www.somecompany.com/People/Ian/vacation/family.png" type="image/png">A photo of my family at the lake.</OBJECT></BODY>
Thealt attribute specifies alternate text that is rendered when theimage cannot be displayed (see below for information onhow to specify alternate text ). User agents must renderalternate text when they cannot support images, they cannot support a certainimage type or when they are configured not to display images.
The following example shows how thelongdescattribute can be used to link to a richer description:
<BODY><P><IMG src="sitemap.gif" alt="HP Labs Site Map" longdesc="sitemap.html"></BODY>
Thealt attribute provides a short description of the image. This shouldbe sufficient to allow users to decide whether they want to follow the linkgiven by thelongdesc attribute to the longer description, here"sitemap.html".
Please consult the section on thevisual presentation ofobjects, images, and applets for information about image size, alignment,and borders.
<!ELEMENTOBJECT - - (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 --archiveCDATA #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 --nameCDATA #IMPLIED -- submit as part of form --tabindexNUMBER #IMPLIED -- position in tabbing order -- >
Start tag:required, End tag:required
Attribute definitions
Attributes defined elsewhere
Most user agents have built-inmechanisms for rendering common data types such as text, GIF images,colors, fonts, and a handful of graphic elements. To render data types theydon't support natively, user agents generally run external applications. TheOBJECT element allows authors to control whether data should berendered externally or by some program, specified by the author, that rendersthe data within the user agent.
In the most general case, an author may need to specify three types ofinformation:
TheOBJECT element allows authors to specify all three types of data,but authors may not have to specify all three at once. For example, someobjects may not require data (e.g., a self-contained applet that performs asmall animation). Others may not require run-time initialization. Still othersmay not require additional implementation information, i.e., the user agentitself may already know how to render that type of data (e.g., GIF images).
Authors specify an object's implementation andthe location of the data to be rendered via theOBJECTelement. To specify run-time values, however, authors use thePARAMelement, which is discussed in the section onobjectinitialization.
TheOBJECT element may also appear in the content of theHEADelement. Since user agents generally do not render elements in theHEAD,authors should ensure that anyOBJECT elements in theHEAD donot specify content that may be rendered. Please consult the section onsharing frame data for anexample of including theOBJECT element in theHEADelement.
Please consult the section onform controls for information aboutOBJECT elements in forms.
This document does not specify the behavior ofOBJECTelements that use both theclassid attribute to identify an implementationand thedata attribute to specify data for that implementation. In order toensure portability, authors should use thePARAM element to tellimplementations where to retrieve additional data.
A user agent must interpret anOBJECT element according to thefollowing precedence rules:
Authors should not include content inOBJECTelements that appear in theHEAD element.
In the following example, we insert an analog clock applet in a document viatheOBJECT element. The applet, written in the Python language, requiresno additional data or run-time values. Theclassid attribute specifies thelocation of the applet:
<P><OBJECT classid="http://www.miamachina.it/analogclock.py"></OBJECT>
Note that the clock will be rendered as soon as the user agent interpretsthisOBJECT declaration. It is possible to delay rendering of an objectby firstdeclaring the object (described below).
Authors should complete this declaration by including alternate text as thecontents ofOBJECT in case the user agent cannot render the clock.
<P><OBJECT classid="http://www.miamachina.it/analogclock.py">An animated clock.</OBJECT>
One significant consequence of theOBJECT element's design is that it offers a mechanism for specifyingalternate object renderings; each embeddedOBJECT declaration may specifyalternate content types. If a user agent cannot render the outermostOBJECT, it tries to render the contents, which may be anotherOBJECT element, etc.
In the following example, we embed severalOBJECTdeclarations to illustrate how alternate renderings work. A user agent willattempt to render the firstOBJECT element it can, in the following order:(1) an Earth applet written in the Python language, (2) an MPEG animation ofthe Earth, (3) a GIF image of the Earth, (4) alternate text.
<P> <!-- First, try the Python applet --><OBJECT title="The Earth as seen from space" classid="http://www.observer.mars/TheEarth.py"> <!-- Else, try the MPEG video --> <OBJECT data="TheEarth.mpeg" type="application/mpeg"> <!-- Else, try the GIF image --> <OBJECT data="TheEarth.gif" type="image/gif"> <!-- Else render the text --> The <STRONG>Earth</STRONG> as seen from space. </OBJECT> </OBJECT></OBJECT>
The outermost declaration specifies an applet that requires no data orinitial values. The second declaration specifies an MPEG animation and, sinceit does not define the location of an implementation to handle MPEG, relies onthe user agent to handle the animation. We also set thetype attribute so that a user agent that knows it cannot render MPEGwill not bother to retrieve "TheEarth.mpeg" from the network. The thirddeclaration specifies the location of a GIF file and furnishes alternate textin case all other mechanisms fail.
Inline vs. external data. Data to be rendered may besupplied in two ways: inline and from an external resource. While the formermethod will generally lead to faster rendering, it is not convenient whenrendering large quantities of data.
Here's an example that illustrates how inline data may be fed to anOBJECT:
<P><OBJECT classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502" data="data:application/x-oleobject;base64,...base64 data..."> A clock.</OBJECT>
Please consult the section on thevisual presentation ofobjects, images, and applets for information about object size, alignment,and borders.
<!ELEMENTPARAM - O EMPTY -- named property value --><!ATTLIST PARAMidID #IMPLIED -- document-wide unique id --nameCDATA #REQUIRED -- property name --valueCDATA #IMPLIED -- property value --valuetype (DATA|REF|OBJECT) DATA -- How to interpret value --type%ContentType; #IMPLIED -- content type for value when valuetype=ref -- >
Start tag:required, End tag:forbidden
Attribute definitions
Attributes defined elsewhere
PARAM elements specify a set of values that may be required by anobject at run-time. Any number ofPARAM elements may appear in thecontent of anOBJECT orAPPLET element, in any order, but must be placedat the start of the content of the enclosingOBJECT orAPPLETelement.
The syntax of names and values is assumed to be understood by the object'simplementation. This document does not specify how user agents should retrievename/value pairs nor how they should interpret parameter names that appeartwice.
We return to the clock example to illustrate the use ofPARAM:suppose that the applet is able to handle two run-time parameters that defineits initial height and width. We can set the initial dimensions to 40x40 pixelswith twoPARAM elements.
<P><OBJECT classid="http://www.miamachina.it/analogclock.py"><PARAM name="height" value="40" valuetype="data"><PARAM name="width" value="40" valuetype="data">This user agent cannot render Python applications.</OBJECT>
In the following example, run-time data for the object's "Init_values"parameter is specified as an external resource (a GIF file). The value of thevaluetype attribute is thus set to "ref" and thevalue is a URI designating the resource.
<P><OBJECT classid="http://www.gifstuff.com/gifappli" standby="Loading Elvis..."><PARAM name="Init_values" value="./images/elvis.gif"> valuetype="ref"></OBJECT>
Note that we have also set thestandby attribute so that theuser agent may display a message while the rendering mechanism loads.
When anOBJECT element is rendered, user agents must search thecontent for only those
Thus, in the following example, if "obj1" is rendered, "param1" applies to"obj1" (and not "obj2"). If "obj1" is not rendered and "obj2" is, "param1" isignored, and "param2" applies to "obj2". If neitherOBJECTis rendered, neither
<P><OBJECT> <PARAM name="param1"> <OBJECT> <PARAM name="param2"> </OBJECT></OBJECT>
The location of an object's implementation is given by a URI. As wediscussed in theintroduction toURIs, the first segment of an absolute URI specifies the naming scheme usedto transfer the data designated by the URI. For HTML documents, this scheme isfrequently "http". Some applets might employ other naming schemes. Forinstance, when specifying a Java applet, authors may use URIs that begin with"java" and for ActiveX applets, authors may use "clsid".
In the following example, we insert a Java applet into an HTML document.
<P><OBJECT classid="java:program.start"></OBJECT>
By setting the
<OBJECT codetype="application/java-archive" classid="java:program.start"></OBJECT>
Some rendering schemes require additional information to identify theirimplementation and must be told where to find that information. Authors maygive path information to the object's implementation via thecodebase attribute.
<OBJECT codetype="application/java-archive" classid="java:program.start"> codebase="http://foooo.bar.com/java/myimplementation/"</OBJECT>
The following example specifies (with theclassid attribute) an ActiveX object via a URI that begins with thenaming scheme "clsid". Thedata attribute locates the data to render(another clock).
<P><OBJECT classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502" data="http://www.acme.com/ole/clock.stm">This application is not supported.</OBJECT>
To declare an object so that it is not executed when read by the user agent,set the booleandeclare attribute in theOBJECT element. At the same time,authors must identify the declaration by setting theidattribute in theOBJECT element to a unique value. Later instantiations ofthe object will refer to this identifier.
A declaredOBJECT must appear in a document before the first instanceof thatOBJECT.
An object defined with thedeclare attribute is instantiated everytime an element that refers to that object requires it to be rendered (e.g., alink that refers to it is activated, an object that refers to it is activated,etc.).
In the following example, we declare anOBJECT and cause it to beinstantiated by referring to it from a link. Thus, the object can be activatedby clicking on some highlighted text, for example.
<P><OBJECT declare data="TheEarth.mpeg" type="application/mpeg"> The <STRONG>Earth</STRONG> as seen from space.</OBJECT>...later in the document...<P>A neat <A href="#earth.declaration"> animation of The Earth!</A>
The following example illustrates how to specify run-time values that areother objects. In this example, we send text (a poem, in fact) to ahypothetical mechanism for viewing poems. The object recognizes a run-timeparameter named "font" (say, for rendering the poem text in a certain font).The value for this parameter is itself an object that inserts (but does notrender) the font object. The relationship between the font object and the poemviewer object is achieved by (1) assigning theid "tribune" to the font objectdeclaration and (2) referring to it from thePARAM element of the poem viewerobject (withvaluetype andvalue).
<P><OBJECT declare type="application/x-webfont" data="tribune.gif"></OBJECT>...view the poem in KublaKhan.txt here...<P><OBJECT classid="http://foo.bar.com/poem_viewer" data="KublaKhan.txt"><PARAM name="font" valuetype="object" value="#tribune"><P>You're missing a really cool poem viewer ...</OBJECT>
User agents that don't support thedeclare attribute must render thecontents of theOBJECT declaration.
See theTransitional DTD for theformal definition.
Attribute definitions
When the applet is "deserialized" thestart() method is invokedbut not theinit() method. Attributes valid when the originalobject was serialized arenot restored. Any attributes passedto thisAPPLET instance will be available to the applet. Authors should usethis feature with extreme caution. An applet should be stopped before it isserialized.
Eithercode or
Attributes defined elsewhere
This element, supported by all Java-enabled browsers, allows designers toembed a Java applet in an HTML document. It has beendeprecated in favor of theOBJECTelement.
The content of the
DEPRECATED EXAMPLE:
In the following example, theAPPLET element includes a Java appletin the document. Since nocodebase is supplied, the appletis assumed to be in the same directory as the current document.
<APPLET code="Bubbles.class" width="500" height="500">Java applet that draws animated bubbles.</APPLET>
This example may be rewritten withOBJECT as follows:
<P><OBJECT codetype="application/java" classid="java:Bubbles.class" width="500" height="500">Java applet that draws animated bubbles.</OBJECT>
Initial values may be supplied to the applet via thePARAMelement.
DEPRECATED EXAMPLE:
The following sample Java applet:
<APPLET code="AudioItem" width="15" height="15"><PARAM name="snd" value="Hello.au|Welcome.au">Java applet that plays a welcoming sound.</APPLET>
may be rewritten as follows withOBJECT:
<OBJECT codetype="application/java" classid="AudioItem" width="15" height="15"><PARAM name="snd" value="Hello.au|Welcome.au">Java applet that plays a welcoming sound.</OBJECT>
An embedded document is entirely independent of thedocument in which it is embedded. For instance, relative URIs within theembedded documentresolveaccording to the base URI of the embedded document, not that of the maindocument. An embedded document is only rendered within another document (e.g.,in a subwindow); it remains otherwise independent.
For instance, the following line embeds the contents ofembed_me.html at the location where theOBJECT definition occurs.
...text before...<OBJECT data="embed_me.html">Warning: embed_me.html could not be embedded.</OBJECT>...text after...
Recall that the contents ofOBJECT must only be rendered if thefile specified by the
The behavior of a user agent in cases where a file includes itself is notdefined.
An image map is created by associating an object with a specification ofsensitive geometric areas on the object.
There are two types of image maps:
Client-side image maps are preferred overserver-side image maps for at least two reasons: they are accessible to peoplebrowsing with non-graphical user agents and they offer immediate feedback as towhether or not the pointer is over an active region.
<!ELEMENTMAP - - ((%block;) | AREA)+ -- client-side image map --><!ATTLIST MAP%attrs; --%coreattrs,%i18n,%events --nameCDATA #REQUIRED -- for reference by usemap -- >
Start tag:required, End tag:required
<!ELEMENTAREA - 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 --tabindexNUMBER #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:required, End tag:forbidden
MAP attribute definitions
AREA attribute definitions
Coordinates are relative to the top, left corner of the object. All valuesarelengths. All values are separatedby commas.
Attribute to associate an image map with an element
Attributes defined elsewhere
TheMAP element specifies a client-side image map (or other navigationmechanism) that may be associated with another elements (IMG,OBJECT, orINPUT). An image map is associated withan element via the element'susemap attribute. TheMAPelement may be used without an associated image for general navigationmechanisms.
The presence of the
TheMAP element content model allows authors tocombine the following:
When aMAP element contains mixed content (bothAREAelements and block-level content), user agents must ignore theAREAelements.
Authors should specify an image maps's geometry completely withAREAelements, or completely with
If two or more defined regions overlap, theregion-defining element that appears earliest in the document takes precedence(i.e., responds to user input).
User agents and authorsshould offer textual alternates to graphical image maps for caseswhen graphics are not available or the user cannot access them. For example,user agents may usealt text to create textual links in place of a graphicalimage map. Such links may be activated in a variety of ways (keyboard, voiceactivation, etc.).
Note.MAP is not backwards compatible with HTML 2.0user agents.
In the following example, we create a client-side image map for theOBJECTelement. We do not want to render the image map's contents when theOBJECTis rendered, so we "hide" theMAP element within theOBJECTelement's content. Consequently, theMAP element's contents will only berendered if theOBJECT cannot be rendered.
<HTML> <HEAD> <TITLE>The cool site!</TITLE> </HEAD> <BODY> <P><OBJECT data="navbar1.gif" type="image/gif" usemap="#map1"> <MAP name="map1"> <P>Navigate the site: <A href="guide.html" shape="rect" coords="0,0,118,28">Access Guide</a> | <A href="shortcut.html" shape="rect" coords="118,0,184,28">Go</A> | <A href="search.html" shape="circle" coords="184,200,60">Search</A> | <A href="top10.html" shape="poly" coords="276,0,276,28,100,200,50,50,276,0">Top Ten</A> </MAP> </OBJECT> </BODY></HTML>
We may want to render the image map's contents even when a user agent canrender theOBJECT. For instance, we may want to associate an image mapwith anOBJECT elementand include a text navigation bar at thebottom of the page. To do so, we define theMAP element outside theOBJECT:
<HTML> <HEAD> <TITLE>The cool site!</TITLE> </HEAD> <BODY> <P><OBJECT data="navbar1.gif" type="image/gif" usemap="#map1"> </OBJECT>...the rest of the page here... <MAP name="map1"> <P>Navigate the site: <A href="guide.html" shape="rect" coords="0,0,118,28">Access Guide</a> | <A href="shortcut.html" shape="rect" coords="118,0,184,28">Go</A> | <A href="search.html" shape="circle" coords="184,200,60">Search</A> | <A href="top10.html" shape="poly" coords="276,0,276,28,100,200,50,50,276,0">Top Ten</A> </MAP> </BODY></HTML>
In the following example, we create a similar image map, this time using theAREA element. Note the use ofalt text:
<P><OBJECT data="navbar1.gif" type="image/gif" usemap="#map1"> <P>This is a navigation bar. </OBJECT><MAP name="map1"> <AREA href="guide.html" alt="Access Guide" shape="rect" coords="0,0,118,28"> <AREA href="search.html" alt="Search" shape="rect" coords="184,0,276,28"> <AREA href="shortcut.html" alt="Go" shape="circle" coords="184,200,60"> <AREA href="top10.html" alt="Top Ten" shape="poly" coords="276,0,276,28,100,200,50,50,276,0"></MAP>
Here is a similar version using theIMG element instead ofOBJECT(with the sameMAP declaration):
<P><IMG src="navbar1.gif" usemap="#map1" alt="navigation bar">
The following example illustrates how image maps may be shared.
NestedOBJECT elements are useful for providing fallbacks in case auser agent doesn't support certain formats. For example:
<P><OBJECT data="navbar.png" type="image/png"> <OBJECT data="navbar.gif" type="image/gif">text describing the image... </OBJECT></OBJECT>
If the user agent doesn't support the PNG format, it tries to render the GIFimage. If it doesn't support GIF (e.g., it's a speech-based user agent), itdefaults to the text description provided as the content of the innerOBJECTelement. WhenOBJECT elements are nested this way, authors may share imagemaps among them:
<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">Access Guide</a> | <A href="shortcut.html" shape="rect" coords="118,0,184,28">Go</A> | <A href="search.html" shape="circle" coords="184,200,60">Search</A> | <A href="top10.html" shape="poly" coords="276,0,276,28,100,200,50,50,276,0">Top Ten</A> </MAP> </OBJECT></OBJECT>
The following example illustrates how anchors may be specified to createinactive zones within an image map. The first anchor specifies a small circularregion with no associated link. The second anchor specifies a larger circularregion with the same center coordinates. Combined, the two form a ring whosecenter is inactive and whose rim is active. The order of the anchor definitionsis important, since the smaller circle must override the larger circle.
<MAP name="map1"><P><A shape="circle" coords="100,200,50">I'm inactive.</A><A href="outer-ring-link.html" shape="circle" coords="100,200,250">I'm active.</A></MAP>
Similarly, the
Server-side image maps may be interesting in caseswhere the image map is too complicated for a client-side image map.
It is only possible to define a server-side image map for theIMG andINPUT elements. In the case ofIMG, theIMG mustbe inside anA element and the boolean attribute
When the user activates the link by clicking on the image, the screencoordinates are sent directly to the server where the document resides. Screencoordinates are expressed as screen pixel values relative to the image. Fornormative information about the definition of a pixel and how to scale it,please consult[CSS1].
In the following example, the active region defines a server-side link.Thus, a click anywhere on the image will cause the click's coordinates to besent to the server.
<P><A href="http://www.acme.com/cgi-bin/competition"> <IMG src="game.gif" ismap alt="target"></A>
Thelocation clicked is passed to the server as follows. The user agentderives a new URI from the URI specified by thehref attribute of theA element, byappending `?' followed by the x and y coordinates, separated by a comma. Thelink is then followed using the new URI. For instance, in the given example, ifthe user clicks at the location x=10, y=27 then the derived URI is"http://www.acme.com/cgi-bin/competition?10,27".
User agents that do not offer the user a means to select specificcoordinates (e.g., non-graphical user agents that rely on keyboard input,speech-based user agents, etc.) should send the coordinates "0,0" to the serverwhen the link is activated.
Attribute definitions
When specified, thewidth andheight attributes tell user agents to override the natural image orobject size in favor of these values.
When the object is an image, it is scaled. User agents should do their bestto scale an object or image to match the width and height specified by theauthor. Note that lengths expressed as percentages are based on the horizontalor vertical space currently available, not on the natural size of the image,object, or applet.
Theheight andwidth attributes give user agentsan idea of the size of an image or object so that they may reserve space for itand continue rendering the document while waiting for the image data.
Attribute definitions
An image or object may be surrounded by a border (e.g., when a border isspecified by the user or when the image is the content of anAelement).
Attribute definitions
Attribute definitions
The following values foralign concern the object's positionwith respect to surrounding text:
Two other values,left andright, cause the imageto float to the current left or right margin. They are discussed in the sectiononfloating objects.
Differing interpretations of align. User agents vary intheir interpretation of thealign attribute. Some only takeinto account what has occurred on the text line prior to the element, some takeinto account the text on both sides of the element.
Attribute definitions
Several non-textual elements (IMG,AREA,APPLET, andINPUT) let authors specify alternatetext to serve as content when the element cannot be rendered normally.Specifying alternate text assists users without graphic display terminals,users whose browsers don't support forms, visually impaired users, those whouse speech synthesizers, those who have configured their graphical user agentsnot to display images, etc.
Thealt attribute must be specified for theIMG andAREA elements. It is optional for theINPUT and
While alternate text may be very helpful, it must be handled with care.Authors should observe the following guidelines:
Implementors should consult the section onaccessibility for information abouthow to handle cases of omitted alternate text.