SELECT NEST proposal

I have an idea I'd like to propose.

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
        name CDATA #REQUIRED
        >


This would be used as follows:

<SELECT NAME="testlist">
<OPTION>first item
<NEST name="stuff">
<OPTION>another
<OPTION>yet another
<OPTION>still another
<NEST name="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
name 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    |
+-------------+

What do you think sirs?

-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

Received on Saturday, 8 March 1997 05:02:04 UTC