- From: Doug Schepers <schepers@w3.org>
- Date: Thu, 23 Dec 2010 22:38:01 -0500
- To: Garrett Smith <dhtmlkitchen@gmail.com>
- CC: www-dom <www-dom@w3.org>, robin@robinwinslow.co.uk
Hi, Garrett- Garrett Smith wrote (on 12/23/10 9:39 PM): > On 12/22/10, Doug Schepers<schepers@w3.org> wrote: >> >> Many people suggest a more active feature-testing approach (e.g. testing >> to see if an event will fire, or if a method exists), but I believe that >> the current draft of DOM3 Events meets your needs. You can use the >> existing .hasFeature() method along with discrete event interface and >> event name feature strings to detect support for any event in a >> conforming DOM3 Events UA. ... > > So in a nutshell: > > var HAS_TEXTINPUT_EVENT = document.implementation > && document.implementation.hasFeature > && document.implementation.hasFeature("Events", "3.0") > && document.implementation.hasFeature("Events.textInput"); > > Not very concise. That's a bit of a reductio ad absurdum. 'hasFeature()' should be supported in any modern DOM implementation. Pragmatically, you can simply assume the multiple levels of abstraction and make this call: var HAS_TEXTINPUT_EVENT = document.implementation.hasFeature("Events.textinput", "3.0"); or even (assuming 'textinput' doesn't change significantly in the next decade, which I think is a safe bet): var HAS_TEXTINPUT_EVENT = document.implementation.hasFeature("Events.textinput", ""); > Do you have a URL for the discussion that led up to that change? TIA. No, I'm afraid I don't. I've discussed this with a number of people over many years, in many groups. If you are sufficiently curious, you could look back into the archives of this list (back to when 'hasFeature()' was first defined), and in the www-svg mailing lists, particularly in the telcon minutes; however, scribing being the chore it is, I can't guarantee that it will be clear from the context when and where this idea developed or was refined. > The feature, as it is written, doesn't give information for specific > objects. It will continue to be a problem for any new event. Any specification which defines an event should follow the mechanism defined in DOM3 Events for composing feature strings for the new event. You've made your dislike of this feature detection mechanism clear, and I'm not claiming that it's ideal. However, it does build upon features which are already implemented and well-understood, and has minimal implementation cost (just the addition of some feature strings which are compositional, so they don't even need to be stored as strings, per se). I have not seen any proposals for alternate feature detection mechanisms that had any consensus, nor which were without faults. Voltaire's "the perfect is the enemy of the good" seems like a good (if not perfect) principle to follow here. Regards- -Doug Schepers W3C Team Contact, SVG, WebApps, and Web Events WGs
Received on Friday, 24 December 2010 03:38:05 UTC