Contents
HTML offers many of the conventional publishing idioms for rich text and structured documents, but what separates it from most other markup languages is its features for hypertext and interactive documents. This section introduces the link (or hyperlink, or Web link), the basic hypertext construct. A link is a connection from one Web resource to another. Although a simple concept, the link has been one of the primary forces driving the success of the Web.
A link has two ends -- called anchors -- and a direction. The link starts at the "source" anchor and points to the "destination" anchor, which may be any Web resource (e.g., an image, a video clip, a sound bite, a program, an HTML document, an element within an HTML document, etc.).
The default behavior associated with a link is the retrieval of another Web resource. This behavior is commonly and implicitly obtained by selecting the link (e.g., by clicking, through keyboard input, etc.).
The following HTML excerpt contains two links, one whose destination anchor is an HTML document named "chapter2.html" and the other whose destination anchor is a GIF image in the file "forest.gif":
<BODY> ...some text... <P>You'll find a lot more in <A href="chapter2.html">chapter two</A>. See also this <A href="../images/forest.gif">map of the enchanted forest.</A> </BODY>
By activating these links (by clicking with the mouse, through keyboard input, voice commands, etc.), users may visit these resources. Note that the href attribute in each source anchor specifies the address of the destination anchor with a URI.
The destination anchor of a link may be an element within an HTML document. The destination anchor must be given an anchor name and any URI addressing this anchor must include the name as its fragment identifier.
Destination anchors in HTML documents may be specified either by the A element (naming it with the name attribute), or by any other element (naming with the id attribute).
Thus, for example, an author might create a table of contents whose entries link to header elements H2, H3, etc., in the same document. Using the A element to create destination anchors, we would write:
<H1>Table of Contents</H1> <P><A href="#section1">Introduction</A><BR> <A href="#section2">Some background</A><BR> <A href="#section2.1">On a more personal note</A><BR> ...the rest of the table of contents... ...the document body... <H2><A name="section1">Introduction</A></H2> ...section 1... <H2><A name="section2">Some background</A></H2> ...section 2... <H3><A name="section2.1">On a more personal note</A></H3> ...section 2.1...
We may achieve the same effect by making the header elements themselves the anchors:
<H1>Table of Contents</H1> <P><A href="#section1">Introduction</A><BR> <A href="#section2">Some background</A><BR> <A href="#section2.1">On a more personal note</A><BR> ...the rest of the table of contents... ...the document body... <H2 id="section1">Introduction</H2> ...section 1... <H2 id="section2">Some background</H2> ...section 2... <H3 id="section2.1">On a more personal note</H3> ...section 2.1...
By far the most common use of a link is to retrieve another Web resource, as illustrated in the previous examples. However, authors may insert links in their documents that express other relationships between resources than simply "activate this link to visit that related resource". Links that express other types of relationships have one or more link types specified in their source anchor.
The roles of a link defined by A or LINK are specified via the rel and rev attributes.
For instance, links defined by the LINK element may describe the position of a document within a series of documents. In the following excerpt, links within the document entitled "Chapter 5" point to the previous and next chapters:
<HEAD> ...other head information... <TITLE>Chapter 5</TITLE> <LINK rel="prev" href="chapter4.html"> <LINK rel="next" href="chapter6.html"> </HEAD>
The link type of the first link is "prev" and that of the second is "next" (two of several recognized link types). Links specified by LINK are not rendered with the document's contents, although user agents may render them in other ways (e.g., as navigation tools).
Even if they are not used for navigation, these links may be interpreted in interesting ways. For example, a user agent that prints a series of HTML documents as a single document may use this link information as the basis of forming a coherent linear document. Further information is given below on using links for the benefit of search engines.
Although several HTML elements and attributes create links to other resources (e.g., the IMG element, the FORM element, etc.), this chapter discusses links and anchors created by the LINK and A elements. The LINK element may only appear in the head of a document. The A element may only appear in the body.
When the A element's href attribute is set, the element defines a source anchor for a link that may be activated by the user to retrieve a Web resource. The source anchor is the location of the A instance and the destination anchor is the Web resource.
The retrieved resource may be handled by the user agent in several ways: by opening a new HTML document in the same user agent window, opening a new HTML document in a different window, starting a new program to handle the resource, etc. Since the A element has content (text, images, etc.), user agents may render this content in such a way as to indicate the presence of a link (e.g., by underlining the content).
When the name or id attributes of the A element are set, the element defines an anchor that may be the destination of other links.
Authors may set the name and href attributes simultaneously in the same A instance.
The LINK element defines a relationship between the current document and another resource. Although LINK has no content, the relationships it defines may be rendered by some user agents.
The title attribute may be set for both A and LINK to add information about the nature of a link. This information may be spoken by a user agent, rendered as a tool tip, cause a change in cursor image, etc.
Thus, we may augment a previous example by supplying a title for each link:
<BODY>
...some text...
<P>You'll find a lot more in <A href="chapter2.html"
title="Go to chapter two">chapter two</A>.
<A href="./chapter2.html"
title="Get chapter two.">chapter two</A>.
See also this <A href="../images/forest.gif"
title="GIF image of enchanted forest">map of
the enchanted forest.</A>
</BODY>
Since links may point to documents encoded with different character encodings, the A and LINK elements support the charset attribute. This attribute allows authors to advise user agents about the encoding of data at the other end of the link.
The hreflang attribute provides user agents with information about the language of a resource at the end of a link, just as the lang attribute provides information about the language of an element's content or attribute values.
Armed with this additional knowledge, user agents should be able to avoid presenting "garbage" to the user. Instead, they may either locate resources necessary for the correct presentation of the document or, if they cannot locate the resources, they should at least warn the user that the document will be unreadable and explain the cause.
<!ELEMENT A - - (%inline;)* -(A) -- anchor --> <!ATTLIST A %attrs; -- %coreattrs, %i18n, %events -- charset %Charset; #IMPLIED -- char encoding of linked resource -- type %ContentType; #IMPLIED -- advisory content type -- name CDATA #IMPLIED -- named link end -- href %URI; #IMPLIED -- URI for linked resource -- hreflang %LanguageCode; #IMPLIED -- language code -- rel %LinkTypes; #IMPLIED -- forward link types -- rev %LinkTypes; #IMPLIED -- reverse link types -- accesskey %Character; #IMPLIED -- accessibility key character -- shape %Shape; rect -- for use with client-side image maps -- coords %Coords; #IMPLIED -- for use with client-side image maps -- tabindex NUMBER #IMPLIED -- position in tabbing order -- onfocus %Script; #IMPLIED -- the element got the focus -- onblur %Script; #IMPLIED -- the element lost the focus -- >
Start tag: required, End tag: required
Unlike Windows drivers, BIOS updates require a reboot and often reset custom settings. The full AutoPatcher ecosystem can apply BIOS updates and reapply your organization’s security settings (e.g., disabling the camera, enabling Secure Boot, setting a supervisor password) during the same maintenance window.
The power of Lenovo AutoPatcher Full isn't the software itself—it's the offline repository. Guard that repository, keep it updated monthly, and you will never have a driver-related blue screen on your Lenovo hardware again.
Have you deployed Lenovo AutoPatcher Full in your enterprise? Share your experiences in the comments below (or on the Lenovo Reddit community).
This draft essay focuses on the Lenovo BIOS Autopatcher, a specialized tool primarily utilized within the enthusiast and repair community to modify ThinkPad BIOS firmware, commonly to remove supervisor passwords, bypass whitelist restrictions, or unlock advanced BIOS menu features.
Essay: The Lenovo BIOS Autopatcher - Bridging Security and Customization
In the landscape of laptop maintenance, few challenges are as intimidating as a locked BIOS. For Lenovo ThinkPad users, particularly those dealing with refurbished or inherited hardware, the Supervisor Password can make a device nearly unusable by restricting access to hardware configuration, boot orders, and security settings. The Lenovo BIOS Autopatcher has emerged as a crucial community-driven solution, enabling users to patch, modify, and flash BIOS firmware to regain control over their systems. What is the Lenovo BIOS Autopatcher?
The Lenovo Auto Patcher is generally not an official software tool provided by Lenovo. Instead, it is a specialized script-based utility often utilized in conjunction with hardware programmers, such as the CH341A USB programmer and a SOIC8 clip. It allows for the modification of BIOS ROM files ("dumped" from the chip) to alter specific variables—specifically to remove supervisor passwords or unlock Advanced Menu features (such as overclocking or memory management). Key Functions of the Full Autopatcher Package
A "full" or comprehensive autopatcher setup typically includes a collection of tools aimed at automating what would otherwise be a complex, manual disassembly process:
BIOS Dumping: Reading the existing BIOS data from the SPI flash chip on the motherboard.
Patching/Modification: The core script automatically detects the BIOS version and applies patches to unlock the firmware (often using tools like UEFIPatch).
Supervisor Password Removal: The script can analyze the dumped BIOS and disable the password check by modifying specific security variables.
Flashing: Rewriting the modified ("patched") BIN file back to the BIOS chip. Use Cases and Target Audience
The tool is heavily used on older ThinkPad models (e.g., T480s, XX30 to XX80 series). It is primarily aimed at:
Repair Technicians: Removing forgotten supervisor passwords without replacing the motherboard.
Enthusiasts: Unlocking hidden advanced settings to improve performance (e.g., changing DRAM timings).
Whitelist Removal: Allowing users to replace Wi-Fi cards or other hardware with non-Lenovo certified parts. Technical Requirements and Risks
Using the Lenovo BIOS Autopatcher is a high-stakes, technical procedure. It requires:
Hardware: A CH341A programmer and a SOIC8 clip to directly connect to the motherboard chip. lenovo autopatcher full
Software: The patching scripts, a BIOS flash tool (like NeoProgrammer or AsProgrammer), and UEFI tools.
Risk: An incorrect modification or interruption during flashing can "brick" the motherboard, requiring a complete chip replacement. Conclusion
The Lenovo BIOS Autopatcher represents the power of community-driven solutions. While Lenovo provides official System Update tools for patching firmware in a secure environment, the Autopatcher fills a necessary gap for independent repair, allowing users to unlock, repair, and maximize the utility of their hardware.
If you can provide more details, I can refine this, including: Which ThinkPad model you are working on?
What is the specific goal? (e.g., removing a supervisor password, unlocking the BIOS menu) Do you have the hardware (CH341A programmer) already?
The Lenovo Autopatcher is a specialized, third-party script designed to unlock BIOS supervisor passwords on specific Lenovo ThinkPad and Yoga laptops. While "full" often refers to finding a comprehensive package of the tool and its dependencies, it is important to note that this is not an official Lenovo utility; rather, it is a community-developed solution frequently discussed on tech forums like Badcaps. What is Lenovo Autopatcher?
The tool—specifically Lenovo Autopatcher 0.2—is used to modify (patch) a raw dump of a laptop's BIOS firmware to disable or remove a forgotten supervisor password. This is typically necessary when users are locked out of the BIOS settings and cannot change the boot order or hardware configurations. Compatibility and Requirements
This method is primarily effective for Lenovo machines featuring eighth-generation Intel CPUs or earlier (e.g., T480, X280, X380 Yoga). Newer models often have more complex security chips that this tool cannot bypass. Essential Hardware & Software:
External Programmer: Most commonly the CH341A USB Programmer with a SOP8 clip to read the BIOS chip directly from the motherboard.
Python Interpreter: The script requires Python to run on your PC.
UEFIReplace: A binary used by the script to modify the BIOS code.
Flashing Software: Tools like NeoProgrammer or ASProgrammer to read from and write to the chip. Step-by-Step Patching Process
The process is technical and carries a risk of "bricking" the laptop if not done carefully.
Dumping the BIOS: Use the CH341A programmer to read the BIOS chip and save it as a .bin file. It is highly recommended to perform this twice and compare the file hashes to ensure a "clean" backup.
Patching: Place your BIOS dump into the folder containing the autopatch.py script. Run the command autopatch in a command prompt. This generates a new file, usually suffixed with _patched.
Flashing: Use your programmer software to write the _patched file back onto the BIOS chip.
Initial Boot: After flashing, the laptop may ask for a password one last time. Entering any random key sequence often triggers the unlock, allowing you to enter the BIOS and reset settings to factory defaults. Official Alternatives for Updates Unlike Windows drivers, BIOS updates require a reboot
For users simply looking to update their system drivers or BIOS without being locked out, Lenovo provides official automation tools: Lenovo ThinkPad T480 - Administrator BIOS Unlock
Unlocking Your ThinkPad: A Full Guide to Using Lenovo Auto-Patcher
Have you ever picked up a used ThinkPad only to find the BIOS is locked by a Supervisor Password? It’s a common headache for tech enthusiasts and refurbishers. Fortunately, the Lenovo BIOS Auto-Patcher
has become a community-standard tool for bypassing these locks on many models.
This post will walk you through what the tool is and the "full" process to use it effectively. What is Lenovo Auto-Patcher? Developed by community members on forums like
, the Auto-Patcher is a Python-based script designed to modify a BIOS dump. It essentially "tricks" the firmware into allowing access so you can remove or reset the existing Supervisor Password. The Full Preparation Checklist
Before you start, you’ll need more than just the script. The process is "full-contact" hardware work: Hardware Programmer : A tool like the CH341A programmer
is typically required to read the BIOS chip directly from the motherboard. SOIC8 Clip
: To connect the programmer to the chip without soldering (though soldering is sometimes more reliable). : To run the script itself. NeoProgrammer or AsProgrammer : To interface with your CH341A and "dump" the BIOS. UEFIReplace
: A utility often bundled with the patcher to help swap firmware modules. Step-by-Step Patching Process 1. Dump the Original BIOS
Connect your clip to the BIOS chip on the motherboard. Use your programmer software to read the chip. Crucial Tip
: Read it twice and compare the file hashes to ensure you have a "clean" dump before proceeding. 2. Apply the Patch Once you have your file, the command-line process is simple:
Place your BIOS dump in the same folder as the Auto-Patcher script. Run the command: autopatch
For the final "clean" finish, many guides recommend flashing your
(unpatched) BIOS back onto the chip. Once restored, the password should be gone, and you can reset BIOS settings to factory defaults. Potential Risks
Lenovo Auto Patcher is a specialized third-party utility used to bypass or remove forgotten BIOS/Supervisor passwords on Lenovo ThinkPads. It is primarily effective for devices with Intel 8th generation processors or older
(e.g., T480, T470s, L440). Newer models typically require more advanced hardware like an RT809H programmer. Core Functionality Have you deployed Lenovo AutoPatcher Full in your enterprise
The tool modifies the laptop's firmware to disable the supervisor password lock. The "full" process involves the following key components and steps: Required Hardware : You must use a hardware programmer, such as the CH341A USB programmer
and a SOIC8 clip, to physically read the data from the BIOS chip on the motherboard. The Script autopatcher script
(often version 0.2) is a Python-based tool that identifies and patches the password-related sections of the BIOS dump. Dependencies : It requires a Python interpreter and the UEFIReplace binary to properly reconstruct the patched firmware. The Patching Process Dump Firmware
: Use the programmer to create at least two backup "dumps" of your current BIOS chip to ensure a clean read. : Drag the dump file onto the command or script. This generates a new file with a Flash and Boot
: Write the patched firmware back to the chip. On the first boot, you may need to enter a random sequence of keys to trigger the bypass.
: Once the password is cleared, the original unpatched BIOS is often flashed back to the chip to restore full system stability. Critical Warning This is not an official Lenovo tool. Modifying BIOS firmware carries a high risk
of permanently "bricking" (rendering unusable) your motherboard if done incorrectly. Always verify your model's compatibility on community forums like before proceeding. or more specific instructions for a particular model Lenovo ThinkPad T480 - Administrator BIOS Unlock
The Lenovo Autopatcher (often referred to as version 0.2) is a specialized community-developed tool used primarily by enthusiasts and repair technicians to bypass or remove Supervisor Passwords (SVP) on Lenovo ThinkPad laptops. It is not an official Lenovo product and is typically sourced from forums like Badcaps. Core Functionality
The tool works by patching a "dump" (backup) of the laptop's BIOS firmware. The process generally follows these steps:
Hardware Connection: Users must physically open the laptop and use an external programmer, such as the CH341A USB Programmer, to read the BIOS chip.
Patching: The backup file (.bin) is processed through the Lenovo Autopatcher software, which modifies the code to disable password checks.
Flashing: The "patched" file is written back to the BIOS chip.
Verification: After a specific reboot sequence, the password is cleared, allowing full access to BIOS settings. Key Performance Insights
Compatibility: It is highly effective for 8th Gen Intel CPUs and older models (e.g., ThinkPad T480, T470, X280).
Limitations: It typically does not work on newer 9th Gen or later systems (like the T14 or P15 Gen 1) because these models use more complex security measures, such as encrypted embedded controllers.
Ease of Use: Requires technical skills, including basic soldering (sometimes) or using SOIC8 clips, and familiarity with command-line tools or Python.
Risk Level: High. Improper flashing can "brick" the device, leading to a black screen or beep codes (e.g., 5 beeps) if the patch fails or the hardware connection is poor. Comparison: Autopatcher vs. Official Tools Lenovo ThinkPad T480 - Administrator BIOS Unlock
AutoPatcher does not uninstall drivers. If a new driver breaks something, you must use Device Manager → Rollback Driver manually.
& ".\AutoPatcher.exe" /AutoUpdate /Silent /NoReboot /LogPath $logPath /RepoPath $repoPath
Attributes defined elsewhere
Each A element defines an anchor
Authors may also create an A element that specifies no anchors, i.e., that doesn't specify href, name, or id. Values for these attributes may be set at a later time through scripts.
In the example that follows, the A element defines a link. The source anchor is the text "W3C Web site" and the destination anchor is "http://www.w3.org/":
For more information about W3C, please consult the <A href="http://www.w3.org/">W3C Web site</A>.
This link designates the home page of the World Wide Web Consortium. When a user activates this link in a user agent, the user agent will retrieve the resource, in this case, an HTML document.
User agents generally render links in such a way as to make them obvious to users (underlining, reverse video, etc.). The exact rendering depends on the user agent. Rendering may vary according to whether the user has already visited the link or not. A possible visual rendering of the previous link might be:
For more information about W3C, please consult the W3C Web site.
~~~~~~~~~~~~
To tell user agents explicitly what the character encoding of the destination page is, set the charset attribute:
For more information about W3C, please consult the <A href="http://www.w3.org/" charset="ISO-8859-1">W3C Web site</A>
Suppose we define an anchor named "anchor-one" in the file "one.html".
...text before the anchor... <A name="anchor-one">This is the location of anchor one.</A> ...text after the anchor...
This creates an anchor around the text "This is the location of anchor one.". Usually, the contents of A are not rendered in any special way when A defines an anchor only.
Having defined the anchor, we may link to it from the same or another document. URIs that designate anchors contain a "#" character followed by the anchor name (the fragment identifier). Here are some examples of such URIs:
Thus, a link defined in the file "two.html" in the same directory as "one.html" would refer to the anchor as follows:
...text before the link... For more information, please consult <A href="./one.html#anchor-one"> anchor one</A>. ...text after the link...
The A element in the following example specifies a link (with href) and creates a named anchor (with name) simultaneously:
I just returned from vacation! Here's a <A name="anchor-two" href="http://www.somecompany.com/People/Ian/vacation/family.png"> photo of my family at the lake.</A>.
This example contains a link to a different type of Web resource (a PNG image). Activating the link should cause the image resource to be retrieved from the Web (and possibly displayed if the system has been configured to do so).
Note. User agents should be able to find anchors created by empty A elements, but some fail to do so. For example, some user agents may not find the "empty-anchor" in the following HTML fragment:
<A name="empty-anchor"></A> <EM>...some HTML...</EM> <A href="#empty-anchor">Link to empty anchor</A>
An anchor name is the value of either the name or id attribute when used in the context of anchors. Anchor names must observe the following rules:
Thus, the following example is correct with respect to string matching and must be considered a match by user agents:
<P><A href="#xxx">...</A> ...more document... <P><A name="xxx">...</A>
ILLEGAL EXAMPLE:
The following example is illegal with respect to uniqueness since the two names
are the same except for case:
<P><A name="xxx">...</A> <P><A name="XXX">...</A>
Although the following excerpt is legal HTML, the behavior of the user agent is not defined; some user agents may (incorrectly) consider this a match and others may not.
<P><A href="#xxx">...</A> ...more document... <P><A name="XXX">...</A>
Anchor names should be restricted to ASCII characters. Please consult the appendix for more information about non-ASCII characters in URI attribute values.
Links and anchors defined by the A element must not be nested; an A element must not contain any other A elements.
Since the DTD defines the LINK element to be empty, LINK elements may not be nested either.
The id attribute may be used to create an anchor at the start tag of any element (including the A element).
This example illustrates the use of the id attribute to position an anchor in an H2 element. The anchor is linked to via the A element.
You may read more about this in <A href="#section2">Section Two</A>. ...later in the document <H2 id="section2">Section Two</H2> ...later in the document <P>Please refer to <A href="#section2">Section Two</A> above for more details.
The following example names a destination anchor with the id attribute:
I just returned from vacation! Here's a <A id="anchor-two">photo of my family at the lake.</A>.
The id and name attributes share the same name space. This means that they cannot both define an anchor with the same name in the same document. It is permissible to use both attributes to specify an element's unique identifier for the following elements: A, APPLET, FORM, FRAME, IFRAME, IMG, and MAP. When both attributes are used on a single element, their values must be identical.
ILLEGAL EXAMPLE:
The following excerpt is illegal HTML since these attributes declare the same
name twice in the same document.
<A href="#a1">...</A> ... <H1 id="a1"> ...pages and pages... <A name="a1"></A>
The following example illustrates that id and name must be the same when both appear in an element's start tag:
<P><A name="a1" id="a1" href="#a1">...</A>
Because of its specification in the HTML DTD, the name attribute may contain character references. Thus, the value Dürst is a valid name attribute value, as is Dürst . The id attribute, on the other hand, may not contain character references.
Use id or name? Authors should consider the following issues when deciding whether to use id or name for an anchor name:
A reference to an unavailable or unidentifiable resource is an error. Although user agents may vary in how they handle such an error, we recommend the following behavior:
<!ELEMENT LINK - O EMPTY -- a media-independent link --> <!ATTLIST LINK %attrs; -- %coreattrs, %i18n, %events -- charset %Charset; #IMPLIED -- char encoding of linked resource -- href %URI; #IMPLIED -- URI for linked resource -- hreflang %LanguageCode; #IMPLIED -- language code -- type %ContentType; #IMPLIED -- advisory content type -- rel %LinkTypes; #IMPLIED -- forward link types -- rev %LinkTypes; #IMPLIED -- reverse link types -- media %MediaDesc; #IMPLIED -- for rendering on these media -- >
Start tag: required, End tag: forbidden
Attributes defined elsewhere
This element defines a link. Unlike A, it may only appear in the HEAD section of a document, although it may appear any number of times. Although LINK has no content, it conveys relationship information that may be rendered by user agents in a variety of ways (e.g., a tool-bar with a drop-down menu of links).
This example illustrates how several LINK definitions may appear in the HEAD section of a document. The current document is "Chapter2.html". The rel attribute specifies the relationship of the linked document with the current document. The values "Index", "Next", and "Prev" are explained in the section on link types.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>Chapter 2</TITLE> <LINK rel="Index" href="../index.html"> <LINK rel="Next" href="Chapter3.html"> <LINK rel="Prev" href="Chapter1.html"> </HEAD> ...the rest of the document...
The rel and rev attributes play complementary roles -- the rel attribute specifies a forward link and the rev attribute specifies a reverse link.
Consider two documents A and B.
Document A: <LINK href="docB" rel="foo">
Has exactly the same meaning as:
Document B: <LINK href="docA" rev="foo">
Both attributes may be specified simultaneously.
When the LINK element links an external style sheet to a document, the type attribute specifies the style sheet language and the media attribute specifies the intended rendering medium or media. User agents may save time by retrieving from the network only those style sheets that apply to the current device.
Media types are further discussed in the section on style sheets.
Authors may use the LINK element to provide a variety of information to search engines, including:
The examples below illustrate how language information, media types, and link types may be combined to improve document handling by search engines.
In the following example, we use the hreflang attribute to tell search engines where to find Dutch, Portuguese, and Arabic versions of a document. Note the use of the charset attribute for the Arabic manual. Note also the use of the lang attribute to indicate that the value of the title attribute for the LINK element designating the French manual is in French.
<HEAD>
<TITLE>The manual in English</TITLE>
<LINK title="The manual in Dutch"
type="text/html"
rel="alternate"
hreflang="nl"
href="http://someplace.com/manual/dutch.html">
<LINK title="The manual in Portuguese"
type="text/html"
rel="alternate"
hreflang="pt"
href="http://someplace.com/manual/portuguese.html">
<LINK title="The manual in Arabic"
type="text/html"
rel="alternate"
charset="ISO-8859-6"
hreflang="ar"
href="http://someplace.com/manual/arabic.html">
<LINK lang="fr" title="La documentation en Français"
type="text/html"
rel="alternate"
hreflang="fr"
href="http://someplace.com/manual/french.html">
</HEAD>
In the following example, we tell search engines where to find the printed version of a manual.
<HEAD>
<TITLE>Reference manual</TITLE>
<LINK media="print" title="The manual in postscript"
type="application/postscript"
rel="alternate"
href="http://someplace.com/manual/postscript.ps">
</HEAD>
In the following example, we tell search engines where to find the front page of a collection of documents.
<HEAD>
<TITLE>Reference manual -- Page 5</TITLE>
<LINK rel="Start" title="The first page of the manual"
type="text/html"
href="http://someplace.com/manual/start.html">
</HEAD>
Further information is given in the notes in the appendix on helping search engines index your Web site.
<!ELEMENT BASE - O EMPTY -- document base URI --> <!ATTLIST BASE href %URI; #REQUIRED -- URI that acts as base URI -- >
Start tag: required, End tag: forbidden
Attribute definitions
Attributes defined elsewhere
In HTML, links and references to external images, applets, form-processing programs, style sheets, etc. are always specified by a URI. Relative URIs are resolved according to a base URI, which may come from a variety of sources. The BASE element allows authors to specify a document's base URI explicitly.
When present, the BASE element must appear in the HEAD section of an HTML document, before any element that refers to an external source. The path information specified by the BASE element only affects URIs in the document where the element appears.
For example, given the following BASE declaration and A declaration:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>Our Products</TITLE> <BASE href="http://www.aviary.com/products/intro.html"> </HEAD> <BODY> <P>Have you seen our <A href="../cages/birds.gif">Bird Cages</A>? </BODY> </HTML>
the relative URI "../cages/birds.gif" would resolve to:
http://www.aviary.com/cages/birds.gif
User agents must calculate the base URI for resolving relative URIs according to [RFC1808], section 3. The following describes how [RFC1808] applies specifically to HTML.
User agents must calculate the base URI according to the following precedences (highest priority to lowest):
Additionally, the OBJECT and APPLET elements define attributes that take precedence over the value set by the BASE element. Please consult the definitions of these elements for more information about URI issues specific to them.