Modification to NEST

MegaZone (megazone@livingston.com)
Sat, 8 Mar 1997 21:31:50 -0800 (PST)


Message-Id: <199703090531.VAA13918@server.livingston.com>
Subject: Modification to NEST
To: www-html@w3.org
Date: Sat, 8 Mar 1997 21:31:50 -0800 (PST)
From: MegaZone <megazone@livingston.com>

I posted the idea on the HWG HTML list and there has been some strong
support, as well as supporting emails...

One suggestion was made that makes sense - NAME on NEST suggests the variable
will be sent under that NAME.  While I specifically said this wouldn't be
the case, I can see how it can easily be confusing.  The suggestion is
to borrow TITLE from A for this, so I modified the proposal.

I have nsgmls on my workstation, I'll test this Monday.

Some folks on the HWG list tried this markup in Lynx, NS, and MSIE and
it didn't bother any of them.  So it seems to be 'safe'.

---cut---
You know how you can nest lists with most windowing systems?  Like in NS
bookmarks when you can have an arrow on the right which has a sublist; so
that you can have a hierarchical organization for pick lists.

I'd like to see that for SELECT lists in HTML and I think it can be done
so that it will not break current browsers.  I'm no SGML wiz, so if I messed
up the DTD fragment please correct me.

<!ELEMENT SELECT - - (OPTION | NEST)+>
<!ATTLIST SELECT
        name CDATA #REQUIRED
        size NUMBER #IMPLIED
        multiple (multiple) #IMPLIED
        >

<!ELEMENT OPTION - O (#PCDATA)*>
<!ATTLIST OPTION
        selected (selected) #IMPLIED
        value  CDATA  #IMPLIED -- defaults to element content --
        >

<!ELEMENT NEST - - (OPTION | NEST)+>
<!ATTLIST NEST
        title CDATA #REQUIRED
        >


This would be used as follows:

<SELECT NAME="testlist">
<OPTION>first item
<NEST title="stuff">
<OPTION>another
<OPTION>yet another
<OPTION>still another
<NEST title="layer">
<OPTION>third level
</NEST>
</NEST>
<OPTION>last item
</SELECT>

This would be rendered as:

+----------+
|first item|
|stuff>    |
|last item |
+----------+

If a user were to them go to 'stuff' it would be:
+----------+
|first item|
|stuff> +-------------+
|last i |another      |
+-------|yet another  |
        |still another|
        |layer>       |
        +-------------+

Which would then expand to:
+----------+
|first item|
|stuff> +-------------+
|last i |another      |
+-------|yet another  |
        |still another|
        |layer> +-----------+
        +-------|third level|
                +-----------+

the values would all be returned under the key 'testlist' as the NEST
title is just for the display.

As unknown tags are ignored, older browsers - and perhaps those without
a convenient way of doing nesting (lynx?) would render it as a straight list:

+-------------+
|first item   |
|another      |
|yet another  |
|still another|
|third level  |
|last item    |
+-------------+

This seems to be a fairly major missing feature today.

-MZ
--
Livingston Enterprises - Chair, Department of Interstitial Affairs
Phone: 800-458-9966 510-426-0770 FAX: 510-426-8951 megazone@livingston.com
For support requests: support@livingston.com  <http://www.livingston.com/> 
Snail mail: 4464 Willow Road, Pleasanton, CA 94588