- From: Etan Wexler <ewexler@stickdog.com>
- Date: Fri, 25 Jan 2002 06:23:57 -0500 (EST)
- To: Web style list <www-style@w3.org>
Masayasu Ishikawa wrote: > "Russell O'Connor" <roconnor@Math.Berkeley.EDU> wrote: > >> The id attrubute has type ID, and as far as I can tell is case >> insensitive. >> >> This means that fragement identifiers should be matched > case insenstively. > > See section 12.2.1 "Syntax of anchor names", at: > > http://www.w3.org/TR/html401/struct/links.html#h-12.2.1 That section states, "Comparisons between fragment identifiers and anchor names must be done by exact (case-sensitive) match." What is left unwritten is that * HTML4 requires folding non-entity * * names to upper case during parsing. * This requirement covers, among other things, ID attribute values. Inspect the HTML4 SGML declaration [1]: NAMING LCNMSTRT "" UCNMSTRT "" LCNMCHAR ".-_:" UCNMCHAR ".-_:" NAMECASE GENERAL YES ENTITY NO So, the HTML4 tag keyed as <div id="a-to-z"> represents the start of a 'DIV' element with an 'ID' attribute whose value is 'A-TO-Z'. SGML offers many conveniences for the direct keying of a document. But, just as the lack of an end-tag on a 'P' element does not mean that the 'P' element has no end, the case of non-entity name characters as keyed does not influence the resulting name. At least, this is the case if we take seriously the claims [2, 3, 4] that HTML4 is an application [5] of SGML. It was foolish to proclaim HTML4 an application of SGML. The proclamation requires conformant implementations of HTML4 to obey the details of ISO 8879, which is a complex specification. It would have been perfectly reasonable to include in the HTML4 specification a non-normative reference to ISO 8879 and to create rules that would ensure that every valid HTML4 document be a valid SGML document. [1] HTML4 section 20.1, "SGML Declaration". <http://www.w3.org/TR/html4/sgml/sgmldecl.html>. [2] HTML4 cover page. <http://www.w3.org/TR/html4/>. "HTML 4.01 is an SGML application conforming to International Standard ISO 8879 -- Standard Generalized Markup Language" [3] HTML4 section 5.1, "Document Character Set". <http://www.w3.org/TR/html4/charset.html> "To promote interoperability, SGML requires that each application (including HTML) specify its document character set." [4] HTML4 section 4.2, "SGML". <http://www.w3.org/TR/html4/conform.html> "HTML 4.01 is an SGML application conforming to International Standard ISO 8879 -- Standard Generalized Markup Language" [5] ISO 8879:1986 sub-clause 15.2, "Conforming SGML Application". "A conforming SGML application's conventions can affect only areas that are left open to specification by applications." -- Etan Wexler
Received on Friday, 25 January 2002 07:50:25 UTC