[whatwg] False orthogonal nature :read-only and :disabled in WF2

Matthew Raymond mattraymond at earthlink.net
Tue Feb 21 01:54:51 PST 2006

   In the Web Forms 2.0 spec, under "8.2. Relation to CSS selectors"[1],
there is the following statement:

| :read-write
|     Matches form control elements that do not have the readonly
|     attribute set (including password fields, although technically
|     they should be called "writeonly"), or to which the attribute
|     doesn't apply (such as radio buttons). A disabled field can still
|     match this pseudo-class; the states are orthogonal.

   Note the last sentence stating that :read-only/:read-write and
:enabled/:disabled are orthogonal. This is contrary to CSS
specifications. As defined in currently available specifications,
:disabled and :read-only are _NOT_ orthogonal. See the description of
:read-only and :read-write in the CSS3-UI spec[2]:

| 4.1.6. :read-only and :read-write
| An element whose contents are not user-alterable is :read-only.
| However, elements whose contents are user-alterable (such as text
| input fields) are considered to be in a :read-write state. In typical
| documents, most elements are :read-only. However it may be possible
| (e.g. in the context of an editor) for any element to become
| :read-write.

   As you can see, anything that's not user-alterable is :read-only. But
"disabled elements" in HTML are clearly not user-alterable, as you can
see here [3] (with emphasis added by me):

| In this example, the INPUT element is disabled. Therefore, it _CANNOT_
| _RECEIVE_USER_INPUT_ nor will its value be submitted with the form.

   The Selectors specification[4] also fails to define the states as

| The :enabled pseudo-class allows authors to customize the look of user
| interface elements that are enabled — which the user can select or
| activate in some fashion (e.g. clicking on a button with a mouse).
| [...]
| Similar to :enabled, :disabled allows the author to specify precisely
| how a disabled or inactive user interface element should look.

   Logically, the user cannot alter the contents of an element or form
control if the user is unable to select or activate that control. In
other words, :disabled is always a subset of :read-only. Therefore, your
claims regarding the orthogonal nature of the :read-only and :disabled
states are supported by neither CSS3-UI nor Selectors.

   There is a clear double standard here. I had a problem with the way
:read-only was defined, that it applied to elements that did not have a
|readonly| attribute, but you made it clear that I would have to go
through www-style to get it changes in the CSS3-UI specification before
getting a related change made in the WF2 spec. Yet when you have a
problem with the definition of the _EXACT_SAME_PSEUDO-CLASS_, you just
change the WF2 spec to produce orthogonally where none existed in the
collective W3C specs.

   Perhaps you can explain to me how you justify this.

   (This may come across as harsh, but there are many who would exploit
this kind of situation to undermine the efforts of the working group.
Not to mention the fact that I'm a little pissed about it...)

[1] http://whatwg.org/specs/web-forms/current-work/#relation
[2] http://www.w3.org/TR/css3-ui/#pseudo-ro-rw
[3] http://www.w3.org/TR/html4/interact/forms.html#adef-disabled
[4] http://www.w3.org/TR/css3-selectors/#enableddisabled

More information about the whatwg mailing list