Interestingly enough, if you save your CGI generated code as a file and have W3.org's HTML validator take a look at it, it doesn't like the doctype declaration.
To get usable code validation I've always had to hand edit that line of the file to specify a newer version of HTML, I guess the generated one specifies HTML 1.0 or 2.0. BTW, I really recommend validating your generated code. It's good to comply with standards. I've also found that it helps solve rendering problems, especially when using stylesheets.
Looking at the w3c site, I found this in the HTML 4.01 spec:
HTML 4.01 specifies three DTDs, so authors must include one of the following document type declarations in their documents. The DTDs vary in the elements they support.
- The HTML 4.01 Strict DTD includes all elements and attributes that have not been deprecated or do not appear in frameset documents. For documents that use this DTD, use this document type declaration:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- The HTML 4.01 Transitional DTD includes everything in the strict DTD plus deprecated elements and attributes (most of which concern visual presentation). For documents that use this DTD, use this document type declaration:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- The HTML 4.01 Frameset DTD includes everything in the transitional DTD plus frames as well. For documents that use this DTD, use this document type declaration:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
TGI says
moo