W3C home > Mailing lists > Public > www-forms-editor@w3.org > February 2002

Comments from CSS WG on XForms 1.0

From: Bert Bos <bert@w3.org>
Date: Wed, 27 Feb 2002 12:21:29 +0100 (MET)
To: www-forms-editor@w3.org
Message-ID: <15484.49016.396264.884816@meta>
As promised, the comments of the CSS WG on the XForms 1.0 draft

a) The criteria to exit from CR are too weak.

We suggest the criteria of the Selectors CR[1], with the addition
(which we unfortunately forgot to add to the Selectors criteria) that
features *may* be dropped in order to exit CR status. ("May" indicates 
that this is a case by case decision for each feature: sometimes it is 
better to drop the feature, sometimes to extend the CR period.)

[1] http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current

b) The "selectMany" element should have attributes for specifying the
minimum and maximum number of items to select.

Selections like "select between 1 and 5 of these 30" appear frequently
in practice. We realize that this makes "selectOne" redundant, but
that element can be kept as a convenience for authors.

c) The choice between "radiobutton" and "checkbox" should be made
automatically based on the number of items to select.

How the controls actually looks is a style question, but the semantics
of "radio" is that there is exactly one item selected from the set,
while "checkbox" means each item can be on or off independently. We
ask to drop "radiobutton" and "checkbox" and instead introduce a
single keyword, that means either, depending on whether min = max = 1
or not. Some suggestions: "togglebutton", "toggle", "togglebox",

d) HTTP GET should not be deprecated.

The semantics of GET and POST are different. As the HTTP spec says,
GET is idempotent, POST is not.

e) We suggest changing "should" to "may" in section 8.1, where it says 
that the UA "should" select the best UI widget for each data type.

The type is insufficient to really do a good job with picking an
appropriate widget. A derived type doesn't necessarily require the
same interface as its superclass. And even a Date may require
different interfaces, based on whether, e.g., the expected date is in
this month (a calendar might work), or long in the past (a text field
might be easier), or part of a set of similar dates (a set of text
fields with autocompletion).

f) We think there are problems with the inputMode attribute, but we
defer to the I18N group.

g) All elements that are intended to be displayed should have a
"style" attribute.

For various reasons (cut & paste of elements, experiments, local
overrides, consistency with SVG and HTML...), the "style" attribute is
a good thing. The fact that the "ideal" style sheet is an external
style sheet is not enough reason to disallow the attribute.

h) The "caption" element should be called "label" (

A caption is typically something associated with a table or a figure
and it is usually displayed below the thing it describes. The right
name for the element in XForms seems to be "label", which is also what 
HTML calls it.

i) The "cursor" ( should be called something else.

A "cursor" will be understood by most people as the mouse pointer or
the insertion point in a text editor. Indeed, CSS uses 'cursor' as a
property to set the shape of the mouse pointer. To avoid confusion, we 
suggest a name such as "currentElement".

j) We suggest an informative section describing a "pseudo-element" to
allow a style sheet to address the actual input widget.

When styling the "input" element, one can select the caption (label),
the hint and the container that holds all of those, but not the actual
input widget. To allow styling of that input field, we suggest that
the XForms draft adds an informative section that introduces a
"pseudo-element" (a CSS term) that represents that object, which
exists on the screen but not in the source document. The name could be

The section should explain that the '::input-value' is a part of the
"input" element that conceptually comes at the end of the element. In
CSS, we typically use a "fictional tag sequence" to describe the tree
as it is seen by a renderer:


An example of its use would be the following, which creates (a row in)
a table with two columns and puts the label in the first column and
the input field in the second:

    input { display: table-row }
    input label { display: table-cell }
    input::input-value { display: table-cell }

It can be further styled with colors, backgrounds, borders, margins,

For the CSS WG,
  Bert Bos                                ( W 3 C ) http://www.w3.org/
  http://www.w3.org/people/bos/                              W3C/INRIA
  bert@w3.org                             2004 Rt des Lucioles / BP 93
  +33 (0)4 92 38 76 92            06902 Sophia Antipolis Cedex, France
Received on Wednesday, 27 February 2002 06:24:14 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:38:05 UTC