- From: Mikko Honkala <honkkis@tml.hut.fi>
- Date: Thu, 05 Sep 2002 11:36:39 +0300
- To: John Keiser <jkeiser@netscape.com>
- CC: www-forms@w3.org, Beth Epperson <beppe@netscape.com>, Daniel Glazman <glazman@netscape.com>
Hi John,
first of all, let me say how good it is to get another browser
implementor aboard!
You can find my comments on your concerns inline. NOTE: these are my
personal comments as an XForms browser implementor and not the Working
Group's.
John Keiser wrote:
> MY CONCERNS
>
> 1. There is a huge number of events in the system that adds more
> confusion than it helps. Some of these events, such as xforms-activate
> and even to an extent value-changed (mutation events), duplicate
> functionality in the DOM3 Events module. ...
I was also first opposing to the large number of events, but then found
out that the events are actually a good way to integrate to other
languages. For example, we are able to mix SMIL+XForms, and everytime a
field becomes invalid, we are able to launch a voice message or a
video, just by using SMIL 2.0's default functionality of catching events.
value-changed cannot be directly replaced by DOM mutation events, since
the mutation happens in the instace, while the event is needed in the UI.
> - [4.2]: xforms-model-construct and friends: is there a benefit to
> having these 5 stages of initialization being transparent to the web
> developer? Perhaps some of these could go away, such as
> xforms-model-construct, xforms-model-initialize-done and
> xforms-ui-initialize?
Only few (say 2) are important for authors, so I agree partly. But I
really don't see much harm in exposing the others too. As processing
steps they really make sense.
> - [4.3.2]: why do you need this and xforms-unfocus when you have
> calculatable readonly and disabled properties?
Do you mean that there is no use case for setting focus programmatically
to a certain form control?
> - [4.3.4]: xforms-refresh: if all form controls are required to
> represent the value in the instance data at all times, as [8.1.1] seems
> to say, how can this be anything but a no-op? If it is supposed to be
> in response to when a particular piece of instance data is modified in
> the DOM, shouldn't that be handled by the form controls listening for
> changes?
In my implementation this is no-op, just because of the reasons you gave.
> - [4.3.5, 4.3.6]: xforms-revalidate, xforms-recalculate: do we *really*
> need these? Does script need to catch them? I can see potential uses
> hanging at the edge of my intuition, so perhaps :)
I have a demo, where I catch these events, and cancel them, thus
disabling calculations from running. Then you can use the <recalculate>
action to manually run the calculations.
> - [4.3.7] xforms-rebuild: we definitely don't need to catch this event
> in script. I can see the last two, but not this one.
I also do not see a use case, but again, I don't see harm in exposing
this part of the processing model as an event.
> - [4.4.1] xforms-activate -> DOMActivate. From DOM3 Events spec, "The
> ...
I also think xforms-activate should be replaced with DOMActivate.
> - [4.4.5]: xforms-scroll-(first|last): I am concerned about this but I
> haven't built a good enough repeat model in my head to determine if I
> like them or not.
I share your concern here.
> - [4.4.11-16]: xforms-readonly, -readwrite, -disabled, etc. should only
> be fired when the state /changes./ If that is granted, then they can
> just be handled with DOM mutation events (perhaps these are too hard?).
> If that is not granted, at the least readonly/readwrite could be
> readonly-changed, disabled/enabled could be disabled-changed, etc.
> Still I recommend removal altogether until a significant need is shown.
One significant need for these events is integration with other XML
vocabularies.
> 2. [9.2.1] <switch> is a layout-oriented (it seems to be used to specify
> a "wizard" interface or split things up for a PDA, or to specify a set
> of layout stuff that will appear only if a particular expression is
> true). It belongs in a layout-oriented spec such as SVG or XHTML.
Switch satifies the XForms requirement for multi-page forms, so I think
it is there to stay.
> 3. The syntax is generally too element-oriented and does not allow
> attributes in enough places; [8.1.10] <select*> is particularly bad
> about that. This makes it hard to write. [8.3.3] "label" in particular
I personally do not care too much either way. The only opinion here is
that element syntax is better for extensibility, but you were not
proposing to remove that.
> 4. [10] actions look like an attempt to define yet another (very) basic
> scripting language in XML. Why, when other scripting languages already
>
> SUGGESTED CHANGES:
> - Remove all actions but submitInstance, resetInstance, insert, delete,
> and script. Note that other actions may be common enough to meet the
> threshold--this is just my gut feeling of the most common actions for a
> <trigger>.
I do not completely agree. For instance <setValue> is easier to read and
maintain than ECMAScript and is quite powerful because of XPath.
> 5. [8.1.4] textarea doesn't seem to have attributes for columns/rows
> (perhaps this is a CSS thing) ... a question that needs to be asked is
Columns/rows is a layout thing that can better be expressed with CSS
properties such as width & height;
> whether we need wrap="hard" in textarea, which affects /both/ layout and
> data. Also, textarea should also be able to encompass both single-line
> and multiline text controls for people who really just want a text
> control for input rather than a general "who knows what you'll get"
> <input>.
IMHO wrap attribute could be needed. XHTML forms does not have it, but I
think the browsers still support a wrap attribute and it is used a lot.
Also the single line textarea could be good. For instance, what if the
form author really wants the user to see the underlying data for a date
and not an UI representation that he will get from <input>. On the other
hand, this could be a CSS / other attribute on <input>.
>I must say, also, that I am a little concerned about
> <textarea> having to reflect the current value in the instance data at
> all times.
I do not think it has, unless incremental="true" is set on the control.
And even then it can decide how often it will send value-changing events
(and update the instance).
> 7. I don't see any scripting interface here. Perhaps this is bound up
> in the decision to have such a rich action model, or perhaps there is a
> planned XForms DOM? [7.2]
There is an DOM interface for accessing the instance DOM, which helps a
lot (e.g. insert/delete could be done with DOM access to the instance).
Also there are functions corresponding to some actions.
> SUGGESTED CHANGES:
> submitInstance(), resetInstance(), insert() and delete() need to be
> there at the least.
I agree that submitInstance() and resetInstance() need to be added.
> 8. [8.3.4] help is overspecified. If an implementor wants to have a
> "help window" section that displays help text, they should be able to.
I don't completely agree. It just defines that the help is similar that
a modeless message, which is not too tightly specified in 10.1.12.
> 9. [Appendix D] Jonas Sicking <sicking@bigfoot.com> has pointed out to
> me that there are many very basic cases that you cannot form a real
> non-circular dependency tree--many XPath functions deal with nodesets
> that "depend" on the entire tree ("average of all valid numeric
> descendants of element root"),
IMHO a form author can always construct the instance data so that you
don't have to write functions that depend on the entire tree, so I don't
consider this a real problem.
Regards,
Mikko Honkala, X-Smiles
Received on Thursday, 5 September 2002 04:33:46 UTC