The META element

"Roy T. Fielding" <fielding@simplon.ICS.UCI.EDU>
Date: Fri, 9 Sep 94 20:42:52 EDT
Message-id: <9409091739.aa23054@paris.ics.uci.edu>
Reply-To: fielding@simplon.ICS.UCI.EDU
Originator: html-wg@oclc.org
Sender: html-wg@oclc.org
Precedence: bulk
From: "Roy T. Fielding" <fielding@simplon.ICS.UCI.EDU>
To: Multiple recipients of list <html-wg@oclc.org>
Subject: The META element
X-Listprocessor-Version: 6.0c -- ListProcessor by Anastasios Kotsikonas
X-Comment: HTML Working Group (Private)
> For Proposed head.content you have:
> 
> <![ %HTML.Proposed [
> <!ENTITY % head.content-1 "& LINK* & META*">
> <!ELEMENT META - O EMPTY    -- Generic Metainformation -->
> <!ATTLIST META
>         HTTP-EQUIV  NAME    #IMPLIED  -- HTTP response header name  --
>         NAME        NAME    #IMPLIED  -- metainformation name       --
>         CONTENT     CDATA   #REQUIRED -- associated information     --
>         >
> ]]>

Well, since I proposed it, I guess I should explain why the META element
is here and what I think should be done with it.

The META element was originally defined (last November) as a means for
embedding metainformation in existing HTML documents without having any
impact on the presentation of those documents (WWW browsers ignore it
as just an unknown element).  It thus fulfilled an important goal of
allowing user-extensible information to be embedded in documents and be
accessible to maintenance tools (like MOMspider) and indexing engines.

The reason it is needed is because we are not capable of including every
possible metainfo item as a separate HTML element, nor would we want to.
The fact that there are means of providing extensions by using SGML
constructs is not helpful -- existing browsers do not parse SGML.  Thus,
the META element allows an HTML document to be validated by an SGML
parser even though it contains structured information which is unknown
to that validation service. 

ALL existing browsers do support the META element, because "support" means
"don't display this information."  It is currently used within thousands,
if not hundreds of thousands, of HTML documents world-wide and many tools
exist which require META.  I therefore claim it is "current practice" and
should be included in the HTML 2.0 DTD.

If META is not included in the DTD, then the only HTML implementation
that would not support it would be the validation service.  That, I think,
would be silly.

The reason META was placed in the "Proposed" section is because the
definition was not present in the November '93 printing of the html-spec.
Not surprising, since it hadn't been invented yet.  In December I believed
the HTML+ implementation would be out "any day soon", so when Dave added
it to the HTML+ spec I was a happy camper and thought that would be the end
of it.  I was quite surprised when it was called into question after the
Geneva conference -- after all, I had just presented a paper on how to use
it for web maintenance.  After further discussions with Dan and TimBL,
the current definition of META (the attribute names were changed from
the HTML+ definition) was proposed with the intention of it being added
to HTML 2.0 (Level 1) after people had a chance to examine the wording.
I think that time has passed.


...Roy Fielding   ICS Grad Student, University of California, Irvine  USA
                   (fielding@ics.uci.edu)
    <A HREF="http://www.ics.uci.edu/dir/grad/Software/fielding">About Roy</A>