W3C home > Mailing lists > Public > www-style@w3.org > April 2007

current specification for "user-select"

From: Christoph Wagner <cwagner@canto.de>
Date: Fri, 20 Apr 2007 15:53:56 +0200
To: <www-style@w3.org>
Message-ID: <D09721A6DEA84E7B9AF9D3AE40A7A7BA@CANTO>

Hi,

I would like to know what the motivation for the current specification
of the "user-select" property is. My main problem with this property
is the following part:

<quote>
This property is not inherited, but it does affect children in the
same way that display: none does, it limits it. That is if an element
is user-select: none, it doesn't matter what the user-select value is
of its children, the element's contents or it's childrens contents
cannot be selected.
</quote>

This makes it impossible to write a web application that has a global
UI style for being "user-select: none;" and explicitly allows
selections for specific child elements (eg. form input elements).

In my current application initially I have an empty div (representing
a configuration dialog) with class="configurationDialog unselectable"
which is defined as

..configurationDialog {
    cursor: default;
} 

..unselectable {
    user-select: none;
}

Later Javascript code loads page fragments containing UI code, embeds
them into the div mentioned above and shows the div centered, and
wants to have nothing but the input fields selectable. But this is not
possible because of the quoted statement. Even applying a 

..configurationDialog input {
    user-select: text;
}

to the input elements does not help.
What is the reason for having it specified the way it is? I don't see
any advantage but a lot of problem because of this. 
I would have to wrap any text on a page into a separate span which has
the unselectable class assigned but this will lead to a problem if
within such a span an input element should appear.

I would appreciate any comment on this issue.


Greetings
Christoph Wagner


PS: one of these configuration fragments could be:

<div class="line">
    <label for="collectionName">
        ${collectionNameText}<input id="collectionName"
name="collectionName" type="text" value="Collection Name" />
    </label>
</div>
Received on Friday, 20 April 2007 14:19:18 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:50 GMT