- From: Jon Ferraiolo <jon.ferraiolo@adobe.com>
- Date: Thu, 19 May 2005 12:00:09 -0700
- To: Mark Birbeck <mark.birbeck@x-port.net>, "'KONO Masahiko'" <kono.masahiko@canon.co.jp>, www-svg@w3.org
- Cc: kono.masahiko@canon.co.jp
- Message-id: <6.1.1.1.2.20050519110921.03aa4588@mailsj-v1.corp.adobe.com>
At 10:01 AM 5/19/2005, Mark Birbeck wrote: >Hi Jon, Hi Mark, Very important issue here. Thanks for initiating discussion. > > "click" and "ev:click" are equivalenced, so you can say either. > > Most older W3C spec, including SVG 1.0/1.1, used DOM2 Events > > which did not support namespacing. With DOM3 Events, > > namespaced events were introduced and all of the standard > > events defined in the DOM3 Events spec were defined to be in > > the XML Events namespace. Thus, "click" was defined to be in > > ev:click. The only way to make it so that old content which > > just said "click" would still work in a user agent which > > moves up to DOM3 Events is to say that "click" and "ev:click" > > are equivalenced. > >Well, it's not really that they are 'equivalent'...more like promiscuous ;). No, actually I really mean equivalent, not promiscuous. See below. >Let's say we register for: > > * click > * ev:click > * myns:click > * yourns:click > > >1. If we dispatch the old DOM 2 Event "click", *all* of these listeners > will be triggered. Assuming the ev: is assigned to the XML Events namespace and myns: and yourns: are assigned to different namespaces, then, no, if the mouse is clicked, then only the event listeners for "click" and "ev:click" would receive the event. At least that is my thinking based on studying the DOM3 Events spec which appears to retroactively claim that HTML's click event when namespaced becomes ev:click. Here is a sentence from DOM3 Events (http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-EventTypes-complete): ----------------------------- For example, {"http://www.w3.org/2001/xml-events", "click"} can be targeted to all [<http://www.w3.org/TR/DOM-Level-3-Events/references.html#XHTML10>XHTML 1.0] elements except applet, ..., and title.... The following list defines all event types (with the exception of two event types preserved for backward compatibility with [<http://www.w3.org/TR/DOM-Level-3-Events/references.html#HTML40>HTML 4.01], see <http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-eventgroupings-htmlevents>HTML Events) provided in this specification. All event types defined in this specification are bound to the namespace URI "http://www.w3.org/2001/xml-events" ... DOMActivate ... click ... ----------------------------- My reading of this is that HTML's old "click" event (without a namespace) has now been retroactively defined as being in the "http://www.w3.org/2001/xml-events" namespace. What I am assuming is that an implementation would create a DOM3 Event object for all events, whether the event listener uses DOM2 or DOM3 methods. For "click" events, the namespaceURI value on the Event object would be set to "http://www.w3.org/2001/xml-events". (Maybe for some implementations, the DOM3 Event object might need to be flattened into a DOM2 Event object at some point, but generally I do not think flattening will be required because of the upwards compatibility of the DOM3 Event object with the DOM2 Event object.) >2. If we dispatch the new DOM 3 Event "ev:click" then we get the desired > behaviour, in that only the following two listeners would be triggered: > > * click > * ev:click Agreed. >3. But if we dispatch some other DOM 3 Event "myns:click", the old DOM 2 > Event listener is *still* triggered: > > * click > * myns:click I would say that only the "myns:click" event listener gets the event. > "ev:click" is correctly *not* triggered, but the problem here is that > "click" is probably not meant to be triggered, since the author has > been told it is 'equivalent' to "ev:click". > > >So, as you can see "click" is not made equivalent to "ev:click", but >equivalent to "everything:click"! As you have probably gathered by now, I disagree. >Personally, I think is not a great design; I may be the author of a document >that used an sXBL that you wrote, and I may not be fully aware of the events >that are flying around. To be safe I would need to make sure that none of my >events are called anything in the DOM 3 Events specification. > >One possible solution would to go back to DOM 3 Events and make all 'legacy' >or 'core' events exist in no namespace rather than "ev". That way there is >only one "click" event, and it is the same event in both DOM 2 Events and >DOM 3 Events. Actually, I think it all works nicely if "click" is truly equivalenced to "ev:click", meaning that the assumed default namespace for legacy HTML and SVG events is "ev:". I believe that attempting to wildcard "click" to mean everything:click is what would cause problems. Jon >Regards, > >Mark > > >Mark Birbeck >CEO >x-port.net Ltd. > >e: Mark.Birbeck@x-port.net >t: +44 (0) 20 7689 9232 >w: http://www.formsPlayer.com/ >b: http://internet-apps.blogspot.com/ > >Download our XForms processor from >http://www.formsPlayer.com/
Received on Thursday, 19 May 2005 20:18:21 UTC