diff options
Diffstat (limited to 'htdocs/docs')
-rwxr-xr-x | htdocs/docs/devel.html | 163 | ||||
-rwxr-xr-x | htdocs/docs/errors.html | 549 | ||||
-rwxr-xr-x | htdocs/docs/help.html | 106 | ||||
-rwxr-xr-x | htdocs/docs/index.html | 60 | ||||
-rwxr-xr-x | htdocs/docs/sgml.html | 130 | ||||
-rwxr-xr-x | htdocs/docs/users.html | 177 |
6 files changed, 1185 insertions, 0 deletions
diff --git a/htdocs/docs/devel.html b/htdocs/docs/devel.html new file mode 100755 index 0000000..4581279 --- /dev/null +++ b/htdocs/docs/devel.html @@ -0,0 +1,163 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + + <head> + <title>W3C HTML Validation Service Developers Manual</title> + <link rev="made" href="mailto:gerald@w3.org" /> + <link rel="stylesheet" type="text/css" href="/base.css" /> + <meta name="keywords" content="HTML, Hypertext Markup Language, Validation, W3C HTML Validation Service" /> + <meta name="description" content="W3C's easy-to-use HTML validation service, based on an SGML parser." /> + <meta name="revision" content="$Id: devel.html,v 1.1 2001-02-23 09:06:49 link Exp $" /> + <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" /> + </head> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b"> + <h1><a href="http://www.w3.org/"><img align="left" + src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0" + alt="W3C" /></a> HTML Validator Developers Manual</h1> + <p align="right" class="navbar"> + <a href="about.html">About this service</a> | + <a href="whatsnew.html">What's new</a> | + <a href="source/">Source code</a> | + <a href="feedback.html">Feedback</a><br clear="right"/> + <a href="file-upload.html">Upload files</a> | + <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator archives</a> | + <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> | + <a href="checklink">Link checker</a><br clear="right"/> + <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> | + <a href="http://www.w3.org/MarkUp/">HTML home</a> | + <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> | + <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> + <br clear="all" /> + </p> + + <p> + The W3C HTML 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> + <p> + This document tries to draw a roadmap of the prerequisits 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. + </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 heard work -- and several Perl + modules used by the "check" CGI script. + </p> + <p> + The SGML parser we're currently using is "lq-nsgmls", which is <a + href="http://www.jclark.com/">James Clark</a>'s + <a href="http://www.jclark.com/sp/">SP</a> with patches from Liam Quinn. + </p> + <p> + In the future we may switch to a different parser to improve error + reporting and XML support. + <a href="http://OpenJade.sourceforge.net/">OpenSP</a> from the OpenJade + team springs to mind. + </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>. The following + list was complete when CVS spit out: <code>$Date: 2001-02-23 09:06:49 $</code>. <tt>:-)</tt> + </p> + <dl> + <dt><code>LWP::UserAgent</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>URI::Escape</code></dt> + <dd>Module to handle escaping special characters in URIs</dd> + <dt><code>CGI::Carp</code></dt> + <dd>CGI-aware warn()/die()</dd> + <dt><code>CGI</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>Text::Wrap</code></dt> + <dd>Wrap text to a sane width. Needed for source output in results.</dd> + <dt><code>Text::Iconv</code></dt> + <dd> + Perl-native interface to the (g)libc iconv(3) library. Handles + charset conversion issues. + </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> + 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. Currently not used and may + be phased out in the future (to be replaced with a more robust + system). + </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>"check.cfg"</dt> + <dd> + We don't have one yet, but we intend to. Maybe you'll write the + support for us? <tt>:-)</tt> + </dd> + </dl> + </div> + <div id="todo" class="stb"> + <h2>TODO</h2> + <p> + The TODO list for the Validator is online at + <URL:<a href="/todo.html">http://validator.w3.org/todo.html</a>>. + This is probably the best place to start. + </p> + <p> + However this list is by no means comprehensive. Feel free to suggest + other features that should be on this list or send patches for your + favourite feature. + </p> + <p> + Keep in mind that features should be of general utility and that the + point if the validator is that it does an <em>objective</em> + validation instead of just what some random developer happens to + think is a Good Idea®. While extra features are nice, they + shouldn't dilute the value of the validator as an objective check. + </p> + </div> + </body> +</html> diff --git a/htdocs/docs/errors.html b/htdocs/docs/errors.html new file mode 100755 index 0000000..85c49aa --- /dev/null +++ b/htdocs/docs/errors.html @@ -0,0 +1,549 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + + <head> + <title>W3C HTML Validation Error Messages</title> + <link rev="made" href="mailto:gerald@w3.org" /> + <link rel="stylesheet" type="text/css" href="/base.css" /> + <meta name="keywords" content="HTML, Hypertext Markup Language, Validation, W3C HTML Validation Service" /> + <meta name="description" content="W3C's easy-to-use HTML validation service, based on an SGML parser." /> + <meta name="revision" content="$Id: errors.html,v 1.1 2001-02-23 09:06:49 link Exp $" /> + <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" /> + </head> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b"> + <h1><a href="http://www.w3.org/"><img align="left" + src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0" + alt="W3C" /></a> HTML Validator Error Messages</h1> + <p align="right" class="navbar"> + <a href="about.html">About this service</a> | + <a href="whatsnew.html">What's new</a> | + <a href="source/">Source code</a> | + <a href="feedback.html">Feedback</a><br clear="right"/> + <a href="file-upload.html">Upload files</a> | + <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator archives</a> | + <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> | + <a href="checklink">Link checker</a><br clear="right"/> + <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> | + <a href="http://www.w3.org/MarkUp/">HTML home</a> | + <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> | + <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> + <br clear="all" /> + </p> + + <dl> + <dt id="unterm-comment-1">"entity end not allowed in comment"</dt> + <dd> + <p> + 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><!--</code>' in the document. + </p> + </dd> + <dt id="unterm-comment-2">"name start character invalid: only s and comment allowed in comment declaration"</dt> + <dd> + <p> + Unterminated comments again. This time, you have a case like: + </p> + <pre> + <!-- This is the first unterminated comment > + <!-- This is the second one > + </pre> + <p> + The Validator (correctly) interprets the `<code>--</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> + </dd> + <dt id="bad-comment">"unknown declaration type `FOO'"</dt> + <dd> + <p> + Most likely an invalid comment of the form <code><!invalid + comment></code>; The Validator is (correctly) attempting to + interpret it as an <a href="sgml.html#sgml">SGML</a> markup + declaration. + </p> + </dd> + <dt id="attr-quoted">"an attribute value must be a literal unless it contains only name characters"</dt> + <dd> + <p> + 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 okay from an <a href="sgml.html#sgml">SGML</a> + standpoint, but some browsers don't recognize them). + </p> + </dd> + <dt id="attr-char">"character `X' not allowed in attribute specification list"</dt> + <dd> + <p> + The Validator has found a character inside an HTML 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 + would have received the <a href="#attr-quoted">previous error</a> + instead. See <a href="#bad-attr-char">below</a> for more information. + </p> + <p> + You can also get in trouble by forgetting the closing quote on an + attribute. For instance: + </p> + <pre> + <IMG SRC="http://foo.com/fred.gif> + <IMG SRC="http://foo.com/joe.gif> + </pre> + <p> + The Validator will (correctly) interpret this as a SRC value of + <code>"http://foo.com/fred.gif> <IMG SRC="</code>, and then + choke on the following `:'. In this case, the position indicator in + the error message may be several lines below the line with the missing + quote. + </p> + </dd> + <dt id="name-length">"length of attribute value must not exceed LITLEN less NORMSEP (1022)"</dt> + <dd> + <p> + This usually occurs in conjunction with the + <a href="#attr-char">previous error</a>. It almost always means that + you've forgotten a closing quote on an attribute value. For instance, + in: + </p> + <pre> + <IMG SRC="fred.gif> + <!-- 50 lines of stuff --> + <IMG SRC="joe.gif"> + </pre> + <p> + The SRC value for the first <code><IMG></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 + message points to where the attribute value <em>ended</em> — in + this case, the <code>"joe.gif"</code> line. + </p> + </dd> + <dt id="undef-tag">"element `FOO' undefined"</dt> + <dd> + <p> + You've used an unknown tag (represented here by FOO). Make sure the + DTD indicated by your DOCTYPE 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. + </p> + </dd> + <dt id="not-allowed">"document type does not allow element "FOO" here"</dt> + <dd> + <p> + Straightforward, but not terribly informative. There are a + <em>lot</em> of different errors that will generate this error + message: + </p> + <ul> + <li> + Using an unknown tag. In this case, the next error will be + <a href="#undef-tag">"element `FOO' undefined"</a>. + </li> + <li> + Using a tag in the wrong place. For instance, + <code><TABLE><TD>blah</TABLE></code> will cause + this error. The trick here is that <code><TABLE></code> cannot + <em>directly</em> contain <code><TD></code>'s; it contains + <code><TR></code>'s which contain <code><TD></code>'s. + The above example should be + <code><TABLE><TR><TD>blah</TABLE></code>. + </li> + </ul> + </dd> + <dt id="not-contained">document type does not allow element "FOO" here; assuming missing "BAR" start-tag</dt> + <dd> + <p> + Similar to the <a href="#not-allowed">previous error</a>, but more + specific: in this case, you have a FOO element that is not contained + in a BAR element when FOO is not allowed outside of BAR. 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. + </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> + <OL> + <LI>Obtain the following items: + <UL> + <LI>Ham</LI> + <LI>Bread; one of: + <UL> + <LI>White</LI> + <LI>Rye</LI> + <LI>Whole wheat</LI> + </UL> + </LI> <!-- End of the "Bread" <LI> --> + <LI>Cheese</LI> + </UL> + </LI> <!-- End of the "Obtain" <LI> --> + <LI>Place ham and cheese between two slices of bread</LI> + <LI>Consume the resulting ham-and-cheese sandwich</LI> + </OL> + </pre> + <p> + The <code></LI></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. + </p> + </li> + </ul> + <p> + The Validator has inserted a BAR start tag where it thinks there needs + to be one; it will probably complain later on that <a href="#no-end-tag">the + corresponding end tag is also missing</a>. + </p> + </dd> + <dt id="not-allowed-contained">"document type does not allow element "FOO" here; assuming missing "BAR" start-tag"</dt> + <dd> + <p> + Similar to the <a href="#not-allowed">previous error</a>, but more + specific: in this case, you have a FOO element that is not contained + in a BAR element when FOO is not allowed outside of BAR. Probably the + most common cause of this error is the use of the <code>DD</code> + element as a fake paragraph indent; <code>DD</code> is not allowed + outside of a <code>DL</code> element. + </p> + <p> + The Validator has inserted a BAR start tag where it thinks there needs + to be one; it will probably complain later on that <a + href="#no-end-tag">the corresponding end tag is also missing</a>. + </p> + </dd> + <dt id="undef-attr">"there is no attribute `FOO'"</dt> + <dd> + <p> + You have used an attribute with an element that is defined not to have + that attribute. This is most commonly caused by using + vendor-specific attributes without setting the document type + appropriately. + </p> + </dd> + <dt id="undef-attr-val">"`FOO' is not a member of the group specified in the declared value of this attribute"</dt> + <dd> + <p> + Similar to the <a href="#undef-attr">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><IMG ALIGN=ABSMIDDLE></code> will cause this + error; ABSMIDDLE isn't one of the allowed values for the ALIGN + attribute of <code><IMG></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><TABLE></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> + <IMG SRC="fred.gif> <IMG SRC="joe.gif> + </pre> + <p> + The Validator will (correctly) see a SRC attribute of + <code>"fred.gif> <IMG SRC="</code>, and then try to interpret + JOE.GIF as an attribute of <code><IMG></code>. + </p> + </dd> + <dt id="bad-attr-char">"syntax of attribute value does not conform to declared value"</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. + </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><TD WIDTH="50%"></code> is not allowed. + </p> + </dd> + <dt id="bad-name-attr">"value of attribute "FOO" invalid: "#" cannot start a name"</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. + </p> + </dd> + <dt id="bad-abbrev-attr">"`FOO' is not a member of a group specified for any attribute"</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><IMG ISMAP></code> is actually an abbreviation + of <code><IMG ISMAP=ISMAP></code>. (Technically, this also means + that e.g. <code><P ALIGN=CENTER></code> could be abbreviated to + <code><P CENTER></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><IMG + ISNAP></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><IMG + SRC="fred.gif><IMG SRC="joe.gif></code> would produce this + error, referring to the "attribute value" <code>JOE.GIF</code>. + </p> + </dd> + <dt id="missing-attr">"required attribute `FOO' not specified"</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> element; browsers will typically use these to build + a menu equivalent to your client-side imagemap if the user has + disabled image loading, so you'll want to use a meaningful value here. + </p> + </dd> + <dt id="no-end-tag">"end tag for `FOO' omitted, but its declaration does not permit this"</dt> + <dd> + <p> + You forgot to close something. FOO is the element you forgot to close + (and the next message, `start tag was here' points to the particular + instance of FOO 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 FOO element that isn't allowed + there. For instance, <code><UL><LI><H4>fake font + change</H4></UL></code> will cause this error, since + headers aren't allowed inside <code><UL></code>'s; The + Validator assumes that you meant to close the + <code><UL></code> before opening the <code><H4></code>. + </li> + <li> + Interlocked elements. For instance, + <code><B><I>nope</B></I></code> will cause + this error. HTML requires that you close elements ``inside-out'' --- + that is, the last element you opened is the first element you should + close. In this example, you'd have to close the + <code><I></code> before the <code><B></code>. + </li> + <li> + Unclosed <code><A></code> tags. Yes, even <code><A + NAME="foo"></code> has to have a corresponding + <code></A></code>. Note that an empty <code><A + NAME></code> element won't be recognized by some browsers; be + sure to put at least a word or two inside the + <code><A></code>. + </li> + <li> + Having unadorned text where The Validator was expecting a + sub-element of FOO. For instance, <code><DL>fake + indent</DL></code> will produce this error, since inside a + <code><DL></code>, The Validator only expects to see + <code><DT></code>'s and <code><DD></code>'s. + </li> + <li> + A tag of the form <code><TABLE WIDTH=100%></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><TABLE>...</TABLE></code>, thus triggering the + error message for the previous reason. This error will likely be + followed by mistaken complaints that your <code><TR></code>'s + are <a href="#not-allowed">"not allowed here"</a>, plus a complaint + about your <code></TABLE></code> end tag. The solution is to + put the attribute value in quotes; ie. <code><TABLE + WIDTH="100%"></code>. + </li> + </ul> + <p> + In general, you should always explicitly close all elements and + quote all attribute values. + </p> + </dd> + <dt id="floating-close">"end tag for element "FOO" which is not open"</dt> + <dd> + <p> + The Validator found an end tag, represented here by FOO, without a + corresponding start tag. This frequently occurs in conjunction with + the <a href="#no-end-tag">previous error</a>. For instance, given + <code><B><I>nope</B></I></code>, The Validator + will insert a <code></I></code> before the + <code></B></code>, and then will find the + <code></I></code> after the <code></B></code> and will + have nothing to match it with. + </p> + <p> + A subtle variation of this is <code><P><H4>fake font + change</H4></P></code>. <code><H4></code>'s aren't + allowed inside <code><P></code>'s, but since HTML allows you to + omit the <code></P></code> end tag for paragraphs, The Validator + assumes that you meant <code><P></P><H4>fake font + change</H4></P></code>, in which case the final + <code></P></code> is indeed superfluous. + </p> + <p> + This error can also be caused by incorrectly supplying an end tag for + "empty" elements like <code><HR></code>, <code><BR></code> + or <code><IMG></code>. + </p> + </dd> + <dt id="omitted-content">"end tag for `FOO' which is not finished"</dt> + <dd> + <p> + You have a FOO 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. + </p> + </dd> + <dt id="no-start-tag">"start tag for `FOO' omitted, but its declaration does not permit this"</dt> + <dd> + <p> + The Validator expected you to start a FOO element at the indicated + point. This probably means you've put unadorned text somewhere it + isn't allowed; for instance, <code><UL>fake + indent</UL></code> will cause this error. + </p> + </dd> + <dt id="bad-entity">"general entity `FOO' not defined and no default entity"</dt> + <dd> + <p> + The Validator has found an entity (something like + <code>&this;</code>) that it doesn't recognize. There are a few + possibilities: + </p> + <ul> + <li> + The entity <code>&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/msg00636.html">accidentally + omitted</a> from the most recent version of the HTML 3.2 DTD. You + should be able to ignore this error safely, though if you wish, you + can replace <code>&quot;</code> with the equivalent character + entity <code>&#34;</code>. + </li> + <li> + The entity <code>&nbsp;</code> in conjunction with the Mozilla + <code>DOCTYPE</code>. WebTechs' Mozilla DTD, which The Validator + uses, inexplicably does not define this entity. This error message + should not cause a problem, though you may wish to switch to the + equivalent but more widely handled character entity + <code>&#160;</code>. + </li> + <li> + An unterminated entity; for instance, <code>this&ampthat</code> + for "this&that", which The Validator (correctly) interprets as a + request for the entity <code>&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;that</code>. + </li> + <li> + <p> + A URL for a CGI program that uses `&' as a separator, such as + "<code>http://host/prog?x=1&y=2</code>". This is a common + problem: the inventors of CGI didn't think things through very + carefully when they decided to use the '&' character as a + separator between CGI arguments, because '&' has special + status in HTML. The only way to get around this is for the author + of the CGI program to use a different value between arguments, + like ';' or '|', which would allow the link to be coded as + <code><img src="http://site/cgi?opt1=val1;opt2=val2"></code> + or whatever. + </p> + <p> + Please contact the maintainer of the CGI program you are linking + to, and ask them to use a different character for their separator. + (Normally this is extremely easy to add to the CGI program; + multiple characters can also be used so existing links using the + '&' character will still work.) + </p> + </li> + </ul> + </dd> + <dt id="bad-char">"non SGML character number ###"</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 + 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 + Flavell</a>'s excellent <a + href="http://ppewww.ph.gla.ac.uk/%7Eflavell/iso8859/">ISO8859-1/HTML + reference</a>. + </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 + command to save the document without formatting information. + </p> + </dd> + <dt id="unicode-char">"`####' is not a valid character number"</dt> + <dd> + <p> + You'll get several occurrences of this error if you use the Cougar + DTD. Cougar uses the 16-bit UCS-4 (a.k.a. "Unicode") character set + instead of the 8-bit ISO8859-1 character set used by HTML 2.0 and HTML + 3.2. It also defines mnemonic entities for various Unicode characters; + for instance, the entity <code>&trade;</code> is defined as the + character entity <code>&#8482;</code>, which is the Unicode + trademark character. Unfortunately, the <code>nsgmls</code> executable + used by The Validator does not appear to have 16-bit character support + compiled in, and so it chokes on these 16-bit character entities. + </p> + <p> + These errors are not produced by anything in your document and should + not otherwise affect the validation of your document, so you can + pretty much ignore them. + </p> + </dd> + <dt id="bad-pub-id">"cannot generate system identifier for entity `HTML'"</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 + Validator recognizes. + </p> + <p> + Note that all of the rest of the errors you received are meaningless; + The Validator was unable to find a <a href="sgml.html#dtd">DTD</a> to + work from, and thus could not validate your document. + </p> + </dd> + </dl> + </body> +</html> diff --git a/htdocs/docs/help.html b/htdocs/docs/help.html new file mode 100755 index 0000000..277916a --- /dev/null +++ b/htdocs/docs/help.html @@ -0,0 +1,106 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + + <head> + <title>W3C HTML Validation Service Help</title> + <link rev="made" href="mailto:gerald@w3.org" /> + <link rel="stylesheet" type="text/css" href="/base.css" /> + <meta name="keywords" content="HTML, Hypertext Markup Language, Validation, + W3C HTML Validation Service" /> + <meta name="description" content="W3C's easy-to-use HTML validation + service, based on an SGML parser." /> + <meta name="revision" content="$Id: help.html,v 1.1 2001-02-23 09:06:49 link Exp $" /> + <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" /> + </head> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b"> + <h1><a href="http://www.w3.org/"><img align="left" + src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0" + alt="W3C" /></a> HTML Validator Help</h1> + <p align="right" class="navbar"> + <a href="about.html">About this service</a> | + <a href="whatsnew.html">What's new</a> | + <a href="source/">Source code</a> | + <a href="feedback.html">Feedback</a><br clear="right"/> + <a href="file-upload.html">Upload files</a> | + <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator + archives</a> | + <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> | + <a href="checklink">Link checker</a><br clear="right"/> + <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> | + <a href="http://www.w3.org/MarkUp/">HTML home</a> | + <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> | + <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> + <br clear="all" /> + </p> + <div> + <h2 id="what-is-it">What does The Validator do?</h2> + The Validator is sort of like <code>lint</code> for C. It compares + your HTML document to the defined syntax of HTML and reports any + discrepancies. + </div> + <div> + <h2 id="why-validate">Why should I validate my HTML pages?</h2> + <p> + One of the important maxims of computer programming is: <q>Be + conservative in what you produce; be liberal in what you accept.</q> + </p> + <p> + Browsers follow the second half of this maxim by accepting Web pages + and trying to display them even if they're not legal HTML. Usually + this means that the browser will try to make educated guesses about + what you probably meant. The problem is that different browsers (or + even different versions of the same browser) will make different + guesses about the same illegal construct; worse, if your HTML is + <em>really</em> pathological, the browser could get hopelessly + confused and produce a mangled mess, or even crash. + </p> + <p> + That's why you want to follow the first half of the maxim by making + sure your pages are legal HTML. The best way to do that is by + running your documents through one or more HTML validators. + </p> + </div> + <div><h2 id="others">What other validators are there?</h2><p>FIXME</p></div> + <div> + <h2 id="how">How does The Validator work?</h2> + 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> + SGML parser. The Validator itself is a CGI script that fetches your + URL, passes it through <code>nsgmls</code>, and post-processes the + resulting error list for easier reading. + </div> + <div> + <h2 id="choosing-dtd">How do I set The Validator to validate in + HTML2/HTML3/Netscape mode?</h2> + Unlike WebTechs, The Validator does not allow you to select a document + type on the fly. If your document is not intended to be HTML + 2.0-compliant, you must add a corresponding <code>DOCTYPE</code> + declaration to your document; see <a href="sgml.html#doctype">the + section on <code>DOCTYPE</code></a> for more information. If your + document does not have a <code>DOCTYPE</code> declaration, The + Validator will assume an HTML 4.0 document type (and will tell + you it is doing so). + </div> + <div> + <h2 id="munged-doctype">Help! The Validator spewed a zillion error + messages on my page!</h2> + <p> + Don't panic. Did The Validator complain about your + <code>DOCTYPE</code> declaration (or lack thereof)? Make sure your + document has a syntactically correct <code>DOCTYPE</code> + declaration, as described in the <a href="sgml.html#doctype">section + on <code>DOCTYPE</code></a>, and make sure it correctly identifies + the type of HTML you're using. Then run it through The Validator + again; if you're lucky, you should get a lot fewer errors. + </p> + <p> + If this doesn't help, then you may be experiencing a cascade failure + — one error that gets The Validator so confused that it can't + make sense of the rest of your page. Try correcting the first few + errors and running your page through The Validator again. + </p> + </div> + </body> +</html> diff --git a/htdocs/docs/index.html b/htdocs/docs/index.html new file mode 100755 index 0000000..76b6cc6 --- /dev/null +++ b/htdocs/docs/index.html @@ -0,0 +1,60 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + + <head> + <title>W3C HTML Validation Service Documentation Index</title> + <link rev="made" href="mailto:gerald@w3.org" /> + <link rel="stylesheet" type="text/css" href="/base.css" /> + <meta name="keywords" content="HTML, Hypertext Markup Language, Validation, + W3C HTML Validation Service" /> + <meta name="description" content="W3C's easy-to-use HTML validation + service, based on an SGML parser." /> + <meta name="revision" content="$Id: index.html,v 1.1 2001-02-23 09:06:49 link Exp $" /> + <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" /> + </head> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b"> + <h1><a href="http://www.w3.org/"><img align="left" + src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0" + alt="W3C" /></a> HTML Validator Help Index</h1> + <p align="right" class="navbar"> + <a href="about.html">About this service</a> | + <a href="whatsnew.html">What's new</a> | + <a href="source/">Source code</a> | + <a href="feedback.html">Feedback</a><br clear="right"/> + <a href="file-upload.html">Upload files</a> | + <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator + archives</a> | + <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> | + <a href="checklink">Link checker</a><br clear="right"/> + <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> | + <a href="http://www.w3.org/MarkUp/">HTML home</a> | + <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> | + <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> + <br clear="all" /> + </p> + + <p> + Here you'll find the documentation for The W3C HTML Validation Service. + What little there is of it; additions eagerly accepted! <tt>:-)</tt> + </p> + <dl> + <dt><a href="help.html">W3C Validator Help</a></dt> + <dd><p>A quick intro and help to get you started.</p></dd> + <dt><a href="users.html">W3C Validator Users Guide</a></dt> + <dd><p>The Users Guide for the W3C Validator.</p></dd> + <dt><a href="sgml.html">SGML Cheat Sheet</a></dt> + <dd> + <p> + A quick introduction to SGML concepts as they apply to the + 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="devel.html">Developer Information</a></dt> + <dd><p>Information about the Validator for programmers.</p></dd> + </dl> + </body> +</html> diff --git a/htdocs/docs/sgml.html b/htdocs/docs/sgml.html new file mode 100755 index 0000000..564064f --- /dev/null +++ b/htdocs/docs/sgml.html @@ -0,0 +1,130 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + + <head> + <title>W3C HTML Validator SGML Intro</title> + <link rev="made" href="mailto:gerald@w3.org" /> + <link rel="stylesheet" type="text/css" href="/base.css" /> + <meta name="keywords" content="HTML, Hypertext Markup Language, Validation, W3C HTML Validation Service" /> + <meta name="description" content="W3C's easy-to-use HTML validation service, based on an SGML parser." /> + <meta name="revision" content="$Id: sgml.html,v 1.1 2001-02-23 09:06:49 link Exp $" /> + <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" /> + </head> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b"> + <h1><a href="http://www.w3.org/"><img align="left" + src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0" + alt="W3C" /></a> HTML Validator SGML Intro</h1> + <p align="right" class="navbar"> + <a href="about.html">About this service</a> | + <a href="whatsnew.html">What's new</a> | + <a href="source/">Source code</a> | + <a href="feedback.html">Feedback</a><br clear="right"/> + <a href="file-upload.html">Upload files</a> | + <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator archives</a> | + <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> | + <a href="checklink">Link checker</a><br clear="right"/> + <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> | + <a href="http://www.w3.org/MarkUp/">HTML home</a> | + <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> | + <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> + <br clear="all" /> + </p> + + <div> + <h2 id="sgml">What is SGML?</h2> + <p> + SGML stands for Standard Generalized Markup Language. This is + actually a slight misnomer, since SGML is actually a + <em>meta-language</em> — that is, a language for writing markup + languages. HTML is a markup language written in SGML — an "SGML + application", to use the terminology. + </p> + <p> + You don't actually have to know much about SGML to use The Validator + successfully. If you're interested, though, I recommend TEI's + <a href="http://etext.virginia.edu/tei-tocs1.html">"A Gentle + Introduction to SGML"</a> as a good starting point. An additional SGML + resource can be found on + <a href="http://www.oasis-open.org/cover/sgml-xml.html">SIL's SGML + Web Page</a>. + </p> + </div> + + <div> + <h2 id="dtd">What is a DTD?</h2> + <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. + The DTD's for + <a href="http://w3.org/MarkUp/html-spec/">HTML 2.0</a> + and <a href="http://w3.org/TR/REC-html32">HTML 3.2</a> + were written by the HTML Working Group of the + <a href="http://www.ietf.org/"><abbr title="Internet Engineering Task Force">IETF</abbr></a>, + in collaboration with the <a href="http://w3.org"><abbr title="World Wide Web Consortium">W3C</abbr></a>. + From <a href="http://w3.org/TR/html4">HTML 4.0</a> on (this includes + <a href="http://w3.org/TR/xhtml1">XHTML</a>), the standards (both + prose and DTDs) have been written by the + <a href="http://w3.org"><abbr title="World Wide Web Consortium">W3C</abbr></a>. + </p> + </div> + + <div> + <h2 id="doctype">What is this <code>DOCTYPE</code> thing The Validator + keeps pestering me for?</h2> + + <p> + A <code>DOCTYPE</code> is a <a href="#sgml">SGML</a> document type + declaration. Its purpose is to tell an SGML parser what + <a href="#dtd">DTD</a> it should use to parse the document. It appears + as the first line of the document, and has the form: + <code><!DOCTYPE html PUBLIC "quoted string"></code> + </p> + <p> + The quoted string is called a <dfn>public identifier</dfn>; it refers + to the desired DTD by a "well-known" name, usually defined by an + associated standard. + </p> + <p> + Most Web browsers don't actually use an SGML parser (in fact, none + that I'm aware of do), and so they don't need a <code>DOCTYPE</code> + declaration, and will ignore it if present. The Validator, however, + does use an SGML parser, and therefore needs a <code>DOCTYPE</code> + declaration. The Validator is more insistent on this point than + WebTechs was, which would insert a <code>DOCTYPE</code> on the fly + for you; The Validator requires that your <code>DOCTYPE</code> already + be in the document. + </p> + <p> + So now you're preparing to add a <code>DOCTYPE</code> to your document. + Be sure that the syntax is as described above, and that you use the + correct public identifier; otherwise, The Validator will use the wrong + DTD, or will be unable to find a DTD at all, and will produce a huge + list of absolutely meaningless errors. The Validator's + <a href="catalog">public identifier catalog</a> lists all the public + identifiers The Validator recognizes for various types of HTML; of + those, the following public identifiers are most likely to be widely + recognized: + </p> + <dl> + <dt><code>For HTML 2.0...</code></dt><dd>...use "-//IETF//DTD HTML 2.0//EN"</dd> + <dt><code>For HTML 4.0...</code></dt><dd>...use "-//W3C//DTD HTML 4.0//EN"</dd> + <dt><code>For HTML 4.0 Transitional...</code></dt><dd>...use "-//W3C//DTD HTML 4.0 Transitional//EN"</dd> + <dt><code>For HTML 4.0 Frameset...</code></dt><dd>...use "-//W3C//DTD HTML 4.0 Framset//EN"</dd> + </dl> + <p>Note that the string must appear exactly as shown, including case.</p> + <p class="warning"> + <strong>WARNING:</strong></a> Some HTML editors will insert a + <code>DOCTYPE</code> declaration for you. Unfortunately, this + pre-inserted <code>DOCTYPE</code> will sometimes confuse + The Validator. This usually occurs when the inserted + <code>DOCTYPE</code> does not correspond to the generated HTML. + If your editor adds a <code>DOCTYPE</code> to your page, you may + need to correct it as described above before running your page through + The Validator. + </p> + </div> + </body> +</html> + diff --git a/htdocs/docs/users.html b/htdocs/docs/users.html new file mode 100755 index 0000000..0a89cff --- /dev/null +++ b/htdocs/docs/users.html @@ -0,0 +1,177 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + + <head> + <title>W3C HTML Validation Service User Manual</title> + <link rev="made" href="mailto:gerald@w3.org" /> + <link rel="stylesheet" type="text/css" href="/base.css" /> + <meta name="keywords" content="HTML, Hypertext Markup Language, Validation, + W3C HTML Validation Service" /> + <meta name="description" content="W3C's easy-to-use HTML validation + service, based on an SGML parser." /> + <meta name="revision" content="$Id: users.html,v 1.1 2001-02-23 09:06:49 link Exp $" /> + <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" /> + </head> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b"> + <h1><a href="http://www.w3.org/"><img align="left" + src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0" + alt="W3C" /></a> HTML Validator User Manual</h1> + <p align="right" class="navbar"> + <a href="about.html">About this service</a> | + <a href="whatsnew.html">What's new</a> | + <a href="source/">Source code</a> | + <a href="feedback.html">Feedback</a><br clear="right"/> + <a href="file-upload.html">Upload files</a> | + <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator + archives</a> | + <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> | + <a href="checklink">Link checker</a><br clear="right"/> + <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> | + <a href="http://www.w3.org/MarkUp/">HTML home</a> | + <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> | + <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> + <br clear="all" /> + </p> + + <div id="Quickstart" class="stb"> + <h2>QuickStart</h2> + <p> + Just type (or Cut&Paste) the URL for the page you want to validate + into the text field on the form and press the "Validate this page" + button. + </p> + <p> + If you have a local file you want to validate, choose the "File Upload" + link from the navigation menu. Select the button labelled "Browse..." + (or something like that, depending on your browser) and choose the file + you want to upload in the usual manner for your OS. + </p> + </div> + + <div id="Introduction" class="stb"> + <h2>Introduction</h2> + <p> + The W3C HTML 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 + objective syntax rules called a "DTD", a Document Type Definition. This + way you can be sure your HTML is really valid and not just that it + conforms to some random programmer's idea of "nice" HTML. Note that + valid HTML does not guarantee that your pages will work ok in all + browsers. Most of them are severly broken and you may need to find + alternate ways of achieveing your goal. + </p> + <p> + When you send an URL to the W3C HTML Validation Service, it will fetch + that URL and feed it to the SGML parser. If you upload a file it'll get + fed directly into the SGML parser. We then take the output from the + SGML parser and format it nicely as HTML and send it back to your web + browser. The W3C HTML Validation Service isn't generating any of the + error messages; they are all generated by the underlying SGML Parser + which is checking your HTML against the actual standard for the version + of HTML you are using. + </p> + </div> + + <div id="Options" class="stb"> + <h2>The Options</h2> + <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 + checkboxes that alter the behaviour of the validator. The options are: + </p> + + <dl> + <dt>Show source input (<code>ss</code>)</dt> + <dd> + 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. + </dd> + <dt>Show an outline of this document (<code>outline</code>)</dt> + <dd> + 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. + </dd> + <dt>Show parse tree (<code>sp</code>)</dt> + <dd> + 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. + </dd> + <dt>exclude attributes from the parse tree (<code>noatt</code>)</dt> + <dd>Supress attributes from the parse tree to make it more readable.</dd> + </dl> + </div> + + <div id="Calling" class="stb"> + <h2>Calling the Validator</h2> + <p> + You can link directly to the Validator home page, or you can call the + Validator CGI program. The home page is <URL:<a + href="http://validator.w3.org/">http://validator.w3.org/</a>> at + the moment (and for the forseeable future) and the CGI program can be + reached at <URL:<a + href="http://validator.w3.org/check">http://validator.w3.org/check</a>>. + </p> + <p> + If you call the CGI program with extra path info matching "/referer" + (i.e. <URL:<a href="http://validator.w3.org/check/referer">http://validator.w3.org/check/referer</a>>) + it will fetch the refering 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> + <p> + You can also link to the validation results for a specific page. You do + this by giving "check" an "uri" parameter pointing at the page you want + to validate. For example <URL:<a href="http://validator.w3.org/check?uri=http://www.example.com/">http://validator.w3.org/check?uri=http://www.example.com/</a>> + will validate the www.example.com home page. + </p> + <p> + The various options are listed above in the section + "<a href="#Options">The Options</a>" in paranthesis after the long + name. To add options to your links directly, append the options + separated by a semi-colon. For example <URL:<a href="http://validator.w3.org/check?uri=http://www.example.com/;ss;outline;sp">http://validator.w3.org/check?uri=http://www.example.com/;ss;outline;sp</a>> + will validate the example.com home page with "Show Source", "Outline" and + "Show Parse Tree" on, but "Exclude Attributes" off. + </p> + <p> + You may also see these separated by amperstands and equal-signs, but + this usage is deprecated and support may be removed at some time in the + future. + </p> + </div> + + <div id="Interpret" class="stb"> + <h2>Interpreting the results</h2> + <p> + Interpreting the error messages isn't quite what you'd call easy. The + error messages are generated in the context of a full SGML environment + which demands a somewhat higher level of technical detail then your + average HTML document. We're working on ways to make the error messages + more friendly, but for now feel free to email the + <a href="mailto:www-validator@w3.org">www-validator@w3.org</a> + mailinglist if you need help interpreting the results. This will have + the added benefit of letting us know which error messages are causing + the most trouble so we can fix those first. Please be as specific as + possible and include the <em>exact</em> error message and, preferably, an URL + we can validate to see for ourselves. + </p> + </div> + <div id="Installing" class="stb"> + <h2>Installing a local Validator</h2> + <p> + You can download the Validator to tun 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> + </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>. + </p> + </div> + </body> +</html> |