Re: Required but empty

John, Ulrich:

 > I agree with Ulrich.  The meaning of empty string is clear, and a
 > string with spaces in it is not empty because it has spaces in it.

Ok, that's what I thought, unfortunately ;-)

 > I do agree that this is different than what a user-friendly
 > interpretation might mean, but this would not be the only place where
 > such technicalities cause us a little grief.  Here are a few other
 > favorites:
 > 1) having to say true() and false() rather than true and false
 > 2) Having empty string not be the same thing as zero in XPath
 > mathematical operations
 > 3) Empty string being unacceptable lexically for many schema datatypes
 >
 > Still, these don't mean our issues are ill-defined.  Just that right
 > now a form author would have to do more work to address the
 > situation when there should be no distinction between two things
 > like whitespace string and empty string.

I think that this comes down to whether our current definition of
"required but empty" is actually useful in a form application. I am
contending that it is not very useful at all.

There are a few uses of the "required" MIP I can see:

1. Use it to visually style form controls to mark that they are
    required. You may do this with a different color, with a little "*"
    next to it, etc. This is actually just fine as is at the moment.

2. Use it as a constraint on the actual data. This is what we do at
    submission time where "required but empty" data prevents submission
    (unless validate="false").

3. Style controls as "required but empty" to alert the user that a
    required field must be filled out. I don't think XForms recommends
    any CSS to do this at the moment, but in Orbeon Forms we allow
    this.

#2 above is where I think there is the main issue (#3 suffers from the
same issue with the definition of "empty", but let's skip this one for
now). If a user by mistake or on purpose enters blank spaces in a
required first name field, the field still satifies the condition
"required". I think that in 99.9% of the cases, this is not what you
want.

I know, you can use types and constraints to enforce this
condition. But that's exactly my point: I may as well never use the
"required" model item property, because I will always have to use a
schema type or a constraint to express that the field must contain a
non-blank value anyway.

This limits the practical uses of the "required" MIP in my
opinion. Certainly, it makes #2 above not very useful as a
constraint. Or am I missing something?

If it was up to me, I would look at solutions such as:

1. Redefine "required" to require one non-whitespace character.

2. Allowing the form author to express how "required" is computed. For
    example, a form author could be content with expressing that
    whitespace content still satisfies the "required" condition, while
    another author could be stricter and say that a field must contain
    at least one non-whitespace character to satisfy requiredness.

-Erik

-- 
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/

Received on Wednesday, 30 May 2007 21:29:02 UTC