validator/htdocs/docs install.html,1.1,1.2 devel.html,1.15,1.16 errors.html,1.26,1.27 help.html,1.14,1.15 index.html,1.9,1.10 sgml.html,1.14,1.15 users.html,1.17,1.18 why.html,1.6,1.7

Update of /sources/public/validator/htdocs/docs
In directory hutz:/tmp/cvs-serv15496/htdocs/docs

Modified Files:
	devel.html errors.html help.html index.html sgml.html 
	users.html why.html 
Added Files:
	install.html 
Log Message:
Merging from branch validator-0_6_0-branch, at tag validator-0_6_5-release.


Index: sgml.html
===================================================================
RCS file: /sources/public/validator/htdocs/docs/sgml.html,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- sgml.html	24 May 2003 20:32:46 -0000	1.14
+++ sgml.html	9 May 2004 15:56:50 -0000	1.15
@@ -3,8 +3,11 @@
 --><!--#set var="title" value="Introduction To SGML for The W3C Markup Validation Service"
 --><!--#set var="relroot" value="../"
 --><!--#include virtual="../header.html" -->
-    <div id="skip">
-      <h2 id="sgml">What is SGML?</h2>
+<div class="doc"><a id="skip" name="skip"></a>
+<h2>Introduction to SGML<br /> for the W3C Markup Validator</h2>
+
+    <div>
+      <h3 id="sgml">What is SGML?</h3>
       <p>
         SGML stands for Standard Generalized Markup Language. This is
         actually a slight misnomer, since SGML is actually a
@@ -24,7 +27,7 @@
     </div>
 
     <div>
-      <h2 id="dtd">What is a DTD?</h2>
+      <h3 id="dtd">What is a DTD?</h3>
       <p>
         For our purposes, a DTD, or Document Type Definition, is simply a file
         that defines the syntax of a <a href="#sgml">SGML</a>-based language.
@@ -42,8 +45,8 @@
     </div>
 
     <div>
-      <h2 id="doctype">What is this <code>DOCTYPE</code> thing The Validator
-        keeps pestering me for?</h2>
+      <h3 id="doctype">What is this <code>DOCTYPE</code> thing The Validator
+        keeps pestering me for?</h3>
 
       <p>
         A <code>DOCTYPE</code> is a <a href="#sgml">SGML</a> document type
@@ -93,6 +96,7 @@
         The Validator.
       </p>
     </div>
+</div>
 <!--#include virtual="../footer.html" -->
   </body>
 </html>

Index: devel.html
===================================================================
RCS file: /sources/public/validator/htdocs/docs/devel.html,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- devel.html	24 May 2003 20:32:46 -0000	1.15
+++ devel.html	9 May 2004 15:56:50 -0000	1.16
@@ -4,195 +4,65 @@
 --><!--#set var="relroot" value="../"
 --><!--#include virtual="../header.html" -->
 
-    <p id="skip">
-      The W3C Markup Validation Service consists of an SGML Parser, an SGML
-      catalog, a CGI program and it's configuration files. In addition it
-      relies on a moderately large set of Perl modules for it's operation.
-    </p>
+<div class="doc">
+<h2>Installation and development information <br />for the W3C Markup Validator</h2>
+
+<h3 id="TableOfContents">Table of Contents</h3>
+
+    <div id="toc">
+      <ul>
+	<li><a href="#participate">Participate</a></li>
+        <li><a href="devel-frame">Development Framework</a>
+	  <ul>
+		<li><a href="#bug">Bugs and Issue Tracking</a></li>
+		<li><a href="#test">Test suite</a></li>
+        	<li><a href="#todo">TODO</a></li>
+	  </ul>
+	</li>
+      </ul>
+    </div>
+    
     <p>
-      This document tries to draw a road map of the prerequisites and what the
-      different parts of the system do. It is intended for system
-      administrators and people interested in helping developing the validator.
-      This is not end user documentation. See the
-      <a href="users.html">User Manual</a> for usage instructions.
+    <a id="skip" name="skip"></a>
+      This document is an overview of how developers can modify the Markup Validator, and how to contribute
+      to the development of the project. It is intended for system administrators and developers.
+      <strong>This is not end user documentation</strong>. See the <a href="users.html">User Manual</a> for usage instructions.
     </p>
+	
+     <h3><a id="participate" name="participate"></a>Participating in the development of the Markup Validator</h3>
+     <p>The Markup Validator is managed as an open source project by a <a href="http://www.w3.org/QA/Tools/qa-dev">team 
+     of volunteer developers and people from the W3C Team</a>.</p>
+     <p> Help on this project is always welcome, usually as <a href="../feedback.html">feedback</a>,
+     but developers may also be interested in working directly on the code, which is certainly encouraged.</p>
 
-    <div id="prereq" class="stb">
-      <h2>Prerequisites</h2>
-      <p>
-        Apart from a properly configured web server, the Validator needs a
-        SGML parser -- that does all the hard work -- and several Perl
-        modules used by the "check" CGI script.
-      </p>
-      <p>
-        The SGML parser we're currently using is <code>OpenSP 1.5</code>,
-        which can be found on the
-        <a href="http://openjade.sourceforge.net/">OpenJade home page</a>.
-      </p>
-      <p>
-        The canonical list of Perl modules we use can be found in the source
-        for the "check" CGI script. There is a bunch of lines that of the form
-        "use Foo::Bar" where each "Foo::Bar" represents a module. Most modules
-        can be found on <a href="http://www.cpan.org/">CPAN</a> (minimum
-        versions in parenthesis after the name). The following
-        list was complete when CVS spit out:
-        <code>$Date$</code>. <tt>:-)</tt>
-      </p>
-      <dl>
-        <dt><code>CGI (2.81)</code></dt>
-        <dd>
-          The all-singing, all-dancing,
-          everything-<em>and</em>-the-kitchen-sink, Perl CGI library. This
-          takes care of all those niggly little bits of CGI for us and make
-          options parsing and file upload a breeze.
-        </dd>
-        <dt><code>CGI::Carp</code></dt>
-        <dd>CGI-aware warn()/die()</dd>
-        <dt><code>File::Spec</code></dt><dd>Portable filespecs.</dd>
-        <dt><code>HTML::Parser (3.25)</code></dt>
-        <dd>Minimal HTML Parser used for preparse and finding metadata.</dd>
-        <dt><code>LWP::UserAgent (1.90)</code></dt>
-        <dd>
-          Gisle Aas' most excellent WWW library for Perl. This is where our
-          support for downloading pages off the net comes from.
-        </dd>
-        <dt><code>Set::IntSpan</code></dt><dd>Efficient Set operations.</dd>
-        <dt><code>Text::Iconv</code></dt>
-        <dd>
-          Perl-native interface to the (g)libc iconv(3) library. Handles
-          charset conversion issues.
-        </dd>
-        <dt><code>Text::Wrap</code></dt>
-        <dd>Wrap text to a sane width. Needed for source output in results.</dd>
-        <dt><code>URI::Escape</code></dt>
-        <dd>Module to handle escaping special characters in URIs.</dd>
-      </dl>
-    </div>
-    <div id="config" class="stb">
-      <h2>Configuration Files</h2>
-      <p>
-        The validator uses a number of configuration files -- most of which
-        are really mapping tables of some form -- to avoid having to check in
-        a new version of the code every time a new version of HTML comes out.
-        All configuration files can be found in
-        <code>$CVSROOT/validator/htdocs/config/</code>.
-      </p>
+     <p>This document tries to give a general overview of the development framework for the Markup Validator, and
+     should help developers get a good idea of how the project is managed.</p>
+     <p>The next steps would certainly be to read about <a href="../source/">source availability</a> and then try 
+     a <a href="install.html">local installation</a> of the validator, if not done yet. We also (obviously) recommend
+     to get in touch with other developers, either through <a href="../feedback.html">regular means</a>, or on the
+     IRC channel #validator on irc.freenode.net where many developers and contributors often are.</p>
+
+     <h3><a name="devel-frame" id="devel-frame"></a>Development Framework</h3>
+
+	<h4>Bug and Issue Tracking System</h4>
       <p>
-        To really understand what each does you should read the source, but
-        here is a short description to get you started.
+        Bug and Issue Tracking for the Validator happens in the <a
+          href="http://www.w3.org/Bugs/Public/">W3C Public Bugzilla</a>
+        instance. Developers should feel free to set up an account
+        and report bugs, enhancement requests, patches, etc. directly there
+        (end users should continue to send reports and ideas to the 
+	<a href="http://lists.w3.org/Archives/Public/www-validator/">mailing list</a>).
       </p>
-      <dl>
-        <dt>validator.conf</dt>
-        <dd>
-          Main configuration file. Gives various parameters (such as the
-          address of the maintainer and the URL for the "Home Page") and
-          the locations of the other configuration files and mapping tables.
-        </dd>
-        <dt>types.conf</dt>
-        <dd>
-          <p>
-	    The main document type database for the Validator. This file
-            contains information on all the document types we know of. It
-            lets us map from a Public Identifier to a plain text version
-            string, lookup an URL for more information on a DOCTYPE, and
-            check which Content-Types and Namespaces are legal for this
-            particular DOCTYPE.
-          </p>
-          <p>And entry in this file looks like this:</p>
-<pre>
-&lt;XHTML_1_1&gt;
-  Name       = html
-  Display    = XHTML 1.1
-  Info_URL   = http://www.w3.org/TR/xhtml11/
-  PubID      = -//W3C//DTD XHTML 1.1//EN
-  SysID      = http://www.w3.org/TR/2001/REC-xhtml11-20010531/DTD/xhtml11-flat.dtd
-  Parse_Mode = XML
-  &lt;Content_Types&gt;
-    Allowed   = application/xhtml+xml
-    Forbidden = text/html
-    Preferred = application/xhtml+xml
-  &lt;/Content_Types&gt;
-  &lt;Namespaces&gt;
-    Allowed   = http://www.w3.org/1999/xhtml
-    Required  = 1
-  &lt;/Namespaces&gt;
-  &lt;Badge&gt;
-    URI    = http://www.w3.org/Icons/valid-xhtml11
-    Height = 31
-    Width  = 88
-  &lt;/Badge&gt;
-&lt;/XHTML_1_1&gt;
-</pre>
-          <p>
-            The name used for each section (e.g. "XHTML_1_1") is arbitrary.
-            The file will be turned inside out and will end up indexed by
-            the "PubID". This means that you cannot have two entries with
-            the same PubID. The rest of the parameters are:
-          </p>
-          <table class="config">
-            <tr><th>Name</th><td>The "Document Type Name" for this document type.</td></tr>
-	    <tr><th>Display</th><td>The pretty text version for the PubID.</td></tr>
-	    <tr><th>Info_URL</th><td>URL for more information on the PubID.</td></tr>
-            <tr><th>PubID</th><td>The Formal Public Identifier for this document type.</td></tr>
-	    <tr><th>SysID</th><td>A System Identifier for the DTD.</td></tr>
-	    <tr><th>Parse_Mode</th><td>Boolean describing whether to treat this as XML or SGML.</td></tr>
-	    <tr>
-	      <th>Content_Types</th>
-              <td class="subtable">
-	        <table>
-	          <tr><th>Allowed</th><td>Allowed Content-Types</td></tr>
-	          <tr><th>Forbidden</th><td>Forbidden Content-Types</td></tr>
-	          <tr><th>Preferred</th><td>Preferred Content-Types</td></tr>
-	        </table>
-	      </td>
-	    </tr>
-	    <tr>
-	      <th>Namespaces</th>
-	      <td class="subtable">
-	        <table>
-	          <tr><th>Allowed</th><td>Allowed Namespaces</td></tr>
-	          <tr><th>Required</th><td>Boolean describing whether a Namespace is required in this document type.</td></tr>
-	        </table>
-	      </td>
-	    </tr>
-	    <tr>
-	      <th>Badge</th>
-	      <td class="subtable">
-	        <table>
-	          <tr><th>URI</th><td>URI for a "Valid Foo" badge.</td></tr>
-	          <tr><th>Height</th><td>Height of this image.</td></tr>
-	          <tr><th>Width</th><td>Width of this image.</td></tr>
-	        </table>
-	      </td>
-	    </tr>
-          </table>
-        </dd>
-        <dt>eref.cfg</dt>
-        <dd>
-          Contains the mappings from element names to an URI fragment
-          (relative to a configurable URI) for their definitions. Used
-          in output when the "Show Source Input" option is enabled.
-        </dd>
-        <dt>frag.cfg</dt>
-        <dd>
-          Maps error messages to an URI fragment identifier where an
-          explanation of that error can be found.
-        </dd>
-        <dt>type.cfg</dt>
-        <dd>
-          Maps MIME/HTTP Content-Types to an internal "document type" which
-          is used for treating HTML, XML, and XHTML in different ways.
-        </dd>
-        <dt>validator.conf</dt>
-        <dd>
-          Main configuration file. Gives various parameters (such as the
-          address of the maintainer and the URL for the "Home Page") and
-          the locations of the other configuration files and mapping tables.
-        </dd>
-       </dl>
-    </div>
-    <div id="todo" class="stb">
-      <h2>TODO</h2>
+      <h4><a id="test" name="test"></a>Test suite</h4>
+
+       <p>
+         Any changes to the service will attempt to maintain
+         compatibility with a <a href="../dev/tests/">list of test cases</a>.
+       </p>
+       <p>We are in the process of turning this (crude) list into a more manageable 
+	testing framework.</p>
+
+      <h4><a id="todo" name="todo"></a>TODO</h4>
       <p>
         The TODO list for the Validator is online at
         &lt;<a href="../todo.html">http://validator.w3.org/todo.html</a>&gt;.
@@ -210,19 +80,9 @@
         think is a Good Idea&reg;. While extra features are nice, they
         shouldn't dilute the value of the validator as an objective check.
       </p>
-    </div>
-    <div id="bugzilla" class="stb">
-      <h2>Bugs and Issue Tracking</h2>
-      <p>
-        Bug and Issue Tracking for the Validator happens in the <a
-          href="http://www.w3.org/Bugs/Public/">W3C Public Bugzilla</a>
-        instance. Developers should feel free to set up an account
-        and report bugs, enhancement requests, patches, etc. directly there
-        (end users should continue to send stuff to the mailinglist).
-      </p>
-    </div>
 
+
+</div>
 <!--#include virtual="../footer.html" -->
   </body>
 </html>
-

Index: why.html
===================================================================
RCS file: /sources/public/validator/htdocs/docs/why.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- why.html	1 Dec 2002 13:40:33 -0000	1.6
+++ why.html	9 May 2004 15:56:50 -0000	1.7
@@ -3,7 +3,7 @@
 --><!--#set var="title" value="Why Validate?"
 --><!--#set var="relroot" value="../"
 --><!--#include virtual="../header.html" -->
-    <div id="skip" class="colophon">
+    <div id="skip" name="skip" class="colophon">
       <h2>Why Validate?</h2>
       <p>
         This document attempts to answer the questions many people have

Index: users.html
===================================================================
RCS file: /sources/public/validator/htdocs/docs/users.html,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- users.html	24 May 2003 20:32:46 -0000	1.17
+++ users.html	9 May 2004 15:56:50 -0000	1.18
@@ -3,8 +3,14 @@
 --><!--#set var="title" value="User Documentation for The W3C Markup Validation Service"
 --><!--#set var="relroot" value="../"
 --><!--#include virtual="../header.html" -->
+
+<div class="doc">
+
+<h2>User's guide for the W3C Markup Validator</h2>
+
+<h3 id="TableOfContents">Table of contents</h3>
+
     <div id="toc">
-      <h2 id="TableOfContents">Table of contents</h2>
 	<ul>
 	<li><a href="#Quickstart">Quick Start</a></li>
 	<li><a href="#Introduction">Introduction</a></li>
@@ -17,7 +23,7 @@
     </div>
 
     <div id="Quickstart">
-      <h2 id="skip">Quick Start</h2>
+      <h3><a id="skip" name="skip"></a>Quick Start</h3>
       <p>
         Just type (or Cut&amp;Paste) the URL for the page you want to validate
         into the text field on the form and press the "Validate this page"
@@ -32,7 +38,7 @@
     </div>
 
     <div id="Introduction" class="stb">
-      <h2>Introduction</h2>
+      <h3>Introduction</h3>
       <p>
         The W3C Markup Validation Service is a web gateway to a well known SGML
         parser called SP. SP will take your HTML and compare it to a set of
@@ -56,7 +62,7 @@
     </div>
 
     <div id="Options" class="stb">
-      <h2>The Options</h2>
+      <h3>The Options</h3>
       <p>
         In addition to the text field where you enter an URL -- or the file
         selection field if you are uploading files -- there are a few
@@ -66,69 +72,75 @@
       </p>
 
       <dl>
-	<dt id="option-charset">Encoding</dt>
+	<dt><a id="option-charset" name="option-charset"></a>Encoding</dt>
 	<dd>
-	  This allows you to <strong>override</strong> the character encoding
+	  <p>This allows you to <strong>override</strong> the character encoding
 	  information about your document. You may use this option for test 
 	  purposes, but you will eventually have to serve your document with the
 	  correct character encoding, or the validator will <a href="help#faq-charset">complain</a> 
-	  about it and you document will not be valid.
+	  about it and you document will not be valid.</p>
 	</dd>
-	<dt id="option-fbc">Use Fallback instead of Override (Encoding) (<code>fbc</code>)</dt>
+	<dt><a id="option-fbc" name="option-fbc"></a>Use Fallback instead of Override (Encoding) (<code>fbc</code>)</dt>
 	<dd>
-	  Uses the <a href="#option-charset">character encoding override</a> mechanism
+	  <p>Uses the <a href="#option-charset">character encoding override</a> mechanism
 	  described above, but only does it as a fall back mechanism if the actual document
 	  is not served with character encoding information. Think of this as a gentler 
-	  override mechanism.
+	  override mechanism.</p>
 	</dd>
-	<dt id="option-doctype">Type</dt>
+	<dt><a id="option-doctype" name="option-doctype"></a>Type</dt>
 	<dd>
-	  This allows you to <strong>override</strong> the DOCTYPE declaration for you
+	  <p>This allows you to <strong>override</strong> the DOCTYPE declaration for you
 	  document. You may use this option for test 
           purposes, but you will eventually have to serve your document with the
           correct character encoding, or the validator will <a href="help#faq-doctype">complain</a>
-          about it and you document will not be valid.
+          about it and you document will not be valid.</p>
 	</dd>
-	<dt id="option-fbc">Use Fallback instead of Override (Type) (<code>fbd</code>)</dt>
+	<dt><a id="option-fbd" name="option-fbd"></a>Use Fallback instead of Override (Type) (<code>fbd</code>)</dt>
         <dd>
-          Uses the <a href="#option-doctype">Doctype override</a> mechanism
+          <p>Uses the <a href="#option-doctype">Doctype override</a> mechanism
           described above, but only does it as a fall back mechanism if the actual document
-          does not have a Doctype declaration. Think of this as a gentler override mechanism.
+          does not have a Doctype declaration. Think of this as a gentler override mechanism.</p>
         </dd>
 
 
-        <dt id="option-ss">Show source input (<code>ss</code>)</dt>
+        <dt><a id="option-ss" name="option-ss"></a>Show source input (<code>ss</code>)</dt>
         <dd>
-          Displays the HTML source of the document you validated and links
+          <p>Displays the HTML source of the document you validated and links
           error messages directly to lines in this output. Makes it easy to
-          see what's wrong.
+          see what's wrong.</p>
         </dd>
-        <dt id="option-outline">Show an outline of this document (<code>outline</code>)</dt>
+        <dt><a id="option-outline" name="option-outline"></a>Show an outline of this document (<code>outline</code>)</dt>
         <dd>
-          Will generate an outline of your document from the H1 - H6 elements.
+          <p>Will generate an outline of your document from the H1 - H6 elements.
           For a properly formed document, this will be a nicely nested tree
           structure. The visualization of your document's structure makes it
-          easier to see where you've skipped a heading.
+          easier to see where you've skipped a heading.</p>
         </dd>
-        <dt id="option-sp">Show parse tree (<code>sp</code>)</dt>
+        <dt><a id="option-sp" name="option-sp"></a>Show parse tree (<code>sp</code>)</dt>
         <dd>
-          Shows you exactly how the SGML Parser read your document. Probably
+          <p>Shows you exactly how the SGML Parser read your document. Probably
           best used only by advanced users as it deals with low-level SGML
-          constructs.
+          constructs.</p>
         </dd>
-        <dt id="option-noatt">exclude attributes from the parse tree (<code>noatt</code>)</dt>
-        <dd>Suppress attributes from the <a href="#option-sp">parse tree</a> to make it 
-	more readable.</dd>
-	<dt id="option-no200">Validate error pages</dt>
-	<dd>The Markup Validator will usually tell you if the page you tried to validate
-	could not be retrieved (for example, if the server gave a "404 not found" message.
-	In some circumstances you may want to be able to validate the error page sent by 
-	the server. This is the option to use then.
+        <dt><a id="option-noatt" name="option-noatt"></a>exclude attributes from the parse tree (<code>noatt</code>)</dt>
+        <dd>
+	  <p>Suppress attributes from the <a href="#option-sp">parse tree</a> to make it 
+	  more readable.</p>
 	</dd>
-	<dt id="option-verbose">Verbose Output</dt>
-	<dd>This option triggers verbose output. By default the validator will only output
-	the validity result if the document is valid, but you may want to have the rest of 
-	the information (outline, etc.). This is the option to use then.
+	<dt><a id="option-no200" name="option-no200"></a>Validate error pages</dt>
+	<dd>
+	  <p>The Markup Validator will usually tell you if the page you tried to validate
+	  could not be retrieved (for example, if the server gave a "404 not found" message.
+	  In some circumstances you may want to be able to validate the error page sent by 
+	  the server. This is the option to use then.</p>
+	</dd>
+	<dt><a id="option-verbose" name="option-verbose"></a>Verbose Output</dt>
+	<dd>
+	  <p>This option triggers verbose output. By default the validator will only output
+	  the validity result if the document is valid, but you may want to have more
+	  information. This is the option to use then. The verbose output also provides helpful
+	  explanations in addition to the error messages, which makes it a generally useful
+	  option. </p>
 	</dd>
 
 
@@ -136,7 +148,7 @@
     </div>
 
     <div id="Calling" class="stb">
-      <h2>Calling/Linking to the Validator</h2>
+      <h3>Calling/Linking to the Validator</h3>
       <p>
         You can link directly to the Validator home page, or you can call the
         Validator CGI program. The home page is &lt;<a
@@ -148,7 +160,7 @@
       <p>
         If you call the CGI program with extra path info matching "/referer"
         (i.e. &lt;<a href="http://validator.w3.org/check/referer">http://validator.w3.org/check/referer</a>&gt;)
-        it will fetch the refering document and validate that. This means that
+        it will fetch the referring document and validate that. This means that
         if you embed a link to that URL in your pages, following on that link
         will send you the validation results for that page.
       </p>
@@ -174,7 +186,7 @@
     </div>
 
     <div id="Interpret" class="stb">
-      <h2>Interpreting the results</h2>
+      <h3>Interpreting the results</h3>
       <p>
         In spite of our efforts,  interpreting the Markup Validator's error messages 
 	isn't quite what you'd call easy. The error messages are generated in the 
@@ -197,7 +209,7 @@
         we can validate to see for ourselves.
       </p>
       <div id="Output" class="stb">
-        <h3>Output Options</h3>
+        <h4>Output Options</h4>
         <p>
           In addition to the HTML output intended for human consumption in a
           browser, the Validator has some experimental features to generate
@@ -212,7 +224,7 @@
 	  may well be removed or disabled at any time. They are provided now
 	  to garner public feedback to determine how best to support this
 	  functionality in the future. One particularly likely option being
-	  considered is removing these features alltogether in favor of a
+	  considered is removing these features altogether in favor of a
 	  full-blown SOAP interface. <em>You have been warned!</em>
 	</p>
         <dl>
@@ -268,7 +280,7 @@
               elements may appear more then once.
             </p>
             <div id="dtd-meta">
-	      <h4>The <code>meta</code> element</h4>
+	      <h5>The <code>meta</code> element</h5>
 	      <p>
                 The <code>meta</code> element contains various metadata about
 	        about the Validated document. It contains further elements
@@ -295,7 +307,7 @@
               </p>
             </div>
 	    <div id="dtd-warnings">
-	      <h4>The <code>warnings</code> element</h4>
+	      <h5>The <code>warnings</code> element</h5>
 	      <p>
 	        The <code>warnings</code> element can contain only one sub-element;
 	        the <code>warning</code> element. Multiple <code>warning</code>
@@ -305,7 +317,7 @@
 	      </p>
 	    </div>
 	    <div id="dtd-messages">
-	      <h4>The <code>messages</code> element.</h4>
+	      <h5>The <code>messages</code> element.</h5>
 	      <p>
 	        The <code>messages</code> element can contain only one sub-element;
 	        the <code>msg</code> element. Multiple <code>msg</code> elements
@@ -324,7 +336,7 @@
     </div>
 
     <div id="CommaTools">
-      <h2>Comma Tools / Site Tools</h2>
+      <h3>Comma Tools / Site Tools</h3>
       <p>
 	This site uses "comma tools", as does <a href="http://www.w3.org/,tools">W3C</a>
 	and other sites. This means you can append a string (starting with a comma, hence 
@@ -422,17 +434,21 @@
 </div>
 
     <div id="Installing" class="stb">
-      <h2>Installing a local Validator</h2>
+      <h3>Installing a local Validator</h3>
       <p>
-        You can download the Validator to run on your own system, but it's not
-        recommended for average users as the process is rather complex and
-        involves obscure incantations on the command line. <tt>:-)</tt>
+        You can download the Validator to run on your own system. For Web design departments
+	or agencies it can be a very good idea, saving time and allowing you to not send 
+	documents under work or confidential pages over the wire,  but it is a complex operation, 
+	and is not recommended for average users, for which the free online service at W3C
+	should suffice.
       </p>
       <p>
-        If you feel you're up to the task, you can find the information you need
-        in our <a href="devel.html">Developer Manual</a>.
+	We have created a simple <a href="install.html">Installation manual</a>, which, along with 
+	the <a href="devel.html">Developer's information</a>, should help you install a local instance
+	of the Markup Validator in your own network easily.
       </p>
     </div>
+</div>
 
 <!--#include virtual="../footer.html" -->
   </body>

Index: help.html
===================================================================
RCS file: /sources/public/validator/htdocs/docs/help.html,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- help.html	24 May 2003 20:32:46 -0000	1.14
+++ help.html	9 May 2004 15:56:50 -0000	1.15
@@ -4,13 +4,31 @@
 --><!--#set var="relroot" value="../"
 --><!--#include virtual="../header.html" -->
 
+<div class="doc">
+<h2>Help and <acronym title="Frequently Asked Questions">FAQ</acronym> for the Markup Validator</h2>
+
+<p><q cite="http://lists.w3.org/Archives/Public/www-validator/2004Jan/0101.html">Nothing wrong with 
+the validator here, it just knows HTML better than you do.</q> -- David Dorward, Validator's 
+mailing-list.</p>
+
+<h3 id="TableOfContents">Table of contents</h3>
 <div id="toc">
-<h2 id="TableOfContents">Table of contents</h2>
 <ul>
   <li>About the Markup Validator
   <ul>
+        <li>
+		<a href="#clickedandlost">Help me! I clicked on an icon and ended up 
+		on this strange site!</a>
+	</li>
 	<li>
-		<a href="#what-is-it">What is the Markup Validator and what does it do?</a>
+		<a href="#validation_basics">What is <em>Markup Validation</em>?</a>
+	</li>
+	<li>
+		<a href="#validandquality">Is validation some kind of quality control? 
+	Does "valid" mean "quality approved by W3C"?</a>
+	</li>
+	<li>
+		<strong><a href="#what-is-it">What is the Markup Validator and what does it do?</a></strong>
 	</li>
 	<li>
 		<a href="#why-validate">Why validate?</a>
@@ -33,7 +51,7 @@
   <li>Using this service
   <ul>
 	<li>
-		<a href="#manual">How do I use the Markup validator?</a>
+		<strong><a href="#manual">How do I use the Markup validator?</a></strong>
 	</li>	
 	<li>
 		<a href="#errors">What is (are) this (these) error message(s)?</a>
@@ -44,22 +62,24 @@
 	<li>
 		<a href="#cleanup">I don't want error messages, I want you to clean up my page!</a>
 	</li>
+	<li>
+		<a href="#icon">My document is valid, can I use your "valid" icon?</a>
+	</li>
   </ul>
   </li>
   <li>Miscellaneous (Very) Frequently Asked Questions
   <ul>
 	<li>
-		<a href="#faq-doctype">No DOCTYPE Declaration Found!</a>
+		<a href="#faq-doctype"><q>No DOCTYPE Declaration Found!</q></a>
 	</li>
 	<li>
-		<a href="#faq-charset">The validator is <q>not able to extract 
-		a character encoding</q></a> 
+		<a href="#faq-charset"><q>No Character Encoding Found!</q></a> 
 	</li>
 	<li>
 		<a href="#faq-ampersand">The validator complains about "&amp;" in my URLs!</a>
 	</li>
 	<li>
-		<a href="#faq-javascript">The validator complains about something in my Javascript!</a>
+		<a href="#faq-javascript">The validator complains about something in my JavaScript!</a>
 	</li>
 	<li>
 		<a href="#faq-linkandmeta">Why doesn't the validator like my &lt;link ... /&gt; 
@@ -69,15 +89,81 @@
 		<a href="#faq-typo">I found some nasty typo like &lt;p&lt;a ...&gt; 
 		and the validator accepted it!</a>
 	</li>
+	<li>
+		<a href="#faq-referer">/check/referer does not work</a> or the validator says it does not support 
+		my <a href="#faq-referer">"undefined" URI scheme</a>
+	</li>
    </ul>
    </li>
 </ul>
 </div>
 
 
-<div id="skip">
-<h2 id="about">About the Markup Validator</h2>
-      <h3 id="what-is-it">What is the Markup Validator and what does it do?</h3>
+<div><a id="skip" name="skip"></a>
+<h3 id="about">About the Markup Validator</h3>
+    <h4 id="clickedandlost">Help me! I clicked on an icon and ended up on this strange site!</h4>
+      <p>Don't panic!</p>
+
+      <p>
+	The author of the Web page you come from once used our service
+	to <em>validate</em> that page, and the page passed validation. 
+	The author was then authorized to use the icon on that page, as
+	a claim of <em>validity</em>. The icon is used as a link back to
+	the validation service, so that the author can <em>revalidate</em>
+	whenever necessary. This is why, by clicking on the icon, you 
+	followed a link to the current <em>validation results</em> for
+	the page you came from.
+      </p>
+
+      <p>
+	The validation result was certainly positive ("this page is valid..."),
+	but if it wasn't, you would probably do the author of the page where
+	the icon was a favor if you could warn him/her of this abnormal situation.
+      </p>
+
+
+      <p>
+	If you are curious about Markup validation you may read this
+	help document further, or you may simply use the back button
+	of your Web browser to come back to the page where you found 
+	the "valid" icon.
+      </p>
+
+    <h4 id="validation_basics">What is <em>Markup Validation</em>?</h4>
+      <p>Most pages on the World Wide Web are written in computer languages
+	(such as <acronym title="Hypertext Markup Language">HTML</acronym>)
+	that allow Web authors to structure text, add multimedia content, and
+	specify what appearance, or style, the result should have.</p>
+
+     <p>As for every language, these have their own <em>grammar</em>, <em>vocabulary</em>
+	and <em>syntax</em>, and every document written with these computer languages
+	are supposed to follow these rules. However, just as texts in a natural language
+	can include spelling or grammar errors, documents using Markup  languages
+	may (for various reasons) not be following these rules.</p>
+
+      <p>The process of verifying whether a document actually follows the rules for the
+	language(s) it uses is called <em>validation</em>, and the tool used for that
+	is a validator. A document that passes this process with success is called 
+	<em>valid</em>.
+      </p>
+
+    <h4 id="validandquality">Is validation some kind of quality control? 
+	Does "valid" mean "quality approved by W3C"?</h4>
+
+      <p>Validity is one of the quality criteria for a Web page, but there are
+	many others. In other words, a <em>valid</em> Web page is not necessarily
+	a good web page, but an <em>invalid</em> Web page has little chance
+	of being a good web page.</p>
+
+     <p>For that reason, the fact that the W3C Markup Validator says that
+	one page passes validation does <strong>not</strong> mean that
+	W3C assesses that it is a good page. It only means that a tool (not 
+	necessarily without flaws) has found the page to comply with a specific
+	set of rules. No more, no less. This is also why the "valid ..." icons 
+	should never be considered as a "W3C seal of quality".</p>
+
+
+    <h4 id="what-is-it">What is the Markup Validator and what does it do?</h4>
       <p>
 	The Markup Validator is a free tool and service that checks the 
 	syntax of (X)HTML documents.</p> 
@@ -88,7 +174,7 @@
       </p>
       <p><a href="../about.html">Learn more</a> about the Markup Validator.</p>
 
-      <h3 id="why-validate">Why should I validate my HTML pages?</h3>
+    <h4 id="why-validate">Why should I validate my HTML pages?</h4>
       <p>
         One of the important maxims of computer programming is: <q>Be
         conservative in what you produce; be liberal in what you accept.</q>
@@ -108,16 +194,19 @@
         sure your pages are legal HTML. The best way to do that is by
         running your documents through one or more HTML validators. 
       </p>
-     
+      <p>A <a href="why.html">lengthier answer</a> to this question is
+	also available on this site if the explanation above did not satisfy 
+	you.
+      </p>
 
-      <h3 id="who-does-validator">Who owns/maintain the Markup Validator?</h3>
-      <p>The Markup Validator is Maintained at <acronym
+    <h4 id="who-does-validator">Who owns/maintain the Markup Validator?</h4>
+      <p>The Markup Validator is maintained at <acronym
 	title="World Wide Web Consortium">W3C</acronym> by W3C staff and 
-	benevolent collaborators, who receive a lot of help from contributors. 
-	(Read the <a href="http://validator.w3.org:8001/about.html#credits">full credits</a>)
+	benevolent collaborators, who receive a lot of help from contributors
+	(read the <a href="../about.html#credits">full credits</a>).
       </p>
 
-      <h3 id="others">What other validators are there?</h3>
+    <h4 id="others">What other validators are there?</h4>
 	<p>
 	We're doing our best to provide clear and reliable results as well as
 	a good interface with the Markup Validator, but for some reason you
@@ -137,7 +226,7 @@
 	</p>
 	
 
-      <h3 id="how">How does The Validator work?</h3>
+    <h4 id="how">How does The Validator work?</h4>
       <p>
 	The Validator is based on <a href="http://www.jclark.com/">James
         Clark</a>'s <code><a href="http://www.jclark.com/sp/">nsgmls</a></code>
@@ -146,7 +235,7 @@
         resulting error list for easier reading. 
       </p>
 
-      <h3 id="howto-feedback">How do I send feedback/bug reports about the Markup Validator?</h3>
+    <h4 id="howto-feedback">How do I send feedback/bug reports about the Markup Validator?</h4>
       <p>Read the instructions on our <a href="../feedback.html">Feedback page</a>.</p>
 </div>
 
@@ -154,12 +243,15 @@
 
 
 <div>
-<h2 id="using">Using this service</h2>
+<h3 id="using">Using this service</h3>
 
-      <h3 id="manual">How do I use this service?</h3>
-      <p>
-	Most probably, you will want to use the online Markup Validation service.
-	Read the <a href="users.html">user's manual</a> for further help with this
+    <h4 id="manual">How do I use this service?</h4>
+      <p>Most probably, you will want to use the online Markup Validation service.
+	The simple way to use this service to validate a Web page is to paste its 
+	address into the <a href="../#uri">text area</a> on the 
+	<a href="..">validator's home page</a>, and press the "Check" button.</p>
+      <p>There are other possible uses and a few usage options, please
+	read the <a href="users.html">user's manual</a> for further help with this
 	service.
       </p>
       <p>
@@ -167,14 +259,14 @@
 	check out our <a href="devel.html">developer's documentation</a>.
       </p>
 
-      <h3 id="errors">What are these error messages?</h3>
-      <p>The output of the Markup Validator may be hard to decypher for
+    <h4 id="errors">What are these error messages?</h4>
+      <p>The output of the Markup Validator may be hard to decipher for
 	newcomers and experts alike, so we are maintaining a <a 
-	href="http://validator.w3.org:8001/docs/errors.html">list of error
+	href="errors.html">list of error
 	messages and their interpretation</a>, which should help.
      </p>
 
-      <h3 id="munged-doctype">Many error messages? Don't panic.</h3>
+    <h4 id="munged-doctype">Many error messages? Don't panic.</h4>
       <p>
         Don't panic. Did The Validator complain about your
         <code>DOCTYPE</code> declaration (or lack thereof)? Make sure your
@@ -195,16 +287,58 @@
 	Markup Validator to clean up your HTML documents in no time.
       </p>
 
-      <h3 id="cleanup">I don't want error messages, I want you to clean up my page!</h3>
+    <h4 id="cleanup">I don't want error messages, I want you to clean up my page!</h4>
        <p>The Markup Validator can not do this for you. You may want to have a look
 	at tools such as <a href="http://tidy.sourceforge.net">HTML Tidy</a>.</p>
 
+    <h4 id="icon">My document is valid, can I use your "valid" icon?</h4>
+  <h5>Practical use of the icon</h5>
+  <p>
+      <img class="inline-badge" src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" />
+      Yes. To show readers that one has taken some care to create an
+      interoperable Web page, a "W3C valid" badge may be displayed 
+      (here, the "valid XHTML 1.0" badge) <strong>on any page
+      that validates</strong>. 
+  </p>
+  <p>
+   We encourage you to use the XHTML code below (or its HTML equivalent),
+   but you may use a different code to integrate the icon within your web page
+   as long as the icon is used as a link to revalidate the Web page it is in.
+   Sample code is as follows:
+  </p>
+  <pre>
+   &lt;p&gt;
+      &lt;a href="http://validator.w3.org/check/referer"&gt;&lt;img
+          src="http://www.w3.org/Icons/valid-xhtml10"
+          alt="Valid XHTML 1.0!" height="31" width="88" /&gt;&lt;/a&gt;
+    &lt;/p&gt;
+  </pre>
+  <h5>License and Guidelines for usage of the "valid" icons</h5>
+  <p>Web content providers are granted the right to use the "W3C valid" logo
+  on pages that pass validation (though the use of the 
+  <a href="http://validator.w3.org/">W3C Markup Validator</a>) 
+  for the W3C technology represented by the icon, and <strong>only</strong> 
+  on pages that pass validation. 
+  The icon must be used as a link to revalidate the Web page, thus providing
+  a way to verify the page author's assertion that it passed validation.</p>
+  
+  <p>Note that "W3C Valid" icons are not an endorsement by the W3C of the page's 
+  author, the substantive content of the page, nor its design. 
+  Instead, the icons are <strong>only</strong> a mechanism to identify 
+  pages that have been determined to be valid, and to easily 
+  re-validate pages as often as as they are modified.</p>
+
+  <p>Consequently, the use of the badge is in accordance with and governed by 
+  the W3C <a href="http://www.w3.org/Consortium/Legal/trademark-license">Trademark License</a> 
+  and <a href="http://www.w3.org/Consortium/Legal/logo-usage-20000308.html">Logo and Icon usage</a>
+  policy.</p>
+
 </div>
 
 <div>
-<h2 id="very-faq">Miscellaneous (Very) Frequently Asked Questions</h2>
-<h3 id="faq-doctype">No DOCTYPE Declaration Found!</h3>
-  <p>
+<h3 id="very-faq">Miscellaneous (Very) Frequently Asked Questions</h3>
+    <h4 id="faq-doctype">No DOCTYPE Declaration Found!</h4>
+      <p>
         A DOCTYPE Declaration is mandatory for most current markup languages
         and without one it is impossible to reliably validate a document.
       </p>
@@ -243,56 +377,106 @@
         "<a href="http://htmlhelp.com/tools/validator/doctype.html">Choosing
            a DOCTYPE</a>".
       </p>
-<h3 id="faq-charset">The validator is <q>not able to extract 
-a character encoding</q></h3>
+    <h4 id="faq-charset"><q>No Character Encoding Found! </q></h4>
 
-<p>An HTML document should be served along with its character encoding.</p>
-<p>WDG has some good documentation on 
-<a href="http://www.htmlhelp.com/tools/validator/charset.html">using
-character encodings</a> that will help you fix your document or the way it is served
-by adding the proper character encoding information.</p>
+      <p>An HTML document should be served along with its character encoding.</p>
 
-<h3 id="faq-ampersand">The validator complains about "&amp;" in my URLs!</h3>
+      <p> Specifying a character encoding is normally done in the web server
+      configuration file or administration program. The <a
+        href="http://www.w3.org/"><abbr
+          title="World Wide Web Consortium">W3C</abbr></a> <a
+        href="http://www.w3.org/International/"><abbr
+          title="Internationalization">I18N</abbr> Activity</a> has collected
+        <a href="http://www.w3.org/International/O-HTTP-charset"
+           title="A Few Tips On How To Specify The Character Encoding">a few
+          tips on how to do this</a> in popular web server implementations.
+</p>
+    <p>
+      <a href="http://www.iana.org/"><abbr
+      title="Internet Assigned Numbers Authority">IANA</abbr></a>
+      maintains the list of <a
+      href="http://www.iana.org/assignments/character-sets">official
+      names for character sets</a> and the <abbr
+        title="Web Design Group">WDG</abbr> has some <a
+        href="http://www.htmlhelp.com/tools/validator/charset.html">information
+        to help you correctly specify the character encoding</a>.
+    </p>
+    <p>
+      To quickly check whether the document would validate after addressing
+      the missing character encoding information, you can use the "Encoding"
+      form control (accesskey "2") earlier in the page to force an encoding
+      override to take effect. "iso-8859-1" (Western Europe and North America)
+      and "utf-8" (Universal, but not commonly used in legacy documents) are
+      common encodings if you are not sure what encoding to choose.
+    </p>
+
+
+
+    <h4 id="faq-ampersand">The validator complains about "&amp;" in my URLs!</h4>
 <p>Most probably, you should read the <a 
 href="http://www.htmlhelp.com/tools/validator/problems.html#amp">ampersand section</a>
 of WDG's excellent 
 "<a href="http://www.htmlhelp.com/tools/validator/problems.html">common validation problem</a>"
 </p>
 
-<h3 id="faq-javascript">The validator complains about something in my Javascript!</h3>
-<p>Most probably, you should read the 
-<a href="http://www.htmlhelp.com/tools/validator/problems.html#script">script section</a>
-of WDG's excellent                                                                    
-"<a href="http://www.htmlhelp.com/tools/validator/problems.html">common validation problem</a>"     
-</p>
+    <h4 id="faq-javascript">The validator complains about something in my JavaScript!</h4>
+      <p>Most probably, you should read the 
+	<a href="http://www.htmlhelp.com/tools/validator/problems.html#script">script section</a>
+	of WDG's excellent                                                                    
+	"<a href="http://www.htmlhelp.com/tools/validator/problems.html">common validation problem</a>"
+      </p>
 
-<h3 id="faq-linkandmeta">Why doesn't the validator like my 
-&lt;link ... /&gt; or &lt;meta ... /&gt;?</h3>
-<p>HTML is based on <a href="sgml.html">SGML</a> and uses an SGML 
-feature (called SHORTTAG) (note that this is <strong>not</strong> 
-the case with XHTML).</p>
+    <h4 id="faq-linkandmeta">Why doesn't the validator like my 
+    &lt;link ... /&gt; or &lt;meta ... /&gt;?</h4>
+       <p>HTML is based on <a href="sgml.html">SGML</a> and uses an SGML 
+	feature (called SHORTTAG) (note that this is <strong>not</strong> 
+	the case with XHTML).</p>
 
-<p>With this feature enabled, the "/" in &lt;link ... /&gt; or &lt;meta ... /&gt;
-already closes the link (or meta) tag, and the "&gt;" becomes some regular text,
- which is not allowed in the &lt;head&gt; element. Since &lt;/head&gt;&lt;body&gt; 
-is optional in HTML (again, <strong>not</strong> in XHTML), it is silently inserted, 
-thus head-only elements like meta and style as well as 
-"&lt;/head&gt;" and "&lt;body&gt;", which may apear only once, become false.
-</p>
+      <p>With this feature enabled, the "/" in &lt;link ... /&gt; or &lt;meta ... /&gt;
+	already closes the link (or meta) tag, and the "&gt;" becomes some regular text,
+	which is not allowed in the &lt;head&gt; element. Since &lt;/head&gt;&lt;body&gt; 
+	is optional in HTML (again, <strong>not</strong> in XHTML), it is silently inserted, 
+	thus head-only elements like meta and style as well as 
+	"&lt;/head&gt;" and "&lt;body&gt;", which may appear only once, become false.
+      </p>
 
-<p>(explanation courtesy of Christoph P&auml;per)</p>
+      <p>(explanation courtesy of Christoph P&auml;per)</p>
 
-<h3 id="faq-typo">I found some nasty typo like &lt;p&lt;a ...&gt; 
-and the validator accepted it!</h3>
+    <h4 id="faq-typo">I found some nasty typo like &lt;p&lt;a ...&gt; 
+    and the validator accepted it!</h4>
 
-<p>This again (as in the <a href="#faq-linkandmeta">previous case</a>) comes from the
-SHORTTAG feature in HTML (<strong>not</strong> in XHTML). The typo is actually a 
-"shorthand markup" and is a valid construct in HTML, even though its use 
-<a href="http://www.w3.org/TR/html4/appendix/notes.html#h-B.3.7">is not 
-recommended</a>.</p>
+      <p>This again (as in the <a href="#faq-linkandmeta">previous case</a>) comes from the
+	SHORTTAG feature in HTML (<strong>not</strong> in XHTML). The typo is actually a 
+	"shorthand markup" and is a valid construct in HTML, even though its use 
+	<a href="http://www.w3.org/TR/html4/appendix/notes.html#h-B.3.7">is not recommended</a>.
+      </p>
 
-</div>
+    <h4 id="faq-referer">/check/referer does not work - or - the validator says it does not support 
+    my "undefined" URI scheme</h4>
 
+      <p>Browsers and other Web agents usually send information about the page they come from, in a 
+      <code>Referer</code> header. The validator uses this information for a features that allows 
+      it to validate whatever page the browser last visited. The "valid" icons on some Web page usually
+      point to the validation of the page using this feature.</p>
+
+      <p>Unfortunately, some zealous "security software" or Web proxies strip the referrer 
+      information from what the browser sends. Without this information the validator is not able to
+      find what the URI of the document to validate is, and gives the same error message as when it is
+      given a type of URI it does not understand.</p>
+
+      <p><strong>How to fix</strong>:</p>
+      <ul>
+	<li>Check that it is indeed the <code>Referer</code> issue. The validator should have redirected you to
+	<code>http://validator.w3.org/check?uri=</code>. Otherwise, check the address you have given the validator.</li>
+	<li>The validator can not fix this issue. You will have to (ask your administrator to) reconfigure
+	whichever zealous software is stripping this referrer info.</li>
+	<li>If you have a link on your page using the "/check/referer" feature, you could replace them with the
+	a link to the validator without this feature, e.g. <code>http://validator.w3.org/check?uri=http://www.example.com</code></li>
+	<li>If you have no control over the page or annoying software, simply append the address of the page you wanted validated
+	to the <code>http://validator.w3.org/check?uri=</code> address.</li>
+     </ul>
+</div>
+</div>
 <!--#include virtual="../footer.html" -->
   </body>
 </html>

Index: index.html
===================================================================
RCS file: /sources/public/validator/htdocs/docs/index.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- index.html	24 Feb 2003 23:33:19 -0000	1.9
+++ index.html	9 May 2004 15:56:50 -0000	1.10
@@ -4,17 +4,32 @@
 --><!--#set var="relroot" value="../"
 --><!--#include virtual="../header.html" -->
 
-    <p id="skip">
-      Here you'll find the documentation for The W3C Markup Validation Service.
-      What little there is of it; 
-	<a href="../feedback.html">additions eagerly accepted</a>!<tt>:-)</tt>
+<div class="doc"><a id="skip" name="skip"></a>
+<h2>Documentation for the W3C Markup Validator</h2>
+    <p>
+      Here you will find the documentation for The W3C Markup Validation Service.
+      We are constantly working on improving this documents and adding
+      new elements, and eagerly welcome	<a href="../feedback.html">feedback and additions</a>!
     </p>
+
+<h3>For beginners and experts alike</h3>
     <dl>
-      <dt><a href="help.html">W3C Validator Help</a></dt>
+      <dt>W3C Markup Validator 
+	<a href="help.html">Help and <abbr title="Frequently Asked Questions">FAQ</abbr></a></dt>
       <dd><p>A quick intro and help to get you started, with answers to
-	a few Frequently Asked Questions. Read this first.</p></dd>
-      <dt><a href="users.html">W3C Validator Users Guide</a></dt>
-      <dd><p>The Users Guide for the W3C Validator.</p></dd>
+	Frequently Asked Questions. <strong>Read this first</strong>.</p></dd>
+      <dt>W3C Markup Validator <a href="users.html">User's Guide</a></dt>
+      <dd><p>The User's Guide and tips for the W3C Markup Validator.</p></dd>
+      <dt><a href="../favelets.html">Favelets</a></dt>
+      <dd><p>Favelets / Bookmarklets: Validation made fast and easy</p></dd>
+      <dt><a href="../accesskeys.html">Access Keys</a></dt>
+      <dd><p>Quick navigation with access keys.</p></dd>
+      <dt>W3C Markup Validator <a href="errors.html">Error Messages</a></dt>
+      <dd><p>Explanations of common error messages.</p></dd>
+</dl>
+
+<h3>Experts only</h3>
+<dl>
       <dt><a href="sgml.html">SGML (basics) and the Markup Validator</a></dt>
       <dd>
         <p>
@@ -22,12 +37,17 @@
           Validator with links to further information.
         </p>
       </dd>
-      <dt><a href="errors.html">W3C Validator Error Messages</a></dt>
-      <dd><p>Explanations of common error messages.</p></dd>
+      <dt><a href="../source/">Download / Source</a></dt>
+      <dd><p>Information on source code availability and download instructions for the Markup Validator</p></dd>
+      <dt><a href="install.html">Installation Guide</a></dt>
+      <dd><p>Step-by step guide for the installation of the Markup Validator
+      on <em>your</em> server.</p></dd>
       <dt><a href="devel.html">Developer Information</a></dt>
-      <dd><p>Information about the Validator for programmers.</p></dd>
+      <dd><p>Information for programmers wanting to play with the validator's code, and/or contribute to its development.</p></dd>
     </dl>
 
+</div>
+
 <!--#include virtual="../footer.html" -->
   </body>
 </html>

--- NEW FILE: install.html ---
<!--#set var="revision" value="\$Id: install.html,v 1.2 2004/05/09 15:56:50 link Exp $"
--><!--#set var="date" value="\$Date: 2004/05/09 15:56:50 $"
--><!--#set var="title" value="Installation Documentation for The W3C Markup Validation Service"
--><!--#set var="relroot" value="../"
--><!--#include virtual="../header.html" -->

<div class="doc">
<h2>Installation information <br />for the W3C Markup Validator</h2>

<h3 id="TableOfContents">Table of Contents</h3>

    <div id="toc">
      <ul>
            <li><a href="#otherguides">This guide, and other guides</a></li>
            <li><a href="#install-package">(Installing from) Packaged systems</a></li>
            <li><a href="#install-fromsource">Install from source</a> (generic case)
	     <ul>
		<li><a href="#install-download">Download</a></li>
		<li><a href="#install-prereq">Prerequisites</a></li>
		<li><a href="#install-components">Install components</a></li>
		<li><a href="#install-configure">Configure</a></li>
		<li><a href="#install-check">Check the installation</a></li>
	     </ul>
	    </li>
            <li><a href="#install-troubleshoot">Installation troubleshooting</a></li>
            <li><a href="#credits">Credits and Acknowledgments</a></li>
      </ul>
    </div>
    

    <div id="install" class="stb">
    <a name="skip" id="skip"> </a>

    <h3 id="otherguides">This guide, and other guides</h3>    
    <h4>Other installation guides</h4>
    <p>The installation guide we provide here is a rather generic set of instructions, 
    which should work on most systems. To our knowledge, the following platform-specific 
    guides are also available and can be of interest :</p>
    <ul>
        <li><a href="http://www.mediaville.net/articles/validator/">Mac OS X and OS X Server</a>
        by Stephen Yoch,</li>
        <li><a href="http://lists.w3.org/Archives/Public/www-validator/2003Dec/0023.html">Linux (Slackware)</a>
        by Nick Talbott</li>
    </ul>
    <h4>Related documentation</h4>
    <p>This installation guides presumes knowledge of the <a href="../source/">Source availability</a> for the
    Markup Validator.</p>
    <p>We recommend that <a href="devel.html">developers</a> wishing to contribute on the Markup Validator or modify it
    go through this installation procedure once, to get familiar with the system.</p>

    <h3 id="install-package">Installing on packaged systems</h3>
    
    <p>The easiest way to install released versions of the Markup Validator is to use the packages created
    for some platforms by contributors: Debian GNU/Linux and Fedora Core / Red Hat Linux packages are 
    <a href="../source/">available</a>.</p>
    
    <h3 id="install-fromsource">Installing from source (generic case)</h3>
    <p>These instructions are strongly inspired from Nick Talbott's guide for Linux Slackware. Thanks Nick!</p>
    <h4><a id="install-download" name="install-download"></a>Download</h4>
        <p>Download the <a href="http://validator.w3.org/validator.tar.gz">Validator's Tar Ball</a>
        and the <a href="http://validator.w3.org/sgml-lib.tar.gz">DTD library</a> from our site.</p>
        <p>Alternatively, if you want to work on the latest development version, you can download 
        both from our CVS repository, but you should be aware that this version may not work at all.</p>
        <p>(<a href="../source/">Read more</a> about retrieving the source)</p>

    <h4><a id="install-prereq" name="install-prereq"></a>Prerequisites</h4>

     <p>
        Apart from a properly configured Web server, the Validator needs a
        SGML parser -- that does all the hard work -- and several Perl
        modules used by the "check" CGI script.
      </p>
     <h5>SGML Parser: Open SP</h5>
      <p>
        The SGML parser we're currently using is <code>OpenSP 1.5</code>,
        which can be found on the
        <a href="http://openjade.sourceforge.net/">OpenJade home page</a>.
      </p>

      <h5>Perl Modules</h5>
      <p>
        The canonical list of Perl modules we use can be found in the source
        for the "check" CGI script. There is a bunch of lines that of the form
        "use Foo::Bar" where each "Foo::Bar" represents a module. Most modules
        can be found on <a href="http://www.cpan.org/">CPAN</a> (minimum
        versions in parenthesis after the name). The following
        list was complete when CVS spit out:
        <code>$Date: 2004/05/09 15:56:50 $</code>. <tt>:-)</tt>
      </p>

     <p>One easy - and strongly recommended - way to take care of all these Perl module dependencies is to 
     install the <a href="http://search.cpan.org/dist/Bundle-W3C-Validator/">bundle available through CPAN</a>
     as Bundle-W3C-Validator.</p>

     <h5>List of required Perl modules</h5>

      <dl>
        <dt><code>CGI (2.81)</code></dt>
        <dd>
          The all-singing, all-dancing,
          everything-<em>and</em>-the-kitchen-sink, Perl CGI library. This
          takes care of all those niggly little bits of CGI for us and make
          options parsing and file upload a breeze.
        </dd>
        <dt><code>CGI::Carp</code></dt>
        <dd>CGI-aware warn()/die()</dd>
        <dt><code>File::Spec</code></dt>
        <dd>Portable file and path name operations.</dd>
        <dt><code>HTML::Parser (3.25)</code></dt>
        <dd>Minimal HTML Parser used for preparse and finding metadata.</dd>
        <dt><code>LWP::UserAgent (1.90)</code></dt>
        <dd>
          Gisle Aas' most excellent WWW library for Perl. This is where our
          support for downloading pages off the net comes from.
        </dd>
        <dt><code>Set::IntSpan</code></dt><dd>Efficient Set operations.</dd>
        <dt><code>Text::Iconv</code></dt>
        <dd>
          Perl-native interface to the (g)libc iconv(3) library. Handles
          character set conversion issues.
        </dd>
        <dt><code>Text::Wrap</code></dt>
        <dd>Wrap text to a sane width. Needed for source output in results.</dd>
        <dt><code>URI::Escape</code></dt>
        <dd>Module to handle escaping special characters in URIs.</dd>
      </dl>

    <h4><a id="install-components" name="install-components"></a>Install the various necessary components:</h4>
        <ol>
            <li><p>The installation guide assumes that you have a working Web server. We suggest
            the popular Apache server, which is used for the W3C Markup Validation service. 
            The validator may work with other Web servers than the popular Apache, but
            we can not guarantee that it will. You will also need a working installation 
            of the Perl language (standard on most Web servers).</p></li>
                
            <li><p>Proceed with the  Prerequisites, as detailed above.</p></li>
                
            <li><p>Create a directory for the validator's installation. On Unix-based systems, 
            the default will be <code>/usr/local/validator</code>.This directory
            will be referred as [validatorpath]  throughout this guide.</p></li>
                
            <li><p>Unpack the archives of the validator and DTD library into <code>[validatorpath]</code></p>
            <p>The <code>[validatorpath]</code> directory should now have subdirectories named 
            <code>htdocs</code>, <code>httpd</code>, <code>config</code> and <code>sgml-lib</code> 
            (if you used CVS, the latter is actually in the <code>htdocs</code> subdirectory, 
            but that is not really important).</p></li>
        </ol>
    <h4><a id="install-configure" name="install-configure"></a>Configure</h4>
	<h5>Configuration files</h5>

      <p>
	For reference, here is an overview of all the configuration files for
	the Markup Validator.
      </p>

      <p>
        The validator uses a number of configuration files -- most of which
        are really mapping tables of some form -- to avoid having to check in
        a new version of the code every time a new version of HTML comes out.
        All configuration files can be found in
        <code>$CVSROOT/validator/htdocs/config/</code>.
      </p>
      <p>
        To really understand what each does you should read the source, but
        here is a short description to get you started.
      </p>
      <dl>
        <dt>eref.cfg</dt>
        <dd>
          Contains the mappings from element names to an URI fragment
          (relative to a configurable URI) for their definitions. Used
          in output when the "Show Source Input" option is enabled.
        </dd>
        <dt>fpis.cfg</dt>
        <dd>
          Maps FPIs to plain text version strings.
        </dd>
        <dt>frag.cfg</dt>
        <dd>
          Maps error messages to an URI fragment identifier where an
          explanation of that error can be found.
        </dd>
        <dt>type.cfg</dt>
        <dd>
          Maps MIME/HTTP Content-Types to an internal "document type" which
          is used for treating HTML, XML, and XHTML in different ways.
        </dd>
        <dt>validator.conf</dt>
        <dd>
          Main configuration file. Gives various parameters (such as the
          address of the maintainer and the URL for the "Home Page") and
          the locations of the other configuration files and mapping tables.
        </dd>
       </dl>



	<h5>Configure the Web server</h5>
	<p>The following instructions are for the Apache Web server, and should be adapted 
	if you plan on using another server.</p>
        <ol>
            <li><p>Edit the configuration of your Web server to refer to the specific configuration file
            for the Validation service.</p>
            <p>This can be done by adding this line:</p>
            <pre>Include [validatorpath]/httpd/conf/validator-httpd.conf</pre>
            </li>

            <li><p>Copy <code>[validatorpath]/httpd/conf/httpd.conf</code> to 
            <code>[validatorpath]/httpd/conf/validator-httpd.conf</code> and start 
            editing this file.</p></li>
            
            <li><p>You may want to set up a "virtual server" for the service. This can be done
            by adding something similar to the following :</p>
<pre>&lt;VirtualHost 127.0.0.1&gt;                                                               
	DocumentRoot [validatorpath]/htdocs/                        
	ServerName validator.example.org
&lt;/VirtualHost&gt;</pre>
            <p><strong>AND/OR</strong> you may want to have the service at a specific location
            on your Web server, which can be configured as follows :</p>
            <pre>Alias /validator/ [validatorpath]/htdocs/</pre>
            </li>
                
            <li><p>Finish editing this HTTP server configuration file, adapting 
            all the directory references to reflect the paths used in your installation.</p></li>
                
            <li><p>Now restart the Web server to activate the updated configuration.</p><p> For Apache
            this is done by typing into a shell, as System Administrator: 
            <code>apachectl graceful</code> (or, for older versions of Apache 
            <code>apachectl configtest</code> then <code>apachectl restart</code>)</p></li>
       </ol>

       <h5>Configure the Validator itself</h5>
    <ol>
            <li><p>Create the directory <code>/etc/w3c</code> and create a file called 
            <code>validator.conf</code> using the file 
            <code>[validatorpath]/htdocs/config/validator.conf</code> as
             template.</p></li>
	    <li><p> 
             Make changes to reflect where files are in your installation.</p>
            This file is well commented and this should be relatively straightforward. </li>
    </ol>
    <h4>Check the installation</h4>
    <ol>
        <li><p>Point your browser at the new site.</p></li> 
        <li><p>Check the error log of the Web server to get clues on what may be wrong 
        if you get any server errors.</p></li>
   </ol>

    <p><strong>Help us</strong> improve this installation guide by sending us your feedback
    if you install the validator on your local system!</p>

   <h3 id="install-troubleshoot">Troubleshooting a new installation</h3>
   <p>It is not always easy to troubleshoot an incomplete, or failed, installation of
   the Markup Validator. While the instructions given in this page should help most people
   install the validator successfully on their system, bad luck, a forgotten step 
    or a broken component can make things go sour.</p>

   <h4>Double check the installation steps</h4>
   <p>The first sound thing to do if the installation failed would be to check that you did not forget
   any step while installing. properly copying and editing the configuration file is among the common
   mistakes, for example.</p>

   <h4>Check the logs</h4>
   <p>The error logs for your Web server should be a good first place to look for hints on what
   is wrong with your installation.</p>

   <h4>Check the dependencies</h4>
   <p>A common problem with a newly installed validator is a validator that is apparently running
   but marking anything as "invalid", without giving any error message as output.</p>

  <p>This is somewhat typical of a problem with OpenSP. Cross-check that you actually have a version
  above 1.5, by running <kbd>onsgmls --version</kbd>.</p>   


   <h4>The miracle debug options</h4>
   <p>If the validator is misbehaving, you can try forcing various debug options by appending to
   the URI the following string: <kbd>&amp;debug=1&amp;errors=1&amp;esis=1&amp;verbose=1</kbd></p>

   <p>This can sometimes provide you with error messages that would not have appeared anywhere in
   non-debug mode, and can be helpful to diagnose the problem</p>

   <h4>If all fails...</h4>
   <p>Don't hesitate to contact the public mailing-list www-validator@w3.org with all the details 
  you can provide on what you did, tried, and what went wrong...</p>

</div>
    
    <div id="credits" class="stb">
      <h3>Credits and Acknowledgments</h3>
<p>The Validator Team wishes to thank Nick Talbott and Stephen Yoch for their help 
in creating the following installation instructions. Thanks also to all the people who 
use and review the guide to make it better and better!</p>

    </div>
</div>
<!--#include virtual="../footer.html" -->
  </body>
</html>

Index: errors.html
===================================================================
RCS file: /sources/public/validator/htdocs/docs/errors.html,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- errors.html	24 May 2003 20:32:46 -0000	1.26
+++ errors.html	9 May 2004 15:56:50 -0000	1.27
@@ -4,13 +4,15 @@
 --><!--#set var="relroot" value="../"
 --><!--#include virtual="../header.html" -->
 
-    <p id="skip">
+<h2>Explanation of the error messages<br /> for the W3C Markup Validator</h2>
+    <p>
       These error explanations were originally written by Scott Bigham,
       and are used here with his permission.
     </p>
 
+<h3 id="TableOfContents">Table of Contents</h3>
+
     <div id="toc">
-      <h2 id="TableOfContents">Table of Contents</h2>
       <ul>
         <li><a href="#undef-id">ID "<var>FOO</var>" already defined</a></li>
         <li><a href="#unterm-comment-1">entity end not allowed in comment</a></li>
@@ -22,7 +24,7 @@
         <li><a href="#undef-tag">element "<var>FOO</var>" undefined</a></li>
         <li><a href="#not-allowed">document type does not allow element "<var>FOO</var>" here</a></li>
         <li><a href="#not-contained">document type does not allow element "<var>FOO</var>" here; assuming missing "<var>BAR</var>" start-tag</a></li>
-        <li><a href="#attr-undef">there is no attribute "<var>FOO</var>" for this element (in this HTML version)</a></li>
+        <li><a href="#attr-undef">there is no attribute "<var>FOO</var>" for this element (in this <abbr title="HyperText Markup Language">HTML</abbr> version)</a></li>
         <li><a href="#undef-attr-val">"<var>FOO</var>" is not a member of the group specified in the declared value of this attribute</a></li>
         <li><a href="#bad-attr-char">syntax of attribute value does not conform to declared value</a></li>
         <li><a href="#attr-bad-name">value of attribute "<var>FOO</var>" invalid: "#" cannot start a name</a></li>
@@ -33,7 +35,7 @@
         <li><a href="#omitted-content">end tag for "<var>FOO</var>" which is not finished</a></li>
         <li><a href="#no-start-tag">start tag for "<var>FOO</var>" omitted, but its declaration does not permit this</a></li>
         <li><a href="#bad-entity">unknown entity "<var>FOO</var>"</a></li>
-        <li><a href="#bad-char">non SGML character number ###</a></li>
+        <li><a href="#bad-char">non <abbr title="Standard Generalized Markup Language">SGML</abbr> character number ###</a></li>
         <li><a href="#bad-pub-id">cannot generate system identifier for entity `HTML'</a></li>
         <li><a href="#missing-subel">missing a required sub-element of "<var>FOO</var>"</a></li>
         <li><a href="#start-tag">start tag was here</a></li>
@@ -48,9 +50,9 @@
       </ul>
     </div>
 
-    <div>
-      <h2>Listing of errors and their explanation</h2>
-      <dl>
+    <div><a name="skip" id="skip"></a>
+      <h3>Listing of errors and their explanation</h3>
+      <dl id="expl">
         <dt id="undef-id"><code>ID "<var>FOO</var>" already defined</code></dt>
         <dd>
           <p>
@@ -61,7 +63,7 @@
             values of the id attribute as case-sensitive, they must still be
             case-insensitive unique in the document. See
             <a href="http://www.w3.org/TR/html4/struct/links.html#h-12.2.1">Section
-            12.2.1 Syntax of anchor names</a> in the HTML 4.01 Recommendation
+            12.2.1 Syntax of anchor names</a> in the <abbr title="HyperText Markup Language">HTML</abbr> 4.01 Recommendation
             for further information.
           </p>
         </dd>
@@ -71,7 +73,7 @@
             Unterminated comment. The position indicator points to the very end of
             the file, where the problem was detected; to find the beginning of the
             comment, try searching for the last occurrence of
-            `<code>&lt;!--</code>' in the document.
+            "<code class="inline">&lt;!--</code>" in the document.
           </p>
         </dd>
         <dt id="unterm-comment-2"><code>name start character invalid: only s and comment allowed in comment declaration</code></dt>
@@ -79,13 +81,13 @@
           <p>
             Unterminated comments again. This time, you have a case like:
           </p>
-          <pre>
-            &lt;!-- This is the first unterminated comment &gt;
+          <code class="block">
+            &lt;!-- This is the first unterminated comment &gt;<br />
             &lt;!-- This is the second one &gt;
-          </pre>
+          </code>
           <p>
-            The validator (correctly) interprets the `<code>--</code>' in the
-            second comment as terminating the first comment, and then interprets
+            The validator (correctly) interprets the "<code class="inline">--</code>"
+            in the second comment as terminating the first comment, and then interprets
             the text of the second comment as text between comments, which is not
             allowed.
           </p>
@@ -94,8 +96,10 @@
         <dd>
           <p>
             Most likely an invalid comment of the form
-            <code>&lt;!invalid comment&gt;</code>; the validator is (correctly)
-            attempting to interpret it as an <a href="sgml.html#sgml">SGML</a>
+            "<code class="inline">&lt;!invalid comment&gt;</code>"; the validator is
+            (correctly) attempting to interpret it as an
+            <a href="sgml.html#sgml"><abbr
+              title="Standard Generalized Markup Language">SGML</abbr></a>
             markup declaration.
           </p>
         </dd>
@@ -105,14 +109,15 @@
             You have an attribute whose value needs to be in quotes. If an
             attribute value contains any character other than letters, digits,
             hyphens and periods, it must be enclosed in double quotes (single
-            quotes would also be OK from an <a href="sgml.html#sgml">SGML</a>
+            quotes would also be OK from an <a href="sgml.html#sgml"><abbr
+              title="Standard Generalized Markup Language">SGML</abbr></a>
             standpoint, but some browsers don't recognize them).
           </p>
         </dd>
-        <dt id="attr-char"><code>character "X" not allowed in attribute specification list</code></dt>
+        <dt id="attr-char"><code>character "<var>X</var>" not allowed in attribute specification list</code></dt>
         <dd>
           <p>
-            The validator has found a character inside an HTML tag that isn't
+            The validator has found a character inside an <abbr title="HyperText Markup Language">HTML</abbr> tag that isn't
             allowed there. This usually means you didn't put an attribute value in
             quotes when necessary. It also probably means that the character in
             question is not allowed in the value of the attribute at all, or you
@@ -123,14 +128,14 @@
             You can also get in trouble by forgetting the closing quote on an
             attribute. For instance:
           </p>
-          <pre>
-            &lt;IMG SRC="http://foo.com/fred.gif&gt;
-            &lt;IMG SRC="http://foo.com/joe.gif&gt;
-          </pre>
+          <code class="block">
+            &lt;img src="http://foo.com/fred.gif&gt;<br />
+            &lt;img src="http://foo.com/joe.gif&gt;
+          </code>
           <p>
-            The validator will (correctly) interpret this as a SRC value of
-            <code>"http://foo.com/fred.gif&gt; &lt;IMG SRC="</code>, and then
-            choke on the following `:'. In this case, the position indicator in
+            The validator will (correctly) interpret this as a <code class="inline">src</code>
+            value of <code class="inline">"http://example.com/fred.gif&gt; &lt;img src="</code>, and then
+            choke on the following "<code>:</code>". In this case, the position indicator in
             the error message may be several lines below the line with the missing
             quote.
           </p>
@@ -143,38 +148,43 @@
             you've forgotten a closing quote on an attribute value. For instance,
             in:
           </p>
-          <pre>
-            &lt;IMG SRC="fred.gif&gt;
-            &lt;!-- 50 lines of stuff --&gt;
-            &lt;IMG SRC="joe.gif"&gt;
-          </pre>
+          <code class="block">
+            &lt;img src="fred.gif&gt;<br />
+            &lt;!-- 50 lines of stuff --&gt;<br />
+            &lt;img src="joe.gif"&gt;
+          </code>
           <p>
-            The SRC value for the first <code>&lt;IMG&gt;</code> is the entire
+            The "<code class="inline">src</code>" value for the first
+            <code class="inline">&lt;img&gt;</code> is the entire
             fifty lines of stuff up to the next double quote, which probably
-            exceeds the <a href="sgml.html#sgml">SGML</a>-defined length limit for
-            HTML string literals. Note that the position indicator in the error
+            exceeds the <a href="sgml.html#sgml"><abbr
+              title="Standard Generalized Markup Language">SGML</abbr></a>-defined
+            length limit for <abbr title="HyperText Markup Language">HTML</abbr>
+            string literals. Note that the position indicator in the error
             message points to where the attribute value <em>ended</em> &mdash; in
-            this case, the <code>"joe.gif"</code> line.
+            this case, the <code class="inline">"joe.gif"</code> line.
           </p>
         </dd>
         <dt id="undef-tag"><code>element "<var>FOO</var>" undefined</code></dt>
         <dd>
           <p>
             You've used an unknown tag (represented here by "<var>FOO</var>"). Make sure the
-            DTD indicated by your DOCTYPE actually includes this element.
+            <abbr title="Document Type Definition">DTD</abbr> indicated by your
+            <code class="inline">DOCTYPE</code> actually includes this element.
           </p>
           <p>
             If the tag in question is a frame-related tag you must use the
-            "Frameset" DTD, and if you use (deprecated) physical markup ("FONT"
-            and friends) you must use the "Transitional" DTD.
+            "Frameset" <abbr title="Document Type Definition">DTD</abbr>,
+            and if you use (deprecated) physical markup ("FONT"
+            and friends) you must use the "Transitional" <abbr
+              title="Document Type Definition">DTD</abbr>.
           </p>
         </dd>
         <dt id="not-allowed"><code>document type does not allow element "<var>FOO</var>" here</code></dt>
         <dd>
           <p>
-            Straightforward, but not terribly informative. There are a
-            <em>lot</em> of different errors that will generate this error
-            message:
+            Straightforward, but not terribly informative. There are several
+            different mistakes that will generate this error message:
           </p>
           <ul>
             <li>
@@ -183,53 +193,60 @@
             </li>
             <li>
               Using a tag in the wrong place. For instance,
-              <code>&lt;TABLE&gt;&lt;TD&gt;blah&lt;/TABLE&gt;</code> will cause
-              this error. The trick here is that <code>&lt;TABLE&gt;</code> cannot
-              <em>directly</em> contain <code>&lt;TD&gt;</code>'s; it contains
-              <code>&lt;TR&gt;</code>'s which contain <code>&lt;TD&gt;</code>'s.
+              <code class="inline">&lt;table&gt;&lt;td&gt;blah&lt;/table&gt;</code>
+              will cause this error. The trick here is that a <code
+                class="inline">&lt;table&gt;</code> element
+              cannot <em>directly</em> contain <code class="inline">&lt;td&gt;</code>
+              elements; it contains
+              one or more <code class="inline">&lt;tr&gt;</code> elements which in turn
+              contain <code class="inline">&lt;td&gt;</code> elements.
               The above example should be
-              <code>&lt;TABLE&gt;&lt;TR&gt;&lt;TD&gt;blah&lt;/TABLE&gt;</code>.
+              <code class="inline">&lt;table&gt;&lt;tr&gt;&lt;td&gt;blah&lt;/table&gt;</code>.
             </li>
           </ul>
         </dd>
-        <dt><a id="not-contained" name="not-contained">document type does not allow element "<var>FOO</var>" here; assuming missing "<var>BAR</var>" start-tag</a>"</dt>
+        <dt><a id="not-contained"><code>document type does not allow element "<var>FOO</var>" here; assuming missing "<var>BAR</var>" start-tag</code></a></dt>
         <dd>
           <p>
             Similar to the <a href="#not-allowed">previous error</a>, but more
             specific: in this case, you have a "<var>FOO</var>" element that is not contained
-            in a "<var>BAR</var>" element when "<var>FOO</var>" is not allowed outside of "<var>BAR</var>". Some of the
-            most common causes of this error are:
+            in a "<var>BAR</var>" element when "<var>FOO</var>" is not allowed outside of
+            "<var>BAR</var>". Some of the most common causes of this error are:
           </p>
           <ul>
             <li>
-              Using the <code>DD</code> element as a fake paragraph indent.
-              <code>DD</code> is not allowed outside of a <code>DL</code> element.
+              Using the "<code class="inline">&lt;dd&gt;</code>" element as a fake paragraph
+              indent. "<code class="inline">&lt;dd&gt;</code>" is not allowed outside of a
+              "<code class="inline">&lt;dl&gt;</code>" element.
             </li>
             <li>
-              Improper construction of a nested list. An inner UL or OL in a
-              nested list may not appear directly within an outer UL/OL, but only
-              within an LI of the outer UL/OL, as in the following example:
-              <pre>
-          &lt;OL&gt;
-            &lt;LI&gt;Obtain the following items:
-              &lt;UL&gt;
-                &lt;LI&gt;Ham&lt;/LI&gt;
-                &lt;LI&gt;Bread; one of:
-                  &lt;UL&gt;
-                    &lt;LI&gt;White&lt;/LI&gt;
-                    &lt;LI&gt;Rye&lt;/LI&gt;
-                    &lt;LI&gt;Whole wheat&lt;/LI&gt;
-                  &lt;/UL&gt;
-                &lt;/LI&gt;  &lt;!-- End of the "Bread" &lt;LI&gt; --&gt;
-                &lt;LI&gt;Cheese&lt;/LI&gt;
-              &lt;/UL&gt;
-            &lt;/LI&gt;  &lt;!-- End of the "Obtain" &lt;LI&gt; --&gt;
-            &lt;LI&gt;Place ham and cheese between two slices of bread&lt;/LI&gt;
-            &lt;LI&gt;Consume the resulting ham-and-cheese sandwich&lt;/LI&gt;
-          &lt;/OL&gt;
-              </pre>
+              Improper construction of a nested list. An inner "<code
+                class="inline">&lt;ul&gt;</code>" or "<code class="inline">&lt;ol&gt;</code>"
+              in a nested list may not appear directly within an outer
+              "<code class="inline">&lt;ol&gt;</code>" or "<code class="inline">&lt;ul&gt;</code>",
+              but only within an "<code class="inline">&lt;li&gt;</code>" of the outer
+              "<code class="inline">&lt;ol&gt;</code>" or "<code class="inline">&lt;ul&gt;</code>", as in the following example:
+              <code class="block">
+&lt;ol&gt;<br />
+&nbsp;&lt;li&gt;<samp>Obtain the following items:</samp><br />
+&nbsp;&nbsp;&lt;ul&gt;<br />
+&nbsp;&nbsp;&nbsp;&lt;li&gt;<samp>Ham</samp>&lt;/li&gt;<br />
+&nbsp;&nbsp;&nbsp;&lt;li&gt;<samp>Bread; one of:</samp><br />
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;<samp>White</samp>&lt;/li&gt;<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;<samp>Rye</samp>&lt;/li&gt;<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;<samp>Whole wheat</samp>&lt;/li&gt;<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br />
+&nbsp;&nbsp;&nbsp;&lt;/li&gt;  &lt;!-- End of the "Bread" &lt;li&gt; --&gt;<br />
+&nbsp;&nbsp;&nbsp;&lt;li&gt;<samp>Cheese</samp>&lt;/li&gt;<br />
+&nbsp;&nbsp;&lt;/ul&gt;<br />
+&nbsp;&lt;/li&gt;  &lt;!-- End of the "Obtain" &lt;li&gt; --&gt;<br />
+&nbsp;&lt;li&gt;<samp>Place ham and cheese between two slices of bread</samp>&lt;/li&gt;<br />
+&nbsp;&lt;li&gt;<samp>Consume the resulting ham-and-cheese sandwich</samp>&lt;/li&gt;<br />
+&lt;/ol&gt;<br />
+              </code>
               <p>
-                The <code>&lt;/LI&gt;</code> end tags are optional and are only
+                The "<code class="inline">&lt;/li&gt;</code>" end tags are optional and are only
                 included above to emphasize how the structure of the nested list
                 is arranged; if you omit them, the parser will infer their
                 presence in the locations shown above. 
@@ -242,7 +259,7 @@
             corresponding end tag is also missing</a>.
           </p>
         </dd>
-        <dt id="attr-undef"><code>there is no attribute "<var>FOO</var>" for this element (in this HTML version)</code></dt>
+        <dt id="attr-undef"><code>there is no attribute "<var>FOO</var>" for this element</code></dt>
         <dd>
           <p>
             You have used an attribute with an element that is defined not to have
@@ -257,80 +274,91 @@
             Similar to the <a href="#attr-undef">previous error</a>; this time,
             you're using an attribute that is defined for the element, but with a
             value that isn't defined for the attribute. For instance, the Netscape
-            extension <code>&lt;IMG ALIGN=ABSMIDDLE&gt;</code> will cause this
-            error; ABSMIDDLE isn't one of the allowed values for the ALIGN
-            attribute of <code>&lt;IMG&gt;</code> (unless, of course, you provided
+            extension <code class="inline">&lt;img align="absmiddle"&gt;</code> will
+            cause this error; "<code class="inline">absmiddle</code>" is not one of
+            the allowed values for the "<code class="inline">align</code>" attribute
+            of <code class="inline">&lt;img&gt;</code> (unless, of course, you provided
             a Netscape document type).
           </p>
           <p>
-            If you're using the Netscape document type, the BORDER attribute of
-            <code>&lt;TABLE&gt;</code> can cause this error.
+            If you're using the Netscape document type, the
+            "<code class="inline">border</code>" attribute of
+            "<code class="inline">&lt;table&gt;</code>" can cause this error.
           </p>
           <p>
             This error can also be caused, oddly enough, by missing close quotes
             on attribute values. For instance, given:
           </p>
-          <pre>
-            &lt;IMG SRC="fred.gif&gt; &lt;IMG SRC="joe.gif&gt;
-          </pre>
+          <code class="block">
+            &lt;img src="fred.png&gt; &lt;img src="joe.png&gt;
+          </code>
           <p>
-            The validator will (correctly) see a SRC attribute of
-            <code>"fred.gif&gt; &lt;IMG SRC="</code>, and then try to interpret
-            JOE.GIF as an attribute of <code>&lt;IMG&gt;</code>.
+            The validator will (correctly) see a <code class="inline">src</code> attribute of
+            "<code class="inline">fred.png&gt; &lt;img src=</code>", and then try to
+            interpret <code class="inline">joe.png</code> as an attribute of
+            <code class="inline">&lt;img&gt;</code>.
           </p>
         </dd>
         <dt id="bad-attr-char"><code>syntax of attribute value does not conform to declared value</code></dt>
         <dd>
           <p>
             Yet another attribute error; this time, the attribute in question was
-            defined to take a numeric value, or an <a
-            href="sgml.html#sgml">SGML</a> identifier value, and you used a
-            character that doesn't match what it was expecting.
+            defined to take a numeric value, or an <a href="sgml.html#sgml"><abbr
+              title="Standard Generalized Markup Language">SGML</abbr></a> identifier
+            value, and you used a character that doesn't match what it was expecting.
           </p>
           <p>
             One potentially annoying source of this error is the
-            <code>TD WIDTH</code> attribute. Whether intentionally or by oversight,
-            the HTML 3.2 DTD defines this attribute to have a value type of NUMBER,
-            which means that <code>&lt;TD WIDTH="50%"&gt;</code> is not allowed.
+            <code class="inline">width</code> attribute on the <code class="inline">td</code>
+            element. Whether intentionally or by oversight, the <abbr
+              title="HyperText Markup Language">HTML</abbr> 3.2 <abbr
+              title="Document Type Definition">DTD</abbr> defines this attribute to have a
+            value type of <code class="inline">NUMBER</code>, which means that
+            <code class="inline">&lt;td width="50%"&gt;</code> is not allowed.
           </p>
         </dd>
-        <dt id="attr-bad-name"><code>value of attribute "<var>FOO</var>" invalid: "#" cannot start a name</code></dt>
+        <dt id="attr-bad-name"><code>value of attribute "<var>FOO</var>" invalid: "<var>#</var>" cannot start a name</code></dt>
         <dd>
           <p>
             A special case of <a href="#bad-attr-char">the previous error</a>; the
-            attribute in question is defined to take as value an SGML name token,
-            which must begin with a letter.
+            attribute in question is defined to take as value an <abbr
+              title="Standard Generalized Markup Language">SGML</abbr>
+            <code class="inline">NMTOKEN</code>, a name token, which must begin with
+            a letter.
           </p>
         </dd>
         <dt id="bad-abbrev-attr"><code>"<var>FOO</var>" is not a member of a group specified for any attribute</code></dt>
         <dd>
           <p>
             Another attribute error, this time referring to an "abbreviated"
-            attribute. <a href="sgml.html#sgml">SGML</a> allows you to omit the
-            name of an attribute if the attribute value is unambiguous. For
-            instance, <code>&lt;IMG ISMAP&gt;</code> is actually an abbreviation
-            of <code>&lt;IMG ISMAP=ISMAP&gt;</code>. (Technically, this also means
-            that e.g. <code>&lt;P ALIGN=CENTER&gt;</code> could be abbreviated to
-            <code>&lt;P CENTER&gt;</code>, but it is unlikely that current
-            browsers will get this right.) The validator has found something that
-            looks like an abbreviated attribute but doesn't match the value of any
-            attribute for this element. For instance, a typo like
-            <code>&lt;IMG ISNAP&gt;</code> would produce this error.
+            (minimized) attribute. <a href="sgml.html#sgml"><abbr
+              title="Standard Generalized Markup Language">SGML</abbr></a> allows
+            you to omit the name of an attribute if the attribute value is unambiguous.
+            For instance, "<code class="inline">&lt;img ismap&gt;</code>" is actually an
+            abbreviation of <code class="inline">&lt;img ismap="ismap"&gt;</code>.
+            The validator has found something that looks like an abbreviated attribute
+            but doesn't match the value of any attribute for this element. For instance,
+            a typo like "<code class="inline">&lt;img is<em>n</em>ap&gt;</code>" would
+            produce this error.
           </p>
           <p>
             A missing close quote on a previous attribute value can also trigger
             this error if the next quote it finds is followed by something that
             looks like an abbreviated attribute; for instance,
-            <code>&lt;IMG SRC="fred.gif&gt;&lt;IMG SRC="joe.gif&gt;</code> would
-            produce this error, referring to the "attribute value" <code>JOE.GIF</code>.
+          </p>
+          <code class="block">&lt;img src="fred.png&gt;&lt;img src="joe.png&gt;</code>
+          <p>
+            would produce this error, referring to the "attribute value"
+            <code class="inline">joe.png</code>.
           </p>
         </dd>
         <dt id="attr-missing"><code>required attribute "<var>FOO</var>" not specified</code></dt>
         <dd>
           <p>
             You left off a required attribute of the indicated element. The most
-            common such omitted attribute is the <code>ALT</code> attribute of the
-            <code>AREA</code> or <code>IMG</code> element; browsers will typically
+            common such omitted attribute is the <code class="inline">alt</code>
+            attribute of the <code class="inline">area</code> or <code
+              class="inline">img</code> element; browsers will typically
             use these to build a menu equivalent to your client-side image map if
             the user has disabled image loading, so you'll want to use a
             meaningful value here.
@@ -339,63 +367,80 @@
         <dt id="no-end-tag"><code>end tag for "<var>FOO</var>" omitted, but its declaration does not permit this</code></dt>
         <dd>
           <p>
-            You forgot to close something. "<var>FOO</var>" is the element you forgot to close
-            (and the next message, `start tag was here' points to the particular
-            instance of "<var>FOO</var>" in question); the positional indicator points to where
-            the validator expected you to close the element. There are a few
-            common ways that this can happen:
+            You forgot to close something. "<var>FOO</var>" is the element you forgot to
+            close (and the next message, "<code class="inline">start tag was here</code>"
+            points to the particular instance of "<var>FOO</var>" in question); the
+            positional indicator points to where the validator expected you to close the
+            element. There are a few common ways that this can happen:
           </p>
           <ul>
             <li>
-              You've put something inside the "<var>FOO</var>" element that isn't allowed
-              there. For instance,
-              <code>&lt;UL&gt;&lt;LI&gt;&lt;H4&gt;fake font change&lt;/H4&gt;&lt;/UL&gt;</code>
-              will cause this error, since headers aren't allowed inside <code>&lt;UL&gt;</code>'s; the
-              validator assumes that you meant to close the
-              <code>&lt;UL&gt;</code> before opening the <code>&lt;H4&gt;</code>.
+              <p>
+                You've put something inside the "<var>FOO</var>" element that isn't allowed
+                there. For instance,
+              </p>
+              <code class="block">
+                &lt;ul&gt;&lt;li&gt;&lt;h4&gt;<samp>fake font change</samp>&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;
+              </code>
+              <p>
+                will cause this error, since headers aren't allowed inside <code
+                  class="inline">&lt;ul&gt;</code> elements; the validator assumes that you
+                meant to close the <code class="inline">&lt;ul&gt;</code> before opening the
+                <code class="inline">&lt;h4&gt;</code>.
+              </p>
             </li>
             <li>
               Interlocked elements. For instance,
-              <code>&lt;B&gt;&lt;I&gt;nope&lt;/B&gt;&lt;/I&gt;</code> will cause
-              this error. HTML requires that you close elements inside-out
+              <code class="inline">&lt;b&gt;&lt;i&gt;<samp>nope</samp>&lt;/b&gt;&lt;/i&gt;</code> will cause
+              this error. <abbr title="HyperText Markup Language">HTML</abbr> requires that you close elements inside-out
               &mdash; that is, the last element you opened is the first element you should
-              close. In this example, you'd have to close the
-              <code>&lt;I&gt;</code> before the <code>&lt;B&gt;</code>.
+              close. In this example, you'd have to close the <code
+                class="inline">&lt;i&gt;</code> before the <code
+                class="inline">&lt;b&gt;</code>.
             </li>
             <li>
-              Unclosed <code>&lt;A&gt;</code> tags. Yes, even
-              <code>&lt;A NAME="foo"&gt;</code> has to have a corresponding
-              <code>&lt;/A&gt;</code>. Note that an empty
-              <code>&lt;A NAME&gt;</code> element won't be recognized by some browsers; be
-              sure to put at least a word or two inside the
-              <code>&lt;A&gt;</code>.
+              Unclosed <code class="inline">&lt;a&gt;</code> tags. Yes, even
+              <code class="inline">&lt;a name="foo"&gt;</code> has to have a corresponding
+              <code class="inline">&lt;/a&gt;</code>. Note that an empty
+              <code class="inline">&lt;a name="foo"&gt;</code> element won't be recognized by some
+              browsers; be sure to put at least a word or two inside the
+              <code class="inline">&lt;a&gt;</code>.
             </li>
             <li>
               Having unadorned text where the validator was expecting a
               sub-element of "<var>FOO</var>". For instance,
-              <code>&lt;DL&gt;fake indent&lt;/DL&gt;</code> will produce this error,
-              since inside a
-              <code>&lt;DL&gt;</code>, the validator only expects to see
-              <code>&lt;DT&gt;</code>'s and <code>&lt;DD&gt;</code>'s.
+              <code class="inline">&lt;dl&gt;<samp>fake indent</samp>&lt;/dl&gt;</code>
+              will produce this error, since inside a
+              <code class="inline">&lt;dl&gt;</code>, the validator only expects to see
+              <code class="inline">&lt;dt&gt;</code> and <code
+                class="inline">&lt;dd&gt;</code> elements (i.e. you can't just put text
+              in there).
             </li>
             <li>
-              A tag of the form <code>&lt;TABLE WIDTH=100%&gt;</code>. The
-              previous error should have been that the `%' was <a
-              href="#attr-char">"not allowed in attribute specification list"</a>.
-              What's happening here is that, in trying to get past the `%', the
-              validator has become confused and thinks the `%' is <em>inside</em>
-              the <code>&lt;TABLE&gt;...&lt;/TABLE&gt;</code>, thus triggering the
-              error message for the previous reason. This error will likely be
-              followed by mistaken complaints that your <code>&lt;TR&gt;</code>'s
-              are <a href="#not-allowed">"not allowed here"</a>, plus a complaint
-              about your <code>&lt;/TABLE&gt;</code> end tag. The solution is to
-              put the attribute value in quotes; ie. <code>&lt;TABLE
-              WIDTH="100%"&gt;</code>.
+              <p>
+                A tag of the form <code class="inline">&lt;table width=100%&gt;</code>.
+                The previous error should have been that the "<code class="inline">%</code>"
+                was "<a href="#attr-char"><code class="inline">not allowed in attribute
+                  specification list</code></a>".
+              </p>
+              <p>
+                What's happening here is that, in trying to get past the "<code
+                  class="inline">%</code>", the validator has become confused and
+                thinks the "<code class="inline">%</code>" is <em>inside</em> the
+                <code class="inline">&lt;table&gt;&hellip;&lt;/table&gt;</code>,
+                thus triggering the error message for the previous reason. This error
+                will likely be followed by mistaken complaints that your <code
+                  class="inline">&lt;tr&gt;</code> elements are "<a
+                  href="#not-allowed"><code class="inline">not allowed here</code></a>",
+                plus a complaint about your <code class="inline">&lt;/table&gt;</code>
+                end tag. The solution is to put the attribute value in quotes; ie.
+                <code class="inline">&lt;table width="100%"&gt;</code>.
+              </p>
             </li>
           </ul>
           <p>
-            In general, you should always explicitly close all elements and
-            quote all attribute values.
+            <strong>In general, you should always explicitly close all elements and
+            quote all attribute values!</strong>
           </p>
         </dd>
         <dt id="floating-close"><code>end tag for element "<var>FOO</var>" which is not open</code></dt>
@@ -404,33 +449,40 @@
             The validator found an end tag, represented here by "<var>FOO</var>", without a
             corresponding start tag. This frequently occurs in conjunction with
             the <a href="#no-end-tag">previous error</a>. For instance, given
-            <code>&lt;B&gt;&lt;I&gt;nope&lt;/B&gt;&lt;/I&gt;</code>, the validator
-            will insert a <code>&lt;/I&gt;</code> before the
-            <code>&lt;/B&gt;</code>, and then will find the
-            <code>&lt;/I&gt;</code> after the <code>&lt;/B&gt;</code> and will
-            have nothing to match it with.
+            <code class="inline">&lt;b&gt;&lt;i&gt;<samp>nope</samp>&lt;/b&gt;&lt;/i&gt;</code>,
+            the validator will insert a <code class="inline">&lt;/i&gt;</code> before the
+            <code class="inline">&lt;/b&gt;</code>, and then will find the
+            <code class="inline">&lt;/i&gt;</code> after the <code
+              class="inline">&lt;/b&gt;</code> and will have nothing to match it with.
           </p>
           <p>
-            A subtle variation of this is <code>&lt;P&gt;&lt;H4&gt;fake font
-            change&lt;/H4&gt;&lt;/P&gt;</code>. <code>&lt;H4&gt;</code>'s aren't
-            allowed inside <code>&lt;P&gt;</code>'s, but since HTML allows you to
-            omit the <code>&lt;/P&gt;</code> end tag for paragraphs, the validator
-            assumes that you meant <code>&lt;P&gt;&lt;/P&gt;&lt;H4&gt;fake font
-            change&lt;/H4&gt;&lt;/P&gt;</code>, in which case the final
-            <code>&lt;/P&gt;</code> is indeed superfluous.
+            A subtle variation of this is <code
+              class="inline">&lt;p&gt;&lt;h4&gt;<samp>fake font change</samp>&lt;/h4&gt;&lt;/p&gt;</code>.
+            <code class="inline">&lt;h4&gt;</code> elements are not allowed inside
+            <code class="inline">&lt;p&gt;</code> elements, but since <abbr
+              title="HyperText Markup Language">HTML</abbr> allows you to
+            omit the <code class="inline">&lt;/p&gt;</code> end tag for paragraphs
+            (unlike <abbr title="eXtensible HyperText Markup Language">XHTML</abbr>),
+            the validator assumes that you meant <code
+              class="inline">&lt;p&gt;<em>&lt;/p&gt;</em>&lt;h4&gt;<samp>fake font
+                change</samp>&lt;/h4&gt;&lt;/p&gt;</code>, in which case the final
+            <code class="inline">&lt;/p&gt;</code> is indeed superfluous.
           </p>
           <p>
             This error can also be caused by incorrectly supplying an end tag for
-            "empty" elements like <code>&lt;HR&gt;</code>, <code>&lt;BR&gt;</code>
-            or <code>&lt;IMG&gt;</code>.
+            "empty" elements like <code class="inline">&lt;hr&gt;</code>,
+            <code class="inline">&lt;br&gt;</code>
+            or <code class="inline">&lt;img&gt;</code>. This is why they are written
+            <code class="inline">&lt;hr /&gt;</code>, <code class="inline">&lt;br /&gt;</code>, and
+            <code class="inline">&lt;img /&gt;</code> in <abbr title="eXtensible HyperText Markup Language">XHTML</abbr>.
           </p>
         </dd>
         <dt id="omitted-content"><code>end tag for "<var>FOO</var>" which is not finished</code></dt>
         <dd>
           <p>
-            You have a "<var>FOO</var>" element, but you have omitted some required sub-element
-            of it. For instance, a <code>TABLE</code> with no <code>TR</code>'s
-            would cause this error.
+            You have a "<var>FOO</var>" element, but you have omitted some required
+            sub-element of it. For instance, a <code class="inline">table</code>
+            with no <code class="inline">tr</code>'s would cause this error.
           </p>
         </dd>
         <dt id="no-start-tag"><code>start tag for "<var>FOO</var>" omitted, but its declaration does not permit this</code></dt>
@@ -438,92 +490,103 @@
           <p>
             The validator expected you to start a "<var>FOO</var>" element at the indicated
             point. This probably means you've put unadorned text somewhere it
-            isn't allowed; for instance, <code>&lt;UL&gt;fake
-            indent&lt;/UL&gt;</code> will cause this error.
+            isn't allowed; for instance, <code class="inline">&lt;ul&gt;<samp>fake
+            indent</samp>&lt;/ul&gt;</code> will cause this error.
           </p>
         </dd>
         <dt id="bad-entity"><code>unknown entity "<var>FOO</var>"</code></dt>
         <dd>
           <p>
             The validator has found an entity (something like
-            <code>&amp;this;</code>) that it doesn't recognize. There are a few
-            possibilities:
+            <code class="inline">&amp;this;</code>) that it doesn't recognize.
+            There are a few possibilities:
           </p>
           <ul>
             <li>
               <p>
-                A reference to a URI that uses <code>&amp;</code> as a separator
-                between parameters, such as
-                "<code>http://example.org/prog?x=1&amp;y=2</code>".
+                A reference to a <abbr title="Uniform Resource Identifier">URI</abbr>
+                that uses "<code class="inline">&amp;</code>" as a separator between
+                parameters, such as "<code
+                  class="inline">http://example.com/cgi-bin/prog?x=1&amp;y=2</code>".
               </p>
               <p>
-                To solve this problem, simply replace all the <code>&amp;</code>'s
-                in attribute values with <code>&amp;amp;</code> (user agents will
-                convert them back before following the links.)
+                To solve this problem, simply replace all the <code
+                  class="inline">&amp;</code>'s
+                in attribute values with <code class="inline">&amp;amp;</code>
+                (user agents will convert them back before following the links).
               </p>
               <p>
-                Another way to get around this problem is for the author of the CGI
+                Another way to get around this problem is for the author of the
+                <abbr title="Common Gateway Interface">CGI</abbr>
                 program to allow a different value to be used between arguments,
-                like ';' or '|', which would allow the link to be coded as e.g.
-                <code>&lt;a href="http://example.org/prog?x=1;y=2"&gt;</code>
+                like "<code class="inline">;</code>" or "<code class="inline">|</code>",
+                which would allow the link to be coded as e.g.
+                <code class="inline">&lt;a href="http://example.com/cgi-bin/prog?x=1;y=2"&gt;</code>
               </p>
             </li>
             <li>
-              An unterminated entity; for instance, <code>this&amp;ampthat</code>
-              for "this&amp;that", which the validator (correctly) interprets as a
-              request for the entity <code>&amp;ampthat;</code>. Technically, any
+              An unterminated entity; for instance, "<code
+                class="inline">this&amp;ampthat</code>"
+              for "<code class="inline">this&amp;that</code>", which the validator
+              (correctly) interprets as a request for the entity "<code
+                class="inline">&amp;ampthat;</code>". Technically, any
               non-alphanumeric character (such as a space) will suffice to
               terminate the entity, but some browsers get this wrong; the safest
               thing to do is to terminate all entities with a semicolon, turning
-              our example into <code>this&amp;amp;that</code>.
+              our example into "<code class="inline">this&amp;amp;that</code>".
             </li>
             <li>
-              The entity <code>&amp;quot;</code> in conjunction with the HTML 3.2
-              <code>DOCTYPE</code>. This entity was <a
-              href="http://lists.w3.org/Archives/Public/www-html/1997Mar/0003.html">accidentally
-              omitted</a> from the most recent version of the HTML 3.2 DTD. You
+              The entity <code class="inline">&amp;quot;</code> in conjunction with the
+              <abbr title="HyperText Markup Language">HTML</abbr> 3.2 <code>DOCTYPE</code>.
+              This entity was <a
+                href="http://lists.w3.org/Archives/Public/www-html/1997Mar/0003.html">accidentally
+                omitted</a> from the most recent version of the <abbr
+                title="HyperText Markup Language">HTML</abbr> 3.2 <abbr
+                title="Document Type Definition">DTD</abbr>. You
               should be able to ignore this error safely, though if you wish, you
-              can replace <code>&amp;quot;</code> with the equivalent character
-              entity <code>&amp;#34;</code>.
+              can replace <code class="inline">&amp;quot;</code> with the equivalent
+              character entity <code class="inline">&amp;#34;</code>.
             </li>
           </ul>
         </dd>
-        <dt id="bad-char"><code>non SGML character number ###</code></dt>
+        <dt id="bad-char"><code>non <abbr title="Standard Generalized Markup Language">SGML</abbr> character number ###</code></dt>
         <dd>
           <p>
-            You've used an illegal character in your text. HTML uses the standard
-            ISO8859-1 character encoding, and ISO8859-1 leaves undefined 65
-            character codes (0 to 31 inclusive and 127 to 159 inclusive); the
-            validator has found one of these undefined characters in your
-            document. The character may appear on your browser as a curly quote,
-            or a trademark symbol, or some other fancy glyph; on a different
+            You have used an illegal character in your text.
+            <abbr title="HyperText Markup Language">HTML</abbr> uses the standard
+            <a href="http://www.unicode.org/">UNICODE Consortium</a> character repertoire,
+            and it leaves undefined (among others) 65 character codes (0 to 31 inclusive and 127 to 159
+            inclusive) that are sometimes used for typographical quote marks and similar in
+            proprietary character sets. The validator has found one of these undefined
+            characters in your document. The character may appear on your browser as a
+            curly quote, or a trademark symbol, or some other fancy glyph; on a different
             computer, however, it will likely appear as a completely different
             character, or nothing at all.
           </p>
           <p>
             Your best bet is to replace the character with the nearest equivalent
             ASCII character, or to use an appropriate <a
-            href="http://www.w3.org/hypertext/WWW/MarkUp/html3/latin1.html">character
-            entity</a>. For more information on ISO8859-1, see <a
-            href="http://ppewww.ph.gla.ac.uk/%7Eflavell/aflavell.html">Alan
+              href="http://www.w3.org/hypertext/WWW/MarkUp/html3/latin1.html">character
+            entity</a>. For more information on Character Encoding on the web, see <a
+              href="http://ppewww.ph.gla.ac.uk/%7Eflavell/aflavell.html">Alan
             Flavell</a>'s excellent <a
-            href="http://ppewww.ph.gla.ac.uk/%7Eflavell/iso8859/">ISO8859-1/HTML
-            reference</a>.
+            href="http://ppewww.ph.gla.ac.uk/%7Eflavell/charset/">HTML Character Set Issues</a>
+            reference.
           </p>
           <p>
             This error can also be triggered by formatting characters embedded in
             documents by some word processors. If you use a word processor to edit
-            your HTML documents, be sure to use the "Save as ASCII" or similar
+            your <abbr title="HyperText Markup Language">HTML</abbr> documents, be sure to use the "Save as ASCII" or similar
             command to save the document without formatting information.
           </p>
         </dd>
         <dt id="bad-pub-id"><code>cannot generate system identifier for entity "HTML"</code></dt>
         <dd>
           <p>
-            Your <code>DOCTYPE</code> declaration contains a public identifier
-            that the validator doesn't recognize. See the <a
-            href="sgml.html#doctype">discussion of <code>DOCTYPE</code></a> for an
-            explanation of what's happening, and what public identifiers the
+            Your <code class="inline">DOCTYPE</code> declaration contains a public identifier
+            that the validator does not recognize. See the <a
+              href="sgml.html#doctype">discussion of <code class="inline">DOCTYPE</code></a>
+            for an explanation of what's happening, and what public identifiers the
             validator recognizes.
           </p>
         </dd>
@@ -531,7 +594,8 @@
         <dd>
           <p>
             The element "<var>FOO</var>" is defined to <em>require</em> one or more
-            sub-elements. One example is TR which requires one or more TD or TH
+            sub-elements. One example is <code class="inline">tr</code> which requires
+            one or more <code class="inline">td</code> or <code class="inline">th</code>
             elements.
           </p>
         </dd>
@@ -546,14 +610,15 @@
         <dd>
           <p>
             The document contained bare text where an element was expected.
-            For instance, you must wrap text in <code>&lt;p&gt;</code> if it
-            appears directly inside the <code>&lt;body&gt;</code>.
+            For instance, you must wrap text in <code class="inline">&lt;p&gt;</code>
+            if it appears directly inside the <code class="inline">&lt;body&gt;</code>.
           </p>
           <p>
             This error may also indicate an unquoted attribute value containing
-            a reserved character (such as "<samp>/</samp>") which terminates the
-            attribute. The net effect is that the rest of the attribute value
-            appears to be plain text, outside any element, to an SGML parser.
+            a reserved character (such as "<code class="inline">/</code>") which
+            terminates the attribute. The net effect is that the rest of the attribute
+            value appears to be plain text, outside any element, to an <abbr
+              title="Standard Generalized Markup Language">SGML</abbr> parser.
            </p>
         </dd>
         <dt id="unkn-att-val"><code> value of attribute "<var>FOO</var>" cannot be "<var>BAR</var>"; must be one of "<var>FOO</var>", "<var>BAR</var>", "<var>BAZ</var>"</code></dt>
@@ -576,9 +641,9 @@
         <dt id="dup-attr"><code>duplicate specification of attribute "<var>FOO</var>"</code></dt>
         <dd>
           <p>
-            You have specified an attribute more than once. For instance, you've
-            used the "height" attribute on the "img" element twice on the same
-            "img" tag.
+            You have specified an attribute more than once. For instance, you have
+            used the "<code class="inline">height</code>" attribute twice on the same
+            "<code class="inline">img</code>" tag.
           </p>
         </dd>
         <dt id="invalid-attr-val"><code>invalid attribute value</code></dt>
@@ -603,7 +668,7 @@
         <dt id="inval-comment"><code>invalid comment declaration; check your comment syntax</code></dt>
         <dd>
           <p>
-            There is a syntax error in an SGML Comment Declaration. This may be
+            There is a syntax error in an <abbr title="Standard Generalized Markup Language">SGML</abbr> Comment Declaration. This may be
             caused by too many or too few hyphens "-" or that you have included
             an invalid character in the comment. The next message will be
             "comment declaration started here".
@@ -619,7 +684,8 @@
             check if this is the case and insert the proper tag.
           </p>
         </dd>
-    </dl>
+      </dl>
+    </div>
 <!--#include virtual="../footer.html" -->
   </body>
 </html>

Received on Sunday, 9 May 2004 11:58:15 UTC