Índice
As características multimédia da HTML permiten-lles aos autores incluir imaxes, applets (programas que se descarregan e rodan automaticamente na máquina do usuário), clips de video e outros documentos HTML nas suas páxinas.
Por exemplo, para incluir unha imaxe PNG nun documento, os autores poden escreber:
<BODY>
<P>Velaqui un primeiro plano do Gran Canón:
<OBJECT data="canon.png" type="image/png">
Este é un <EM>primeiro plano</EM> do Gran Canón.
</OBJECT>
</BODY>
As versións anteriores da HTML permitian-lles aos autores incluir imaxes (por meio IMG ) e applets (por meio de APPLET ). Estes elementos teñen várias limitacións:
Para confrontar estes temas, HTML 4 introduce o elemento OBJECT , que agora oferece unha solución ampla à inclusión de obxectos xenéricos. O elemento OBJECT permite que os autores de HTML especifiquen todo o que un obxecto requira para ser mostrado por un axente de usuário: código fonte, valores iniciais e dados de tempo de execución. Nesta especificación, o termo "obxecto" usa-se para descreber as cousas que a xente quere incluir nos documentos HTML; outros termos usados habitualmente para estas cousas son: applets, módulos, plug-ins, manipuladores de médios, etc.
Deste xeito, o novo elemento OBJECT subsume algunhas das tarefas realizadas por outros elementos existentes. Considere-se a seguinte tabela de funcionalidades:
Tipo de inclusión | Elemento específico | Elemento xenérico |
---|---|---|
Imaxe | IMG | OBJECT |
Applet | APPLET (Desaprovado ) | OBJECT |
Outro documento HTML | IFRAME | OBJECT |
A tabela indica que cada tipo de inclusión ten unha solución específica e outra xeral. O elemento xenérico OBJECT servirá como solución para incorporar tipos de médios futuros.
Para incluir imaxes, os autores poden usar o elemento OBJECT ou o elemento IMG .
Para incluir applets , os autores deberian usar o elemento OBJECT , dado que elemento APPLET está desaprovado .
Para incluir un documento HTML noutro, os autores poden tanto usar o novo elemento IFRAME como o elemento OBJECT . Nos dous casos, o documento embedido permanece independente do documento principal. Os axentes de usuário poden mostrar o elemento embebido nunha xanela diferente dentro do documento principal. Consulte as notas sobre documentos embebidos para unha comparación entre OBJECT e IFRAME para inclusión de documentos.
As imaxes e outros obxectos incluídos poden ter hipervínculos asociados con eles, tanto através dos mecanismos de vinculación habituais, como tamén através de mapas de imaxes . Un mapa de imaxes especifica rexións xeométricas activas nun obxecto incluído e lle asigna un vínculo a cada rexión. Ao activá-los, estes vínculos poden facer que se recupere un documento, poden facer correr un programa no servidor, etc.
Nas seccións que seguen, tratamos os diversos mecanismos de que dispoñen os autores para a inclusión de multimédia e a creación de mapas de imaxes para esas inclusións.
<!-- Para evitar problemas con axentes de usuário de só texto,
asi como para facer o conteúdo das imaxes comprensíbel e
navegábel para os usuários con axentes de usuários non visuais,
ten que fornecer unha descrición con ALT e evitar mapas de imaxes do lado do servidor -->
<!ELEMENT IMG - O EMPTY -- Imaxe incluída -->
<!ATTLIST IMG
%attrs; -- %coreattrs, %i18n, %events --
src %URI; #REQUIRED -- URI de imaxe a incluir --
alt %Text; #REQUIRED -- descrición breve --
longdesc %URI; #IMPLIED -- vínculo a descrición longa
(complementa alt) --
name CDATA #IMPLIED -- nome da imaxe para scripts --
height %Length; #IMPLIED -- indicar o alto --
width %Length; #IMPLIED -- indicar o ancho --
usemap %URI; #IMPLIED -- usar un mapa de imaxes do lado do cliente --
ismap (ismap) #IMPLIED -- usar un mapa de imaxes do lado do servidor --
>
Etiqueta inicial: requerida, Etiqueta final: proibida
Definicións dos atributos
Atributos que se definen noutro lugar
O elemento IMG embebe unha imaxe no documento actual na localización da definición do elemento. O elemento IMG non ten conteúdo; substitue-se na liña pola imaxe designada co atributo src , sendo a exceición as imaxes aliñadas à esquerda ou à direita que se fan "flotar" fora da liña.
Nun exemplo anterior, definimos un vínculo cunha foto de família. Aqui insertamos a foto directamente no documento actual:
<BODY>
<P>Acabo de voltar das vacacións! Velaqui unha foto da miña família no lago:
<IMG src="http://www.unhaempresa.com/Xente/Ian/vacacions/familia.png"
alt="Foto da miña família no lago.">
</BODY>
Esta inclusión pode-se lograr tamén co elemento OBJECT como segue:
<BODY>
<P>Acabo de voltar das vacacións! Velaqui unha foto da miña família no lago:
<OBJECT data="http://www.unhaempresa.com/Xente/Ian/vacacions/familia.png"
type="image/png">
Foto da miña família no lago.
</OBJECT>
</BODY>
O atributo alt especifica un texto alternativo que se apresenta cando non se pode mostrar a imaxe (ver máis abaixo para información sobre como especificar un texto alternativo ). Os axentes de usuário deben mostrar un texto alternativo cando non aceiten imaxes, non aceiten determinado tipo de imaxe ou cando estiveren configurados para non mostrar imaxes.
O exemplo seguinte mostra como se pode usar o atributo longdesc para vincular cunha descrición máis longa.
<BODY>
<P>
<IMG src="mapadositio.gif"
alt="Mapa do Sítio de HP Labs"
longdesc="mapadositio.html">
</BODY>
O atributo alt fornece unha descrición breve da imaxe. Isto deberia ser suficiente para permitir-lles aos usuários decidir se queren seguir o vínculo dado polo atributo longdesc , neste caso "mapadositio.html".
Consulte a sección sobre apresentación visual de obxectos, imaxes e applets para máis información sobre tamaño, aliñamento e bordes.
<!ELEMENT OBJECT - - (PARAM | %flow;)*
-- obxecto embebido xenérico -->
<!ATTLIST OBJECT
%attrs; -- %coreattrs, %i18n, %events --
declare (declare) #IMPLIED -- declarar mais non crear --
classid %URI; #IMPLIED -- identifica unha implementación --
codebase %URI; #IMPLIED -- URI base para for classid, data, archive--
data %URI; #IMPLIED -- referéncia aos dados do obxecto --
type %ContentType; #IMPLIED -- tipo de conteúdo dos dados --
codetype %ContentType; #IMPLIED -- tipo de conteúdo do código --
archive CDATA #IMPLIED -- lista de URI separados por espazos --
standby %Text; #IMPLIED -- mensaxe para mostrar ao carregar --
height %Length; #IMPLIED -- indicar o alto --
width %Length; #IMPLIED -- indicar o ancho --
usemap %URI; #IMPLIED -- usar un mapa de imaxes do lado do cliente client-side image map --
name CDATA #IMPLIED -- remeter como parte dun formulário --
tabindex NUMBER #IMPLIED -- posición na orde de tabulación --
>
Etiqueta inicial: requerida, Etiqueta final: requerida
Definicións dos atributos
Atributos que se definen noutro lugar
A maioria dos axentes de usuário teñen mecanismos incorporados para mostrar tipos de dados comuns, como texto, imaxes GIF, cores, tipos de letras e unha variedade de elementos gráficos. Para mostraren tipos de dados que non aceiten en princípio, os axentes de usuário normalmente fan correr aplicativos externos. O elemento OBJECT permite-lles aos autores controlar se os dados deberian ser mostrados externamente ou con algun programa, especificado polo autor, que mostre os dados dentro do axente de usuário.
No caso máis xeral, un autor pode necesitar especificar tres tipos de información:
O elemento OBJECT permite que os autores especifiquen os tres tipos de dados, mais os autores non teñen que especificá-los os tres a un tempo. Por exemplo, alguns obxectos poden non requerir dados (p.ex., unh applet completo que realiza unha animación pequena). Outros poden non requerir información de implementación adicional, isto é, o axente de usuário mesmo pode saber xa como mostrar ese tipo de dados (p.ex., imaxes GIF).
Os autores especifican a implementación dun obxecto e a localización dos dados que se han de mostrar mediante o elemento OBJECT . Para especificar valores de tempo de execución, porén, os autores usan o elemento PARAM , que se trata na sección sobre inicialización de obxectos.
O elemento OBJECT pode aparecer tamén no conteúdo do elemento HEAD . Dado que os axentes de usuário normalmente non mostran os elementos do cabezallo ( HEAD ), os autores deberian-se asegurar de que nengun elemento OBJECT de HEAD especifique conteúdo que poida ser mostrado. Consulte a sección sobre exemplos de como incluir o elemento OBJECT no elemento HEAD .
Consulte a sección sobre contróis de formulários para información sobre os elementos OBJECT nos formulários.
Este documento non especifica o comportamento dos elementos OBJECT que usan o atributo tanto o atributo classid para identificar unha implementación como o atributo data para especificar dados para esa implementación. Para asegurar-se a portabilidade, os autores deberian usar o elemento PARAM para indicar-lles às implementacións onde recoller dados adicionais.
Un axente de usuário debe mostrar un elemento OBJECT dacordo coas seguintes regras de precedéncia:
Os autores non deberian incluir conteúdo nos elementos OBJECT que aparezan no elemento HEAD .
No exemplo seguinte, inserimos un applet dun relóxio analóxico nun documento mediante o elemento OBJECT . O applet, escrito na linguaxe Python, non require dados adicionais ou valores de tempo de execución. O atributo classid especifica a localización do applet:
<P><OBJECT classid="http://www.miamachina.it/reloxioanaloxico.py">
</OBJECT>
Observe-se que o relóxio se mostrará axiña que o axente de usuário interprete esta declaración OBJECT . É posíbel adiar a representación dun obxecto declarando primeiro o obxecto (descrito máis abaixo).
Os autores deberian completar esta declaración incluindo un texto alternativo como conteúdo de OBJECT por se o axente de usuário non pode representar o relóxio.
<P><OBJECT classid="http://www.miamachina.it/reloxioanaloxico.py">
Reloxio animado.
</OBJECT>
Unha consecuéncia significativa do deseño do elemento OBJECT é que oferece un mecanismo para especificar representacións de obxectos alternativas; cada declaración OBJECT alternativa pode especificar tipos de conteúdo alternativos. Se un axente de usuário non pode mostrar o OBJECT máis externo, tenta mostrar o conteúdo, que poden ser outro elemento OBJECT , etc.
No exemplo seguinte, embebemos várias declaracións OBJECT para ilustrar como funcionan as representacións alternativas. Un axente de usuário tentará mostrar o primeiro elemento OBJECT se pode, na seguinte orde: (1) un applet Terra escrito na linguaxe Python, (2) unha animación MPEG da Terra, (3) unha imaxe GIF da terra, (4) texto alternativo.
<P> <!-- Primeiro, tenta o applet Python -->
<OBJECT title="A Terra vista desde o espazo"
classid="http://www.observer.mars/ATerra.py">
<!-- Se non, tenta o video MPEG -->
<OBJECT data="ATerra.mpeg" type="application/mpeg">
<!-- Se non, tenta a imaxe GIF-->
<OBJECT data="ATerra.gif" type="image/gif">
<!-- Se non, mostra o texto -->
A <STRONG>Terra</STRONG> vista desde o espazo.
</OBJECT>
</OBJECT>
</OBJECT>
A declaración exterior especifica un applet que re non require dados ou valores iniciais. A segunda declaración especifica unha animación MPEG e, dado que non define a localización dunha implementación que trate MPEG, confia no axente de usuário para tratar a animación. Tamén indicamos o atributo type para que un axente de usuário que saiba que non pode mostrar MPEG non se moleste en traer "ATerra.mpeg" da rede. A terceira declaración especifica a localización dun ficheiro GIF e fornece texto alternativo no caso de que fallen todos os demáis mecanismos.
Dados na liña frente a externos. Os dados que haxa que mostrar poden-se fornecer de duas maneiras: na liña e dunha fonte externa. Mentres que o primeiro método normalmente producirá unha representación máis rápida, non é conveniente ao mostrar cantidades grandes de dados.
Velaqui un exeemplo que ilustra como se lle poden pasar dados na liña a un OBJECT :
<P>
<OBJECT id="reloxio1"
classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502"
data="data:application/x-oleobject;base64, ...base64 data...">
Un relóxio.
</OBJECT>
Consulte a sección sobre representación visual de obxectos, imaxes e applets para información sobre tamaño, aliñamento e bordes de obxectos.
<!ELEMENT PARAM - O EMPTY -- valor de propriedade con nome -->
<!ATTLIST PARAM
id ID #IMPLIED -- id único para todo o documento --
name CDATA #REQUIRED -- nome da propriedade --
value CDATA #IMPLIED -- valores da propriedade --
valuetype (DATA|REF|OBJECT) DATA -- Como interpretar os valores --
type %ContentType; #IMPLIED -- tipo de conteúdo para o valor
cando valuetype=ref --
>
Etiqueta inicial: requerida , Etiqueta final: proibida
Definicións dos atributos
Atributos que se definen noutro lugar
Os elementos PARAM especifican un conxunto de valores que poden ser requeridos por un obxecto durante o seu tempo de execución. Pode aparecer calquer número de elementos PARAM no conteúdo dun elemento OBJECT ou APPLET , en calquer orde, mais deben ir colocados no comezo do conteúdo do elemento OBJECT or APPLET que os engloba.
Asume-se que a sintaxe dos nomes e valores é comprendida pola implementación do obxecto. Este documento non especifica como deberian os axentes de usuário recuperar os pares nome/valor nen como deberian interpretar nomes de parámetros que aparezan duas veces.
Tornamos ao exemplo do relóxio para ilustar o uso de PARAM : supoña que o applet pode tratar dous parámetros de tempo de execución que definen a sua altura e ancho iniciais. Podemos designar as dimensións iniciais como 40x40 píxeis con dous elementos PARAM.
<P><OBJECT classid="http://www.miamachina.it/reloxioanaloxico.py">
<PARAM name="alto" value="40" valuetype="data">
<PARAM name="ancho" value="40" valuetype="data">
Este axente de usuário non pode mostrar aplicacións Python.
</OBJECT>
No exemplo seguinte, os dados de tempo de execución para o parámetro "Val_iniciais" do obxecto especifican-se como un recurso externo (un ficheiro GIF). O valor do atributo valuetype fai-se asi "ref" e o value é un URI que designa o recurso.
<P><OBJECT classid="http://www.cousasderegalo.com/aplicacionderegalo"
standby="A carregar Elvis...">
<PARAM name="Val_iniciais"
value="./imaxes/elvis.gif">
valuetype="ref">
</OBJECT>
Observe-se que tamén indicamos o atributo standby para que o axente de usuário poida mostrar unha mensaxe mentres o mecanismo de representación se carrega.
Cando se mostra un elemento OBJECT , os axentes de usuário deben procurar o conteúdo só para os elementos PARAM que son fillos directos e "pasar-llos" ao OBJECT .
Asi, no exemplo seguinte, se se mostra "obx1", "param1" aplica-se a "obx1" (e non "obj2"). Se "obx1" non se mostra e "obx2" si, ignora-se "param1"e "param2" aplica-se a "obx2". Se non se mostrar nengun OBJECT , non se aplica nengun PARAM ..
<P>
<OBJECT id="obx1">
<PARAM name="param1">
<OBJECT id="obx2">
<PARAM name="param2">
</OBJECT>
</OBJECT>
A localización da implementación dun obxecto dá-se como un URI. Como se dixo na Introdución aos URI , o primeiro segmento dun URI absoluto especifica o esquema de nomes usado para transferir os dados designados polo URI. Para os documentos HTML, este esquema é habitualmente "http". Alguns applets poden empregar outros esquemas de nomes. Por exemplo, ao especificar un applet Java, os autores poden usar URI que comecen con "java" e para applets ActiveX, os autores poden usar "clsid".
No seguinte exemplo, inserimos un applet Java nun documento HTML.
<P><OBJECT classid="java:program.start">
</OBJECT>
Ao incluir o atributo codetype , un axente de usuário pode decidir se recuperar unha aplicación Java baseado na sua capacidade de facé-lo.
<OBJECT codetype="application/java-archive"
classid="java:program.start">
</OBJECT>
Alguns esquemas de representación requiren información adicional para identificar a sua implementación e hai-lles que indicar onde atopar esa información. Os autores poden dar información do camiño à implementación do obxecto mediante o atributo codebase.
<OBJECT codetype="application/java-archive"
classid="java:program.start">
codebase="http://foooo.bar.com/java/aminhaimplementacion/"
</OBJECT>
O exemplo seguinte exemplifica (co atributo classid ) un obxecto ActiveX mediante un URI que comeza co esquema de nomes "clsid". O atributo data localiza os dados que hai que mostrar (outro relóxio).
<P><OBJECT classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502"
data="http://www.acme.com/ole/reloxio.stm">
Non se pode usar esta aplicación.
</OBJECT>
Para declarar un obxecto de maneira que non se execute ao ser lido polo axente de usuário, inclua o atributo booleano declare no elemento OBJECT . Ao mesmo tempo, os autores deben identificar a declaración asignando o atributo id do elemento OBJECT a un valor único. As creacións posteriores do obxecto referirán-se a este identificador.
Un OBJECT declarado debe aparecer nun documento antes da primeira aparición dese OBJECT .
Un obxecto definido co atributo declare crea-se cada vez que un elemento que se refire a ese obxecto requira que se mostre (p.ex. activa-se un vínculo que se refire a el, activa-se un obxecto que se refire a el, etc.).
No seguinte exemplo, declaramos un OBJECT e facemos que se cree referindo-nos a el desde un vínculo. Asi, o obxecto pode-se activar facendo clic sobre un texto resaltado, por exemplo.
<P><OBJECT declare
id="terra.declaration"
data="ATerra.mpeg"
type="application/mpeg">
A <STRONG>Terra</STRONG> vista desde o espazo.
</OBJECT>
...máis abaixo no documento... <P>Interesante <A href="#terra.declaration"> animación da Terra!</A>
O exemplo seguinte ilustra como especificar valores de tempo de execución que son outros obxectos. Neste exemplo, enviamos texto (de feito, un poema) a un mecanismo hipotético para ver poemas. O obxecto recoñece un parámetro de tempo de execución chamado "fonte" (para, por exemplo, mostrar o texto do poema nun tipo de letra determinado). O valor deste parámetro é el mesmo un obxecto que insire (mais que non mostra) o obxecto fonte. A relación entre o obxecto fonte e o visualizador de poemas consegue-se (1) asignando-lle o "tribuno" id à declaración do obxecto fonte e (2) referindo-o desde o elemento PARAM do obxecto visualizador de poemas (con valuetype e value).
<P><OBJECT declare
id="tribuno"
type="application/x-webfont"
data="tribuno.gif">
</OBJECT>
...ver o poema en KublaKhan.txt aqui... <P><OBJECT classid="http://foo.bar.com/visualizador_poemas" data="KublaKhan.txt"> <PARAM name="fonte" valuetype="object" value="#tribuno"> <P>Estás-te a perder un visualizador de poemas estupendo... </OBJECT>
Os axentes de usuário que non aceiten o atributo declare deben mostrar os conteúdos da declaración OBJECT.
Ver a DTD transicional para a definición formal.
Definicións dos atributos
Cando se "deserializa" o applet, invoca-se o método start() mais non o método init().Os atributos válidos cando se serializou o obxecto inicial non se restauran. Todos os atributos pasados a ese APPLET estarán disponíbeis para o applet. Os autores deberian usar esta característica con moito coidado. Un applet deberia ser detido antes de que se serialice.
Un dos dous, code ou object , debe estar presente. Se se dan os dous, code e object , é un erro se fornecen nomes de clases diferentes.
Atributos que se definen noutro lugar
Este elemento, aceitado por todos os navegadores que dispoñen de Java, permite-lles aos deseñadores embeber un applet Java nun documento HTML. Foi desaprovado en favor do elemento OBJECT .
O conteúdo do elemento APPLET actua como información alternativa para axentes de usuário que non aceiten este elemento ou que actualmente estexan configurados para non aceitar applets. Os axentes de usuário deben ignorar o conteúdo de non ser asi.
EXEMPLO DESAPROVADO:
No seguinte exemplo, o elemento
APPLET
inclui un applet Java no documento. Dado que non se fornece
codebase
, asume-se que o applet está no mesmo directório que o
documento actual.
<APPLET code="Burbullas.class" width="500" height="500">
Applet Java que deseña burbullas animadas.
</APPLET>
Este exemplo pode ser ré-escrito con OBJECT como segue:
<P><OBJECT codetype="application/java"
classid="java:Burbullas.class"
width="500" height="500">
Applet Java que deseña burbullas animadas.
</OBJECT>
Poden-se-lle pasar os valores iniciais ao applet mediante o elemento PARAM .
EXEMPLO DESAPROVADO:
O applet Java seguinte:
<APPLET code="AudioItem" width="15" height="15">
<PARAM name="snd" value="Ola.au|Benvida.au">
Applet Java que toca un son de benvida.
</APPLET>
pode-se ré-escreber como segue con OBJECT :
<OBJECT codetype="application/java"
classid="AudioItem"
width="15" height="15">
<PARAM name="snd" value="Ola.au|Benvida.au">
Applet Java que toca un son de benvida.
</OBJECT>
Un documento embebido é completamente independente do documento no que vai incluído. Por exemplo, os URI relativos dentro do documento embebido resolven-se dacordo co URI base do documento embebido, non do documento principal. Un documento embebido só se mostra dentro doutro documento (p.ex., unha sub-xanela); doutro modo fica independente.
Por exemplo, a liña seguinte embebe os conteúdos de embebe_me.html na localización na que aparece a definición OBJECT .
...texto anterior... <OBJECT data="embebe_me.html">
Atención: embebe_me.html non se pudo incluir.
</OBJECT>
...texto posterior...
Lembre que os conteúdos de OBJECT só se deben mostrar se o non se pode carregar o ficheiro especificado polo atributo data .
Non se define o comportamento dos axentes de usuário nos casos nos que un ficheiro se inclui a si mesmo.
Un mapa de imaxes crea-se asociando un obxecto a unha especificación de áreas xeométricas do obxecto sensíbeis.
Hai dous tipos de mapas de imaxes:
<!ELEMENT MAP - - ((%block;) | AREA)+ -- mapa de imaxes do lado do cliente -->
<!ATTLIST MAP
%attrs; -- %coreattrs, %i18n, %events --
name CDATA #REQUIRED -- para referéncia de usemap --
>
Etiqueta inicial: requerida, Etiqueta final: requerida
<!ELEMENT AREA - O EMPTY -- área do mapa de imaxes do lado do cliente -->
<!ATTLIST AREA
%attrs; -- %coreattrs, %i18n, %events --
shape %Shape; rect -- controla a interpretación das coordenadas --
coords %Coords; #IMPLIED -- lista de lonxitudes separada por vírgulas --
href %URI; #IMPLIED -- URI do recurso vinculado --
nohref (nohref) #IMPLIED -- esta rexión non ten acción --
alt %Text; #REQUIRED -- descrición breve --
tabindex NUMBER #IMPLIED -- posición na orde de tabulación --
accesskey %Character; #IMPLIED -- carácter da tecla de acesibilidade --
onfocus %Script; #IMPLIED -- o elemento recebeu o foco --
onblur %Script; #IMPLIED -- o elemento perdeu o foco --
>
Etiqueta inicial: requerida, Etiqueta final: proibida
Definicións dos atributos de MAP
Definicións dos atributos de AREA
As coordenadas son relativas à esquina superior esquerda do obxecto. Todos os valores son lonxitudes . Todos os valores van separados por vírgulas.
Attributo para asociar un mapa de imaxes cun elemento
Atributos que se definen noutro sítio
O elemento MAP especifica un mapa de imaxes do lado do cliente (ou outro mecanismo de navegación) que pode estar asociado con outros elementos ( OBJECT ou INPUT ). Un mapa de imaxes está asociado cun elemento mediante o atributo usemap do elemento. O elemento MAP pode-se usar sen unha imaxe asociada para mecanismos de navegación xerais.
A presenza do atributo usemap para un OBJECT implica que o obxecto que se está a incluir é unha imaxe. Ademáis, cando o elemento OBJECT ten un mapa de imaxes do lado do cliente asociado, os axentes de usuário poden implementar interacción co usuário co OBJECT só en termos do mapa de imaxes do lado do cliente. Isto permite que os axentes de usuário (tal como un navegador de áudio ou un robot) para interaccionar co OBJECT sen o ter que procesar; o axente de usuário pode mesmo escoller non recuperar (ou procesar) o obxecto. Cando un OBJECT ten un mapa de imaxes asociado, os autores non deberian esperar que o obxecto for recuperado ou procesado por todos os axentes de usuário
O modelo de conteúdo do elemento MAP permite que os autores combinen o seguinte:
Cando un elemento MAP contén conteúdo mixto (tanto elementos AREA como conteúdo de nível de bloco), os axentes de usuário deben ignorar os elementos AREA .
Os autores deberian especificar a xeometria dun mapa de imaxes completamente con elementos AREA ou completamente con elementos A ou completamente con ambos os dous se o conteúdo é mixto. Os autores poden querer mesclar o conteúdo para que axentes de usuário antigo traten as xeometrias do mapa especificado con elementos AREA e os axentes máis recentes se aproveiten do conteúdo de bloco máis rico.
Os axentes de usuário e os autores deberian oferecer alternativas textuais para os mapas de imaxes para os casos nos que no non se dispoña de gráficos ou que non se poda aceder a eles. Por exemplo, os axentes de usuário poden usar texto alt para crear vínculos textuais en lugar dun mapa de imaxes gráfico. Estes vínculos poden ser activados de diversas maneiras (teclado, activación pola voz, etc.).
Nota. MAP non é compatíbel con axentes de usuário de HTML 2.0.
No exemplo seguinte, creamos un mapa de imaxes do lado do cliente para o elemento OBJECT . Non queremos mostrar os conteúdos do mapa de imaxes cando se mostre o OBJECT , asi que "escondemos" o elemento MAP dentro do conteúdo do elemento OBJECT . En consecuéncia, os conteúdos do elemento MAP só se mostrará se non se pode mostrar OBJECT .
<HTML>
<HEAD>
<TITLE>O mellor sítio!</TITLE>
</HEAD>
<BODY>
<P><OBJECT data="navbar1.gif" type="image/gif" usemap="#mapa1">
<MAP name="mapa1">
<P>Navega o sítio:
<A href="guia.html" shape="rect" coords="0,0,118,28">Guia de aceso</a> |
<A href="atallo.html" shape="rect" coords="118,0,184,28">Ir</A> |
<A href="procura.html" shape="circle" coords="184,200,60">Procurar</A> |
<A href="os10.html" shape="poly" coords="276,0,276,28,100,200,50,50,276,0">Os dez mellores</A>
</MAP>
</OBJECT>
</BODY>
</HTML>
Podemos querer mostrar os conteúdos do mapa de imaxes mesmo se un axente de usuário pode mostar o OBJECT . Por exemplo, podemos querer asociar un mapa de imaxes cun elemento OBJECT e incluir unha barra de navegación con texto no fondo da páxina. Para o facer, definimos o elemento MAP fora de OBJECT :
<HTML>
<HEAD>
<TITLE>O mellor sítio!</TITLE>
</HEAD>
<BODY>
<P><OBJECT data="navbar1.gif" type="image/gif" usemap="#mapa1">
</OBJECT>
...Aqui, o resto da páxina... <MAP name="mapa1"> <P>Navega o sítio: <A href="guia.html" shape="rect" coords="0,0,118,28">Guia de aceso</a> | <A href="atallo.html" shape="rect" coords="118,0,184,28">Ir</A> | <A href="procura.html" shape="circle" coords="184,200,60">Procurar</A> | <A href="os10.html" shape="poly" coords="276,0,276,28,100,200,50,50,276,0">Os dez mellores</A> </MAP> </BODY> </HTML>
No seguinte exemplo, creamos un mapa de imaxes semellantes, esta vez usando o elemento AREA . Observe-se o uso de texto alt :
<P><OBJECT data="navbar1.gif" type="image/gif" usemap="#mapa1">
<P>Esta é unha barra de navegación
</OBJECT>
<MAP name="mapa1">
<AREA href="guia.html"
alt="Guia de aceso"
shape="rect"
coords="0,0,118,28">
<AREA href="procura.html"
alt="Procurar"
shape="rect"
coords="184,0,276,28">
<AREA href="atallo.html"
alt="Ir"
shape="circle"
coords="184,200,60">
<AREA href="os10.html"
alt="Os dez mellores"
shape="poly"
coords="276,0,276,28,100,200,50,50,276,0">
</MAP>
Eis unha versión semellante usando o elemento IMG en vez de OBJECT (coa mesma declaración MAP ):
<P><IMG src="navbar1.gif" usemap="#mapa1" alt="barra de navegación">
O exemplo seguinte ilustra como se poden compartillar os mapas de imaxes.
Os elementos OBJECT aniñados son úteis para fornecer substitucións nos casos en que un axente de usuário non aceite determinados formatos. Por exemplo:
<P>
<OBJECT data="barranav.png" type="image/png">
<OBJECT data="barranav.gif" type="image/gif">
texto que descrebe a imaxe... </OBJECT> </OBJECT>
Se o axente de usuário non aceita o formato PNG, tenta mostrar a imaxe GIF. Se non aceita GIF (p.ex., é un axente de usuário baseado na voz), recorre à descrición en texto que se fornece cmo conteúdo do elemento OBJECT interno. Cando se aniñan asi elementos OBJECT , os autores poden querer compartillar mapas de imaxes entre eles:
<P>
<OBJECT data="barranav.png" type="image/png" usemap="#mapa1">
<OBJECT data="barranav.gif" type="image/gif" usemap="#mapa1">
<MAP name="mapa1">
<P>Navega o sítio:
<A href="guia.html" shape="rect" coords="0,0,118,28">Guia de aceso</a> |
<A href="atallo.html" shape="rect" coords="118,0,184,28">Ir</A> |
<A href="procura.html" shape="circle" coords="184,200,60">Procurar</A> |
<A href="os10.html" shape="poly" coords="276,0,276,28,100,200,50,50,276,0">Os dez mellores</A>
</MAP>
</OBJECT>
</OBJECT>
O exemplo seguinte ilustra como se poden especificar áncoras para crear zonas inactivas dentro dun mapa de imaxes. A primeira áncora especifica unha rexión circular pequena sen vínculo asociado. A segunda áncora especifica unha rexión circular maior coas mesmas coordenadas do centro. Combinadas, as duas forman un anel cuxo centro é inactivo e cuxo borde é activo. A orde das definicións das áncoras é importante, xa que o círculo menor debe ir por riba do maior.
<MAP name="maps1">
<P>
<A shape="circle" coords="100,200,50">Sou inactivo.</A>
<A href="vinculo-anel-externo.html" shape="circle" coords="100,200,250">Sou activo.</A>
</MAP>
De maneira semellante, o atributo nohref do elemento AREA declara que a rexión xeométrica non ten vínculo asociado.
Só é posíbel definir un mapa de imaxes do lado do servidor para os elementos IMG e INPUT . No caso de IMG , o IMG debe estar dentro dun elemento A e o atributo booleano ismap ([CI] ) debe estar seleccionado. No caso de INPUT , o INPUT debe ser do tipo "image".
Cando o usuário activa o vínculo facendo clic na imaxe, as coordenadas da pantalla son enviadas directamente ao servidor no que reside o documento. As coordenadas da pantalla expresan-se como valores de píxel relativos à imaxe. Para información normativa sobre a definición dun píxel e como escalá-lo, consulte [CSS1] .
No exemplo seguinte, a rexión activa define un vínculo do lado do servidor. Asi, un clic en calquer ponto da imaxe fará que se lle envien as coordenadas ao servidor.
<P><A href="http://www.acme.com/cgi-bin/competicion">
<IMG src="xogo.gif" ismap alt="destino"></A>
A localización na que se fixo clic é enviada ao servidor como segue. O axente de usuário deriva un URI novo do URI especificado polo atributo href do elemento A , acrescentando-lle `?' seguido das coordenadas x e y separadas por unha vírgula. O vínculo envia-se entón usando o novo URI. No exemplo dado, se o usuário fai clic na localización x=10, y=27, entón o URI derivado é "http://www.acme.com/cgi-bin/competicion?10,27".
Os axentes de usuário que non lle oferezan ao usuário os meios de seleccionar coordenadas específicas (p.ex., axentes de usuário non gráficos que descansan sobre o uso do teclado, axentes de usuários baseados na voz, etc.) deberian-lle enviar as coordenadas "0,0" ao servidor cando se activa o vínculo.
Definicións dos atributos
Cando se especifican, os atributos width e height indican-lles aos axentes de usuário que deben anular o tamaño natural da imaxe ou obxecto en favor destes valores.
Cando o obxecto é unha imaxe, escala-se. Os axentes de usuário deberian-se esforzar en escalar o obxecto ou imaxe para equivaler ao ancho e alto especificados polo autor. Observe-se que as lonxitudes expresadas como percentaxes basean-se no espazo horizontal ou vertical disponíbel actualmente, non no tamaño natural da imaxe, obxecto ou applet.
Os atributos height e width dan-lles aos axentes de usuário unha idea do tamaño dunha imaxe ou obxecto para que lles podan reservar espazo e continuar a mostrar o documento encanto esperan polos dados da imaxe.
Definicións dos atributos
Unha imaxe ou obxecto poden ir rodeadas dun bordo (p.ex., cando o usuário especifica un borde ou cnao a imaxe é o conteúdo dun elemento A ).
Definicións dos atributos
Definicións dos atributos
Os seguintes valores de align refiren-se à posición do obxecto en relación co texto que o rodea:
Outros dous valores, left e right, fan que a imaxe flote na marxe esquerda ou direita actuais. Tratan-se na sección sobre obxectos flotantes .
Interpretacións diferentes do aliñamento. Os axentes de usuário varian na sua interpretación do atributo align . Alguns só teñen en conta o que lle apareceu na liña de texto anterior ao elemento, alguns teñen en conta o texto que haxa aos dous lados do elemento.
Definicións dos atributos
Vários elementos non textuais ( IMG , AREA , APPLET e INPUT ) permiten que os autores especifiquen texto alternativo que sirva como conteúdo cando non se pode mostrar normalmente o elemento. Especificar texto alternativo axuda aos usuários sen terminais gráficas, usuários cuxos navegadores non aceitan formulários, usuários con problemas visuais, os que usan sintetizadores de voz, os que configuraron os seus axentes de usuário gráficos para non mostrar imaxes, etc.
Debe-se especificar o atributo alt para os elementos IMG e AREA . É opcional para os elementos INPUT e APPLET .
Se ben o texto alternativo pode ser moi útil, hai-no que usar con coidado. Os autores deberian seguir as seguintes directrices:
Os implementadores deberian consultar a sección sobre acesibilidade para información sobre como tratar os casos de texto alternativo omitido.