Versão original: Links | Traduzido por: De Sena Viegas


12 Links ou ligações

Conteúdos

  1. Introdução aos links e às âncoras [anchors]
    1. Visitar um recurso “linkado”
    2. Outros tipos de situações envolvendo os "links"
    3. Especificando os "links" e as âncoras
    4. Títulos dos links
    5. A internacionalização dos "links"
  2. O elemento A
    1. Sintaxe dos nomes das âncoras
    2. Os "links" encaixados são ilegais
    3. Âncoras com o atributo id
    4. Recursos indisponíveis ou não identificáveis
  3. Relações ao nível do documento: O elemento LINK
    1. "Links" directos e reversos
    2. Os "links" e as folhas de estilo externas
    3. Os "links" e as máquinas de busca
  4. Informação referente à localização: O elemento BASE
    1. Resolvendo a questão dos URIs relativos

12.1 Introdução aos "links" e às âncoras

O HTML oferece-nos muitos dos idiomas convencionais para a publicação do texto rico ou de documentos estruturados, mas aquilo que realmente o separa de outras linguagens de marcação são as suas propriedades para os hipertextos e documentos interactivos. Esta secção introduz-nos o link [(hiper)ligação ou "hyperlink"), a construção básica do hipertexto. Um “link” é uma ligação estabelecida entre dois recursos da Web. Se bem que ele seja um conceito simples, o “link” foi um dos alicerces para o sucesso da Web.

Um link tem duas extremidades, denominadas de âncoras, e uma direcção. O “link” começa na âncora de origem e aponta para a âncora de destino, a qual poderá ser qualquer um dos recursos da Web (por exemplo, uma imagem, um vídeo, um fragmento sonoro, um programa, um documento HTML, um elemento contido num documento HTML, etc.).

12.1.1 Visitar um recurso “linkado”

O comportamento por defeito associado a um “link” consiste na chamada de um outro recurso da Web. Este comportamento é comum e obtido implicitamente ao seleccionar-se o referido “link” (por exemplo, através do teclado, etc.).

O excerto HTML que se segue, contém dois “links“, um cuja a âncora de destino é um documento HTML chamado "chapter2.html" e o outro cuja a âncora de destino é uma imagem GIF denominada "forest.gif":

<BODY>
...texto...
<P>Você encontrará muito mais no <a href="chapter2.html">Capítulo dois</A>.
Veja também este <A href="../images/forest.gif">mapa da floresta encantada</A>.
</BODY>

Os utentes podem visitar esses recursos ao se activarem os referidos “links” (passando-lhes com o rato por cima, através de um comando do teclado, através de comandos de voz, etc.). Note que o atributo href que está contido em cada uma das âncoras de origem especifica o endereço da âncora de destino, através de um URI.

A âncora de destino de um link poderá ser um elemento contido num elemento HTML. A essa âncora de destino terá de se dar um nome, sendo ainda de notar que qualquer URI a ela endereçado deverá incluir o mesmo nome que o identificador do fragmento.

As âncoras de destino nos documentos HTML podem ser especificadas através do elemento A (nomeando-o com o atributo name), ou por qualquer outro elemento (atribuindo-se um nome através do atributo id).

Assim, por exemplo, um autor poderá criar uma tabela de conteúdos cujas entradas dêeam acesso (estejam ligadas) aos elementos do cabeçalho H2, H3, etc., contidos no mesmo documento. Usando o elemento A para criar âncoras de destino, poderíamos escrever:

<H1>Tabela dos conteúdos</H1>
<P><A href="#section1">Introdução</A><BR>
<A href="#section2">Algumas referências</A><BR>
<A href="#section2.1">Notas pessoais</A><BR>
...o resto dos conteúdos...
...corpo do documento...
<H2><A name="section1">Introdução</A></H2>
...Secção 1...
<H2><A name="section2">Algumas referências</A></H2>
...Secção 2...
<H3><A name="section2.1">Notas pessoais</A></H3>
...Secção 2.1...

Nós poderemos obter o mesmo efeito, fazendo dos próprios elementos de cabeçalho âncoras:

<H1>Tabela dos conteúdos</H1>
<P><A href="#section1">Introdução</A><BR>
<A href="#section2">Algumas referências</A><BR>
<A href="#section2.1">Notas pessoais</A><BR>
...o resto dos conteúdos...
...corpo do documento...
<H2 id="section1">Introdução</H2>
...Secção 1...
<H2 id="section2">Algumas referências</H2>
...Secção 2...
<H3 id="section2.1">Notas pessoais</H3>
...Secção 2.1...

12.1.2 Outras relações com os “links”

O mais comum dos usos para um “link” é de longe, como nos foi ilustrado nos exemplos anteriores, o de reaver ou obter um outro recurso da Web. Os autores poderão contudo inserir “links” nos seus documentos, os quais definam outras relações entre os referidos recursos que apenas o activar de um “link” para visitar o recurso e ele relacionado. “Links” que expressem outros tipos de relações, contêm um ou mais tipos de link especificados na sua âncora de origem.

As funções de um “link”, definidas por A ou LINK, são especificadas através dos atributos rel e rev.

Por exemplo, os “links” definidos pelo elemento LINK poderão descrever a posição de um documento contido numa série de documentos. No fragmento que se segue, os “links” contidos no documento "Capítulo 5" apontam para os capítulos anterior e posterior:

<HEAD>
...outros elementos do cabeçalho...
<TITLE>Capítulo 5</TITLE>
<LINK rel="prev" href="chapter4.html">
<LINK rel="next" href="chapter6.html">
</HEAD>

O tipo do primeiro "link" is "prev" e o do segundo "link" é "next"(dois dos vários tipos de "links"). Os "links" especificados por LINK não são exibidos com o conteúdo dos documentos, se bem que os agentes usados pelos utentes os possam exibir de outras maneiras (por exemplo, sob a forma de ferramentas de navegação).

Mesmo que eles não sejam usados para a navegação, esses “links” poderão ser interpretados de interessantes maneiras. Por exemplo, um agente que imprima uma série de documentos HTML como um único documento, poderá usar a informação referente ao “link”, como base na formação de um documento linear e coerente. Para mais informações, ver o uso de "links” em benefício dos motores de busca.

12.1.3 Especificando os "links" e as âncoras

Se bem que os “links” possam ainda ser criados por vários elementos e atributos HTML com outros fins (exemplo: o elemento IMG, o elemento FORM, etc.), este capítulo discute os “links” e as âncoras criadas pelos elementos LINK e A. O elemento LINK só pode aparecer uma vez no cabeçalho de um documento. O elemento A só pode aparecer no corpo do documento (“body”).

Quando se define o atributo do elemento A, nomeadamente href, o elemento define uma âncora de origem para um “link” que possa ser activado pelos utentes, com o fim de se visitar ou consultar um determinado recurso na Web. A âncora de origem é o local da instância A e a âncora de destino é o recurso da Web.

O recurso visitado poderá ser tratado pelo agente de várias maneiras: abrindo-se um novo documento HTML na mesma janela, abrindo-se um documento HTML numa janela diferente, iniciando-se um novo programa para que se possa lidar com o recurso, etc. Desde que o elemento A possua um conteúdo (texto, imagens, etc.), os agentes usados pelos utentes poderão exibir esse mesmo conteúdo, assinalando para isso a presença de um “link” (exemplo: sublinhando o o nome ou conteúdo mencionado).

Quando os atributos name ou id do elemento A são aplicados, o elemento define uma âncora que possa ser o porto de destino de outros “links”.

Os autores poderão aplicar simultaneamente os atributos name e href numa mesma instância de A.

O elemento LINK define uma relação entre o actual documento e um determinado recurso. Se bem que o elemento LINK não possua nenhum conteúdo, a relação que foi dessa forma definida, poderá ser exibida por outros agentes.

12.1.4 Títulos dos “links”

O atributo title poderá ser definido para os elementos A e LINK, com vista a adicionar informação referente à natureza do “link”. Essa informação poderá ser ditada por um agente, exibida como como sugestão para o uso das ferramentas de um programa, provocar uma mudança na imagem do cursor, etc.

Assim, nós poderemos aumentar um exemplo prévio fornecendo um título a cada “link”:

<BODY>
...texto...
<P>Você encontrará muito mais informações no <A href="chapter2.html"
       title="Go to chapter two">Capítulo dois</A>.
<A href="./chapter2.html"
       title="Get chapter two.">Capítulo dois</A>.
Veja também este <A href="../images/forest.gif"
       title="GIF image of enchanted forest">mapa da
mapa da floresta encantada</A>.
</BODY>

12.1.5 A internacionalização dos "links"

Dado que os “links” poderão apontar para documentos com uma codificação dos caracteres diferente, os elementos A e LINK suportam o atributo charset. Este atributo permite aos autores avisar os agentes acerca da codificação dos dados na âncora de destino do “link”.

O atributo hreflang fornece aos agentes informação acerca da linguagem do recurso de destino, e o atributo lang fornece informação acerca da linguagem do conteúdo de um elemento ou os valores dos atributos.

Equipados com este conhecimento adicional, os agentes deverão estar aptos a evitar apresentar apenas “lixo” ao utente. Em vez disso, eles poderão localizar os recursos necessários a uma correcta apresentação do documento ou, se eles não conseguirem localizar os referidos recursos, avisar o utente de que o documento é ilegível.

12.2 O elemento A

<!ELEMENT A - - (%inline;)* -(A)       -- âncora -->
<!ATTLIST A
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- codificação dos caracteres dos recursos linkados --
  type        %ContentType;  #IMPLIED  -- tipo de conteúdo consultivo --
  name        CDATA          #IMPLIED  -- nome do destino do link --
  href        %URI;          #IMPLIED  -- URI do recurso linkado --
  hreflang    %LanguageCode; #IMPLIED  -- código da linguagem --
  rel         %LinkTypes;    #IMPLIED  -- tipos de links directos --
  rev         %LinkTypes;    #IMPLIED  -- tipos de links inversos --
  accesskey   %Character;    #IMPLIED  -- carácter da tecla de acesso --
  shape       %Shape;        rect      -- para usar com mapas de imagem da parte do cliente --
  coords      %Coords;       #IMPLIED  -- para usar com mapas de imagem da parte do cliente --
  tabindex    NUMBER         #IMPLIED  -- posição na ordem de tabulação --
  onfocus     %Script;       #IMPLIED  -- focaliza o elemento --
  onblur      %Script;       #IMPLIED  -- o elemento é desfocalizado --
  >

"tag" de abertura: requirida, "tag" de encerramento: requerida

Definições do atributo

name = cdata [CS]
Este atributo nomeia a actual âncora de forma a que ela possa ser o destino de um outro “link”. O valor deste atributo tem que ser um nome exclusivo para a âncora. O campo de acção para este nome é o próprio documento! Note-se que este atributo partilha o mesmo espaço nominal que o atributo id.
href = uri [CT]
Este atributo especifica a localização de um determinado recurso na Web, através da definição de um “link” entre o actual elemento (a âncora de origem) e a âncora de destino por ele definida.
hreflang = langcode [CI]
Este atributo especifica a linguagem básica do recurso designado por href e só pode ser usado quando href for especificado.
type = content-type [CI]
Este atributo fornece uma sugestão relativa ao tipo de conteúdo disponível no endereço do “link” de destino. Ele permite aos utentes optar pelo uso de um mecanismo de substituição ou de retorno em vez de chamar o conteúdo, se tiverem sido avisados que o tipo de conteúdo invocado não é suportado pelos agentes utilizados nessa acção.
Os autores que usem este atributo, assumem a responsabilidade dos riscos que possam advir de uma eventual inconsistência com o conteúdo disponível no endereço “link” de destino.
Para ter uma perspectiva da actual lista dos tipos de conteúdo registrados, consulte por favor a referência [MIMETYPES].
rel = link-types [CI]
Este atributo descreve a relação entre o actual documento e a âncora especificada pelo atributo href. O valor por defeito deste atributo consiste numa lista com nomes de tipos de “links” separados por espaços.
rev = link-types [CI]
Este atributo é usado para descrever o link inverso da âncora especificada pelo atributo href para o actual documento. O valor deste atributo é-nos dado sob a forma de uma lista contendo nomes de tipos de “links”.
charset = charset [CI]
Este atributo especifica qual a codificação dos caracteres do recurso que foi designado pelo “link”. Para obter mais detalhes, consulte a secção codificação de caracteres.

Atributos definidos noutros lugares:

Cada um dos elementos A define uma âncora.

  1. O conteúdo do elemento A define a posição da âncora.
  2. O atributo name, designa uma âncora de modo a que ela possa ser o destino de zero ou mais “links” (ver também âncoras com o atributo id).
  3. O atributo href faz desta âncora a âncora de origem de exactamente um "link”.

Os autores poderão também criar um elemento A que não especifique âncoras, ou seja, que não especifique os atributos href, name ou id. Os valores para esses atributos poderão ser definidos posteriormente através dos scripts.

No exemplo que se segue, o elemento A define um “link”. O texto "W3C Web site" é a âncora de origem e a âncora de destino é "http://www.w3.org/":

Para mais informações acerca da W3C, consulte por favor a
<A href="http://www.w3.org/">Página da W3C Web</A>.

Este “link” designa a homepage do Consórcio da World Wide Web. Quando o utente activar este “link” num agente, o referido agente irá buscar a fonte, que neste caso é um documento HTML.

Os agentes apresentam geralmente os “links” de uma forma que os tornem óbvios aos utentes (sublinhados, video inverso, etc.). A sua representação exacta depende do agente que é usado pelo utente. A sua exibição poderá variar de acordo com o facto do utente já ter visitado ou não o referido “link”. Uma possível representação visual do “link” anterior poderá ser:

Para mais informações acerca da W3C, consulte por favor a homepage da W3C Web.
                                                   ~~~~~~~~~~~~

Para se indicar aos agentes explicitamente qual o tipo de codificação dos caracteres da página de destino, utiliza-se o atributo charset:

Para mais informações acerca da W3C, consulte por favor a
<A href="http://www.w3.org/" charset="ISO-8859-1">Página da W3C Web</A>

Suponha-se que nós definimos uma âncora chamada “ancora-um” no ficheiro “one.html”.

...texto antes da âncora...
<A name="ancora-um">Esta é a localização da âncora um</A>.
...texto depois da âncora...

Isto cria uma âncora à volta do texto “Esta é a localização da âncora um!”. Normalmente, os conteúdos de A não são exibidos de nenhuma maneira especial se A definir apenas uma âncora.

Depois de se ter definido a âncora, nós poderemos ligá-la no próprio documento ou a um outro documento. Os URIs que designam âncoras, contêm um carácter "#" seguido do nome da âncora (o identificador do fragmento). Eis aqui alguns exemplos desses URIs:

Desta forma, um “link” definido no ficheiro “dois.html”, contido na mesma directoria que o ficheiro “um.html” referir-se-ia a uma âncora, como a seguir lhe é exemplificado:

...texto antes do “link”...
Para mais informações, consulte a <A href="./um.html#anchor-one">âncora um</A>.
...texto a seguir ao “link”...

No exemplo que se segue, o elemento A especifica um “link” (através de href) e cria simultaneamente uma âncora (através de name):

Regressei agora mesmo das férias! Eis aqui uma
<A name="ancora-dois"
   href="http://www.somecompany.com/People/Ian/vacation/family.png">
foto da minha família na lagoa.</A>.

Este exemplo contém uma ligação a um tipo de recurso diferente (uma imagem PNG). Activar esse “link” ou ligação deverá levar a que a imagem seja “retirada” da Web (e possivelmente apresentada no seu monitor, se o sistema tiver sido configurado para tal!).

Nota: os agentes deveriam estar aptos a encontrar âncoras criadas por elementos A vazios, mas em realidade nem todos estão. Por exemplo, alguns agentes poderão não encontrar a “âncora vazia” no fragmento HTML que se segue:

<A name="ancora-vazia"></A>
<EM>...algum HTML...</EM>
<A href="#ancora-vazia">Ligação à âncora vazia</A>

12.2.1 A sintaxe dos nomes das âncoras

O nome de uma âncora é-nos dado sob a forma do valor dos atributos name ou id, sempre que estes sejam usados no mesmo contexto que as âncoras. Os nomes das âncoras devem respeitar as seguintes regras:

Seguindo essa mesma lógica, o exemplo que se segue estaria correcto, no que diz respeito á correspondência dos segmentos, e deverá ser considerado pelos agentes:

<P><A href="#xxx">...</A>
...mais documento...
<P><A name="xxx">...</A>

EXEMPLO ILEGAL:
O exemplo que se segue é ilegal, no que diz respeito à unicidade ou singularidade, dado que os dois nomes são iguais, se bem que difiram no caso (maiúsculas e minúsculas):

<P><A name="xxx">...</A>
<P><A name="XXX">...</A>

Se bem que o próximo exemplo seja um exemplo HTML, o comportamento do agente usado pelo utente não é definido; alguns agentes poderão (de uma forma incorrecta!) considerá-lo como uma correspondência e outros não.

<P><A href="#xxx">...</A>
...mais documento...
<P><A name="XXX">...</A>

Os nomes das âncoras deverão estar restringidos aos caracteres ASCII. Consulte o Apêndice para mais informações acerca dos caracteres não-ASCII nos valores dos atributos URI.

12.2.2 O encaixamento de “links” é ilegal

Os “links” e as âncoras definidas pelo elemento A não podem ser encaixadas; um elemento A não poderá conter outros elementos A.

Dado que a DTD define que o elemento LINK deve estar vazio, os elementos LINK também não poderão ser encaixados.

12.2.3 Âncoras contendo o atributo id

O atributo id poderá ser usado para criar uma âncora na “tag” de abertura de qualquer elemento (incluíndo na do elemento A).

Este exemplo ilustra-nos o uso do atributo id, com o fim de se posicionar uma âncora num elemento H2. A âncora também é ligada, através do elemento A.

Você poderá ler mais notas explicativas na <A href="#section2">Secção dois</A>.
...posteriormente no documento
<H2 id="section2">Secção dois</H2>
...posteriormente no documento
<P>Consulte a <A href="#section2">Secção dois</A>, mais acima,
para mais detalhes.

O exemplo que se segue designa uma âncora de destino, por intermédio do atributo id:

Regressei agora mesmo das férias! Eis aqui uma
<A id="anchor-two">foto da minha família na lagoa</A>.

Os atributos id e name partilham o mesmo espaço nominal. Isto significa que eles não podem definir ao mesmo tempo uma âncora com o mesmo nome no mesmo documento. É permitido usar-se os dois atributos para especificar o único identificador de um elemento, no caso dos elementos que se seguem: A, APPLET, FORM, FRAME, IFRAME, IMG e MAP. Quando ambos atributos forem usados num único elemento, os seus valores têm de ser idênticos.

EXEMPLO ILEGAL:
O fragmento HTML que se segue é ilegal, dado que os atributos declaram o mesmo nome duas vezes no mesmo documento.

<A href="#a1">...</A>
...
<H1 id="a1">
...páginas e páginas...
<A name="a1"></A>

O exemplo que se segue ilustra-nos o facto dos atributos id e name terem de ser os mesmos, sempre que eles aparecerem na “tag” de abertura de um elemento:

<P><A name="a1" id="a1" href="#a1">...</A>

De acordo com a sua especificação na DTD do HTML, o atributo name poderá conter referências de caracteres. Assim, o valor D&#xfc;rst é um valor válido para o atributoname, bem como o valor D&uuml;rst . O atributo id, por outro lado, não poderá conter referências de caracteres.

Usar id ou name? Os autores deverão considerar os seguintes aspectos, sempre que tiverem de decidir se deverão usar id ou name para atribuir um nome a uma âncora:

12.2.4 Recursos não disponíveis ou identificáveis

Uma referência feita a um recurso não disponível ou identificável é considerada como sendo um erro. Embora os agentes possam variar na forma como lidam com o referido erro, nós recomendamos o seguinte procedimento:

12.3 Relações entre os documentos: o elemento LINK

<!ELEMENT LINK - O EMPTY               -- ligação independente dos média -->
<!ATTLIST LINK
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- codificação dos caractéres do recurso “linkado” --
  href        %URI;          #IMPLIED  -- URI do recurso “linkado” --
  hreflang    %LanguageCode; #IMPLIED  -- código da linguagem --
  type        %ContentType;  #IMPLIED  -- tipo de conteúdo consultivo --
  rel         %LinkTypes;    #IMPLIED  -- tipos de ligações directas --
  rev         %LinkTypes;    #IMPLIED  -- tipos de ligações inversas --
  media       %MediaDesc;    #IMPLIED  -- para exibir nestes meios --
  >

"tag" de abertura: <strong>requirida</strong>, "tag" de encerramento: proíbida

Atributos definidos noutros lugares:

Este elemento define um “link”. Ao contrário do elemento A, ele pode aparecer apenas na secção HEAD do documento, se bem que em contrapartida ele possa aparecer tantas vezes quanto o necessário ou o definido. Se bem que LINK não possua nenhum conteúdo, ele transmite a informação dessa relação, a qual poderá ser representada pelos agentes de variadas maneiras (por exemplo, uma barra de ferramentas com um menu de “drop-down” contendo “links”).

Este exemplo ilustra-nos a forma como várias definições LINK poderão aparecer na secção HEAD de um documento. O actual documento chama-se “Capitulo2.html”. O atributo rel especifica a relação entre o documento “linkado” e o documento actual. Os valores "Index", "Next" e "Prev" serão explicados na secção referente aos tipos de “links”.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
  <TITLE>Capítulo 2</TITLE>
  <LINK rel="Index" href="../index.html">
  <LINK rel="Next"  href="Capitulo3.html">
  <LINK rel="Prev"  href="Capitulo1.html">
</HEAD>
...o resto do documento...

12.3.1 Links directos e inversos

Os atributos rel e rev desempenham papéis complementares – o atributo rel especifica os links directos e o atributo rev especifica links inversos.

Considere os documentos A e B.

Documento A:       <LINK href="docB" rel="foo">

Isso assume exactamente o mesmo significado que:

Documento B:       <LINK href="docA" rev="foo">

Os dois atributos podem ser especificados simultaneamente.

12.3.2 Os links e as folhas de estilo externas

Nos casos em que o elemento LINK liga uma folha de estilo externa a um documento, o atributo type especifica a linguagem da folha de estilo e o atributo media especifica o meio ou os meios que permitem a sua exibição. Os agentes poderão assim poupar algum tempo ao invocar ou retirar da rede apenas as folhas de estilo que se apliquem ao corrente engenho.

Os tipos de meios serão discutidos posteriormente, na secção referente às folhas de estilo.

12.3.3 Os links e os motores de busca

Os autores poderão usar o elemento LINK para fornecer aos motores de busca informações variadas, incluindo:

O exemplo que se segue ilustra-nos a forma como a informação da linguagem, os tipos de média e tipos de links poderão ser combinados para melhorar a forma como os documentos são processados pelos motores de busca.

No exemplo que se segue, nós usamos o atributo hreflang para indicar aos motores de busca onde encontrar as versões dos documentos em Holandês, Português e Arábico. Note-se aqui o uso do atributo charset no caso do documento em Arábico. Note-se também o uso do atributo lang para indicar que o valor do atributo title contido no elemento LINK, o qual define que o manual Francês é escrito na Língua Francesa.

<HEAD>
<TITLE>O manual em Inglês</TITLE>
<LINK title="O manual em Holandês"
      type="text/html"
      rel="alternate"
      hreflang="nl"
      href="http://algures.com/manual/holandes.html">
<LINK title="O manual em Português"
      type="text/html"
      rel="alternate"
      hreflang="pt"
      href="http://algures.com/manual/portugues.html">
<LINK title="O manual em Arábico"
      type="text/html"
      rel="alternate"
      charset="ISO-8859-6"
      hreflang="ar"
      href="http://algures.com/manual/arabico.html">
<LINK lang="fr" title="La documentation en Fran&ccedil;ais"
      type="text/html"
      rel="alternate"
      hreflang="fr"
      href="http://algures.com/manual/frances.html">
</HEAD>

No exemplo que se segue, nós indicamos aos motores de busca qual a localidade da versão do manual que é destinada à impressão.

<HEAD>
<TITLE>Manual de referência </TITLE>
<LINK media="print" title="O manual em postscript"
      type="application/postscript"
      rel="alternate"
      href="http://algures.com/manual/postscript.ps">
</HEAD>

No exemplo que se segue, nós indicamos aos motores de busca qual a localidade da página principal de uma colecção de documentos.

<HEAD>
<TITLE>Manual de referência -- Página 5</TITLE>
<LINK rel="Start" title="A primeira página do manual"
      type="text/html"
      href="http://algures.com/manual/start.html">
</HEAD>

Na secção Ajudando os motores de busca a indexar a sua Website ser-lhe-ão fornecidas mais informações.

12.4 Informação referente à localização: o elemento BASE

<!ELEMENT BASE - O EMPTY               -- URI do documento básico -->
<!ATTLIST BASE
  href        %URI;          #REQUIRED -- URI que actua como URI básico --
  >

"tag" de abertura: requerida, "tag" de encerramento: proíbida

Definições do atributo

href = uri [CT]
Este atributo especifica um URI absoluto, o qual age como URI básico na resolução dos URIs relativos.

Atributos definidos noutros lugares:

Em HTML, os links e as referências a imagens externas, applets, programas de processamento de formulários, folhas de estilo, etc., são sempre especificados por um URI. Os URIs relativos são resolvidos de acordo com um URI básico, o qual poderá provir várias fontes. O elemento BASE permite aos autores especificar explicitamente o URI básico de um documento.

Sempre que presente, o elemento BASE tem que aparecer contido na secção HEAD do documento HTML, antes de qualquer outro elemento que se refira a uma fonte externa. A informação referente à rota, especificada pelo elemento BASE, afecta apenas os URIs do documento que o contenham.

Por exemplo, dadas as seguintes declarações de BASE e de A:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
 <HEAD>
   <TITLE>Os nossos produtos</TITLE>
   <BASE href="http://www.aviario.com/produtos/intro.html">
 </HEAD>

 <BODY>
   <P>Já viu as nossas <A href="../gaiolas/passaros.gif">gaiolas</A>?
 </BODY>
</HTML>

O URI relativo "../gaiolas/passaros.gif" seria resolvido ou transformado em:

http://www.aviario.com/gaiolas/passaros.gif

12.4.1 Resolvendo os URIs relativos

Os agentes têm que calcular o URI básico para a resolução dos URIs relativos, de acordo com [RFC1808], na secção 3. O exemplo que se segue descreve a forma como a referência [RFC1808] é aplicada especificamente ao HTML.

Os agentes têm que calcular o URI básico de acordo com as seguintes precedências (da maior prioridade para a menor):

  1. O URI básico é definido pelo elemento BASE.
  2. O URI básico é dado pelo dado META, descoberto durante uma interacção protocolar, como por exemplo num cabeçalho HTTP (ver [RFC2616]).
  3. Por defeito, o URI básico é o mesmo que o do actual documento. Nem todos os documentos HTML têm um URI básico (por exemplo, um documento HTML válido poderá aparecer num email e não ser designado por um URI). Tais documentos HTML serão considerados erróneos, se contiverem URIs relativos e dependerem de um URI básico estabelecido por defeito.

Adicionalmente, os elementos OBJECT e APPLET definem atributos que têm precedência sobre o valor definido pelo elemento BASE. Consulte as definições dos referidos elementos para obter mais informações acerca dos URIs em relação a eles.

Nota: nas versões de HTTP onde se defina um cabeçalho LINK, os agentes deveriam processar esses cabeçalhos da mesma forma que os elementos LINK contidos nesse documento. O HTTP 1.1, tal como é definido pela referência [RFC2616], não inclui nenhum campo com um cabeçalho LINK (secção 19.6.3).