The WDG HTML Validator is similar in many ways to the W3C HTML Validation Service and the (now unavailable) WebTechs Validation Service. The WDG HTML Validator does not use any source code from the other validators, but all three validators use James Clark's nsgmls internally. While the three validators use different versions of nsgmls, the errors from all three should be the same in most cases. However, some differences may arise:
The W3C HTML Validation Service and WebTechs Validation Service both use error messages directly from nsgmls. The WDG HTML Validator differs in that it uses custom error messages for common errors in HTML validation.
Only the WDG HTML Validator supports HTML 4.0's hexadecimal character references since the other validators use an older version of nsgmls. The other validators will give false errors of the form "XA0 is not a function name".
Unlike the other validators, the WDG HTML Validator supports character encodings other than just ISO-8859-1. When validating documents in encodings such as UTF-8, the other validators typically give false errors of the form "non SGML character number 136". The WDG HTML Validator currently supports 40 character encodings, with more encodings added as demand dictates.
Another source of discrepancy in the errors reported by the validators is WebTechs' default behavior of translating "&" to "&" in URLs. This hides the common error of not escaping the ampersand in URLs, for example in <A HREF="foo.pl?chapter=1§ion=2">. The WDG HTML Validator does not hide this error since browser problems with the unescaped ampersand are more common than browser problems with the escaped ampersand. In the preceding example, the widely used Netscape Navigator 3.x would treat §ion as "§ion" and would not correctly follow the link. If valid HTML is used, <A HREF="foo.pl?chapter=1&section=2">, the only known browser to have problems is the lightly used testbed browser Amaya.
The three validators all differ significantly from other checking tools such as Weblint and CSE 3310 HTML Validator. (Despite its name, the latter is not a true "validator.") The three online validators check documents against a document type definition--a published, machine-readable document that facilitates an objective check of syntax against HTML standards. On the other hand, lints are subjective; they provide a more cursory syntax check while adding stylistic checks, such as warning about poorly supported features. Lints are useful tools, but they are not substitutes for HTML validation.