- From: Doug Schepers <schepers@w3.org>
- Date: Thu, 17 Jan 2008 06:14:20 -0500
- To: www-multimodal@w3.org
Hi, InkML WG-
I'm very interested in exploring how InkML can work with other
technologies in the W3C, particularly the ones commonly implemented in
multiple browsers.
As you know, SVG is becoming more widely implemented, and I could see a
formulation of InkML as a set of namespaced attributes in a subset of
SVG, which would leverage implementation momentum, authoring tools, and
user familiarity. It would be rendered in SVG-capable UAs just as
normal SVG.
But a more meaningful way for InkML to be implemented in desktop
browsers is for the browser to support the InkML-specific events
("channels") themselves, in real-time. Perhaps the way forward here is
to integrate some aspects of InkML into a new specification that is
DOM-centric, or to put them into a future version of DOM itself?
One of the more obvious ways to do this is to simply recast certain
channels as events types and their attributes (for the purposes of
realtime DOM interaction in this proposed spec). For example, there
would be 'penup' and 'pendown' (and possibly 'penmove') event types.
These would be modeled on MouseEvents, and would derive from them. The
existing Mouse event types are 'click', 'dblclick', 'mousedown',
'mouseup', 'mouseover', 'mousemove', and 'mouseout'.
The behavior of the 'pendown' event type seems most analogous to the
'mouseover' event type, though it seems it can also be 'mousedown',
'click', or 'dblclick' in some contexts.
The 'penup' event type doesn't seems to have a direct match, though it
would effectively fire a 'mouseout' event. What other behavior would be
expected? Perhaps 'mouseup', when the 'pendown' event took on the
aspect of 'mousedown' or 'click'?
The 'penmove' event type seems to map directly to the 'mousemove' event
type; I don't personally see much value in reduplicating that event
type, and would suggest that we simply use 'mousemove' instead.
In DOM3 Events, the MouseEvent has the attributes 'screenX', 'screenY',
'clientX', 'clientY', 'ctrlKey', 'shiftKey', 'altKey', 'metaKey',
'button', and 'relatedTarget'; to these, we could add 'force' and the
various aspects of 'pentilt' (that's a little more troublesome, since it
seems to have a complex type). These would, by necessity, be attributes
on all Mouse events, even those that aren't the result of a pen/tablet
input device.
The 'brushchange' stuff strikes me as better dealt with as a custom
event, since it would depend more directly on the composing environment.
Not all devices, not all applications, and not all 'host languages'
will have this functionality, and it may mean different things in
different contexts. But this is just my initial reaction. I don't know
how likely it is for browser implementors to want such an event, while I
see a much more clear story for the other event types and attributes.
The question would then become, how applicable would these events be to
the InkML spec (and its implementors and users) and to the EMMA
framework? How can we minimize the risk of future incompatibilities?
We'll have to talk a bit more about this to make sure that we would be
making a compatible model with the InkML spec.
I think there is a compelling case to be made for pen/tablet input in
browsers, since almost every laptop has a potential input device... the
touchpad. I realize that not each of these has the full complement of
"ink" functionality (pressure sensitivity, for example), but some of
them will. And, of course, there are all the Wacom tablets and the like
(I have one myself).
I look forward to hearing your feedback.
[1] http://www.w3.org/TR/DOM-Level-3-Events
Regards- -Doug Schepers
W3C Team Contact, SVG, CDF, and WebAPI
Received on Thursday, 17 January 2008 11:14:25 UTC