Re: SELECT structures with lots of OPTIONs (fwd)

On Tue, 14 Oct 1997, MegaZone wrote:

> With a container:
>
> <SELECT name="ComOS">
>   <OPTGROUP label="Comm Servers">
>     <OPTGROUP label="PortMaster 3">
>       <OPTION value="pm3_3.7.1">3.7.1
>       <OPTION value="pm3_3.7">3.7
>       <OPTION value="pm3_3.5">3.5
>     </OPTGROUP>
>     <OPTGROUP label="PortMaster 2">
>       <OPTION value="pm2_3.7">3.7
>       <OPTION value="pm2_3.5">3.5
>     </OPTGROUP>
>   </OPTGROUP>
> </SELECT>
> 
> If it is differentiated it will produce duplicate choices in an
> older UA.  Which would be unavoidable with containers.  The other
> method allows the author to decide how they want to do it. 

We may both have missed something important here.

If the purpose of the example menu is just to select between 3
versions of the OS (3.7.1, 3.7 and 3.5) it would be much simpler
to ask for just that without introducing the superfluous Option
groups for "Comm Servers", "PortMaster 2" and "PortMaster 3".

If the selection of PortMaster 2 and 3 has a real meaning then
the server script would like to know this. This suggests that
differentiating the selection of the same OS version between
different versions of PortMaster is really needed.

To avoid confusing people with "old" browsers who can't see the
option groups, we need to make this distinction in the labels.
At the same time we don't want to clutter up the labels for
people who *can* see the option groups. How?

The most obvious solution is to add a label attribute to the
OPTION elements for use with new browsers. When present, this
attribute is used in preference to the element content. You
can now design your menus to offer the clearest labels to
users of both old and new browsers, e.g.

 <SELECT name="ComOS">
   <OPTGROUP label="Comm Servers">
     <OPTGROUP label="PortMaster 3">
       <OPTION label="3.7.1"
               value="pm3_3.7.1">PortMaster 3 with OS3.7.1
       <OPTION label="3.7"
               value="pm3_3.7">PortMaster 3 with OS3.7
       <OPTION value="pm3_3..5">PortMaster 3 with OS3.5
     </OPTGROUP>
     <OPTGROUP label="PortMaster 2">
       <OPTION label="3.7"
               value="pm2_3.7">PortMaster 2 with OS3.7
       <OPTION label="3.5"
               value="pm2_3.5">PortMaster 2 with OS3.5
     </OPTGROUP>
   </OPTGROUP>
 </SELECT>

Users of old browsers would see:

 PortMaster 3 with OS3.7.1
 PortMaster 3 with OS3.7
 PortMaster 3 with OS3.5
 PortMaster 2 with OS3.5
 PortMaster 2 with OS3.7

While users with new browsers would see:

 ComServers
      PortMaster 3
          3.7.1
          3.7
          3.5

In both cases the server can distinguish exactly which choices
were selected by the user.

This functionality is greater than Megazone's relatively complex
proposal, and at the same time is much easier to understand.

Regards,

-- Dave Raggett <dsr@w3.org> http://www.w3.org/People/Raggett
phone: +44 122 578 2984 (or 2521) +44 385 320 444 (gsm mobile)
World Wide Web Consortium (on assignment from HP Labs)

Received on Wednesday, 15 October 1997 10:41:29 UTC