Difference between revisions of "Validator.nu Useful Warning Requests"
(→Polyglot Document Checking: Updted unescaped special chars)
(→Polyglot Document Checking: Described escaping text spans for RCDATA)
|Line 147:||Line 147:|
! The <code>textarea</code> and <code>title</code> Elements
! The <code>textarea</code> and <code>title</code> Elements
| The content model of these elements is RCDATA in HTML, but PCDATA in XHTML. These elements may not contain escaping text spans, or unescaped ampersands or less than characters.
| The content model of these elements is RCDATA in HTML, but PCDATA in XHTML. These elements may not contain escaping text spans , or unescaped ampersands or less than characters.
Revision as of 06:53, 5 September 2009
This page documents requests for potential optional checks to be implemented by HTML5 QA tools, like Validator.nu. This is only intended to document feature requests, and may not reflect what is, or will be, implemented in the future.
The following tables describe issues that a QA tool might provide options to warn about. None of the issues listed in these tables are technically conformance errors, but have been requested directly by authors and/or are considered to be useful for authors to be warned about.
|Quoted attributes||Boolean option to require quoted attribute values for all attributes.||XHTML-like syntactic convention commonly requested by authors. (request)|
|Minimised attributes||Boolean option to require all boolean attributes to use the non minimised form. e.g. <input disabled="disabled"> instead of <input disabled>||XHTML-like syntactic convention commonly requested by authors.|
|Trailing Slashes||Options to either:
||Some authors like to follow the XML convention, others prefer to always omit them, and others don't care that much. (request)|
|Optional </p> ahead of new structural element||Boolean option to warn about omitted paragraph end tags ahead of start tags of section, nav, article, aside, header and footer|
|Optional End Tags||Boolean option to require end tags for all non-void elements, which normally have optional end tags||(request)|
|Optional Start Tags||Options to require start tags for the elements 'html', 'head', 'body' and 'tbody'.||XHTML-like convention, mostly applies to html, head and body. Some authors still choose to omit tbody, but like to always include the others.|
|Case sensitivity||Boolean option to check tag names and attribute names for case sensitivity.||HTML and MathML elements and attributes are all lowercase, but SVG contains some camel case names.|
|Character Entity References||Options to allow:
||Warning about HTML4.01 references is a useful check for compatibility reasons, due to existing legacy browsers that don't support the additional entity references imported from MathML yet. Use of only the 5 predefined entity references is needed for those who want XHTML compatibility, without a DOCTYPE.|
|Untitled document||Warn about the use of meaningless or empty titles. e.g. <title>Untitled document<title> (or similar)||This is a common default title inserted by authoring tools. Advise the author to use a more appropriate title for the document. (request)|
|Unnecessary whitespace||Warn about long stretches of unnecessary whitespace||(request)|
Polyglot Document Checking
There are 3 levels of polyglot documents that can be created.
- Talismans Only
- An HTML document that contains a number of XML-like syntactic constructs purely as a matter of convention. The document itself may not entirely conform with all well-formedness requirements or may not function properly for other reasons if it were to be treated as XHTML. (This is not really a true polyglot document, but is included here for completeness)
- XHTML Compatible
- A valid HTML document that is also fully conforming XHTML. However, the different processing requirements between HTML and XHTML may give slightly different results that would not match in a tree comparison and is not round-trippable.
- Strict Polyglot
- A valid HTML document that is also fully conforming XHTML, which would pass a tree comparison of the resulting DOMs (excluding unavoidable differences), and which is fully round-trippable.
Note that these descriptions intentionally ignore differences that could be caused by script and stylesheet processing.
The following is a table of issues that would need to be checked to ensure that a given, conforming HTML document is a polyglot document. This does not list all issues that would need to be checked to ensure that a given, conforming XHTML document is a polyglot document, however. As such, syntactic XML constructs which are not valid in HTML are not listed here. For example, the internal subset of a DOCTYPE declaration or the use of CDATA sections within HTML elements.
|Title||Description||Notes||Polyglot Level Requirement|
||In DOM implementations for XHTML, these attributes are in the
||XHTML-compatible (and SVG+MathML)|
|Case sensitivity||All tag names and attribute names for HTML elements must be written in lowercase. Tag names for SVG and MathML must be written in the case defined by those language specifications. The DOCTYPE declaration is case sensitive in XHTML. Must be
||XHTML-Compatible (and SVG+MathML)|
|Default Character Encoding||The default character encoding for
||Use UTF-8 and declare this using either:
|Character Entity References||Without a DTD, only the 5 predefined entity references in XML may be used.||The additional entity references defined and supported using the XHTML 1.0 or 1.1 DOCTYPE cannot be used in XHTML.||XHTML-compatible|
|Unescaped Special Chars||Unescaped ampersand (
||HTML can include unescaped ampersands where they are unambiguous, and unescaped less than characters within rawtext or RCDATA content, and quoted attributes.||XHTML-compatible|
|The characters "
||The use of this sequence of characters is a well-formedness error in XHTML.||XHTML-compatible|
|Line feeds after start tags||A line feed (LF) after the start tags for
||Avoid using line feeds after these start tags||Strict Polyglot|
|Quoted attributes||Unquoted attributes are not allowed in XHTML.||XHTML-compatible|
|Minimised attributes||Minimised attributes (attributes without a value) cannot be used in XML.||Used expanded form. e.g.
|Trailing Slashes||Void elements require explicit closing with trailing slashes.||XHTML-compatible|
|Optional start- and end-tags||Neither start- nor end-tags may be omitted.||XHTML-compatible|
||In HTML, these elements are parsed as CDATA, allowing the use of unescaped special characters. In XHTML, these are parsed as #PCDATA, and any occurrence of the characters < or & must be escaped as
||Scripts and stylesheets containing these characters should be linked externally instead.||XHTML-compatible|
||The content model of these elements is RCDATA in HTML, but PCDATA in XHTML. These elements may not contain escaping text spans (
||In HTML, the
||Explicitly include the