The First Lost Attribute of A: TYPE
The first attribute to disappear was a "TYPE" attribute to the
"<A>" tag. Actually, much of its functionality got absorbed
into the "REL" attribute that largely replaced it. In early 1992
there were still several ideas floating around as to what sorts of parameters
this attribute could take. As it is, only a very old and obscure user agent
known as "Guide" appears to have ever implemented this attribute. As
I have no access to "Guide," I have no way to test how it worked with
this attribute.
By mid-1993 when this attribute had been renamed "REL" (and a
corresponding "REV" attribute also introduced to provide an
inverse relationship description), the list vaguely proposed in 1992 had
firmed up to some rather interesting list of alternatives. Some of them
would serve only as mere descriptive terms, perhaps to be used by search
engines to know what it they are looking at, or if a link button were to
be provided in the frame of the browser (as it was on Mosaic) there could
be a small graphic to provide the user with some hint of what the file is.
But several of the possible values for TYPE also had something much more
interesting one great idea abandonded almost immediately and never restored
to regular HTML, and that is the embedded or "present" text. If one
were to set "TYPE=PRESENT" the file pointed to would be also
retrieved and inserted into the location in place of a visible "<A>"
tag. Quickly eliminated from HTML, this functionality would soon resurface
in the Server Side Includes, which achieve the same effect, but from the
server side instead of the client side. There is a good reason why this sort
of functionality was not added to the HTML language, and that is the problem
of what to do if a file calls another file, which in turn calls the first file,
which calls the second calling the first yet again, and so on. As the number
of kinds of HTTP server software packages is quite small, it is a trivial
matter to see to it that every server is protected from that kind of mistake, either
by limiting how many levels deep one can go, or else by keeping track of file
names and returning an error message instead of the contents of a file already
called higher up. But with all the possible browsers coming along and so many
more yet to come, how easy it would be for one or more to omit this sort of
programming protection, or supply it inadequately, such that a malicious web
designer could tie up a server indefinately or even crash it.
A similar value, "TYPE=EMBED," was originally thought to be similar
to this but later on it hardened into a kind of scripting action, where you
would click on it, and then it would fetch the contents of its destination and
insert it. This kind of functionality would avoid the danger of "PRESENT"
in that the user must manually click on each file to cause it to be read in,
thus limiting how deep it could go. This kind of functionality might at best
only be approximated with scripting languages, and one really has to wonder how
"Guide" implemented it.
In the 1993 version (using "REL" instead of "TYPE"),
the following list of values had been proposed:
- USEINDEX - the file pointed to should be an indexed file (using
"<ISINDEX>"), merely informational
- USEGLOSSARY - a term could be clicked on to go to its definition in a
glossary file, should prevent the link from looking like a link
- ANNOTATION - pointer to some small file with the equivalent to a sort
of margin note, sort of replaced with the "TITLE" attribute which
can put a small indicator up when the mouse is rolled over it, or like a
Javascript popup window which can put an additional explanation on the screen
when requested, or the "LONGDESC" attribute to some other tags which
can provide a description made available upon request, but as intended originally,
this was merely informational
- REPLY - pointer to an equivalent document, not subordinated to or by the
source document, merely informational
- EMBED - a click on this link can bring up text from a file and insert it
inline in the document, could be useful if (for example) you want to check a
stock price and click on it whenever you want to read the latest price
- PRECEDES - later changed to "PREV" (and corresponding "NEXT"
introduced), merely informational
- SUBDOCUMENT - from an index or contents or main page, this denotes a
destination which is hierarchically "under" the present page, merely
informational
- PRESENT - user agent (client) automatically retrieves the destination
file and inserts it text inline
- SEARCH - call up a search engine (this would appear to obviate the need
for having either a "NAME" or "HREF" attribute, since
presumably some standard search engine would be sought instead of some page,
even one with a search engine
- SUPESEDES - the destination is merely some previous version of the
present page "superseded" by the current page, merely informational
- HISTORY - the destination file is a document history, merely
informational
- INCLUDES - hint that one file includes information from another, merely
informational
- MADE - author of present file made destination file, merely informational
- INTERESTED - destination file is list of interested parties to inform
if the page is updated, merely informational in browser, but web page editing
software could use this file to know who to inform (list of email addresses)
whenever the file is updated
So, a typical use of the "TYPE" attribute, where it could have
an effect, would be the following (but replacing "<" with "["
and ">" with "]" for validity):
[P][A NAME=3 HREF="fatima.txt" TYPE="EMBED"]text[/A]
which results in:
text
Here are some other possibilities to experiment with. If you can track down
a working "Guide" browser, it might do something interesting with one
or more of them (but again replacing "<" with "[" and
">" with "]" for validity):
[P][A NAME=3 HREF="fatima.txt" TYPE="PRESENT"]text[/A]
which results in:
text
In HTML 4 the "TYPE" attribute would be reintroduced, but with a
different function and purpose altogether.
Recommended Implementation
Since the "TYPE" attribute has been reintroduced to the "<A>"
tag with HTML 4.01, but with a different function, it would be confusing to implement
this discussed functionality on the "TYPE" attribute, but it could be
reasonably added to the "REL" attribute, providing of course that the
above described danger is carefully protected against. But I recommend against
adding this functionality to the "TYPE" attribute.
Upgrades and Downgrades
Possible downgrades are:
- None - This attribute existed as little more than a speculative attribute,
a place holder in the language, at the very beginning of the concept. When finally
implemented, it was given a different name ("REL").
Possible upgrades are:
- "REL" and "REV" for "TYPE" - If the intent
is purely informational, some of the possible attribute values have their
conterparts in the following partial list of "REL" attribute values: Start,
Next, Prev, Contents, Index , Glossary, Copyright, Chapter, Section, Subsection,
Appendix, Help, Bookmark. In addition, two particularly useful "REL"
values, Stylesheet and Alternate (for Alternate Stylesheet) would later emerge
in HTML 4 with the introduction of style sheets, and provide "<LINK>"
(in particular) with a new function. On "<A>" however, the
"REL" attribute (like "REV") has no effect.
- Incuding text with Server Side Includes - Server Side
includes are one way to perform the function of the "PRESENT" function;
originally "EMBED" may have been thought to function this way.
This file, "atype.html," is "HTML 0.c"
compliant.
The Server Side Include demonstration file
"atype1.shtml" is HTML 2.0 Level 1
compliant.
The Raw Text demonstration file "fatima.txt" is
ascii text, so HTML validation does not apply to it.
__________________________________________________________________
Next Level Up