- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Tue, 12 Apr 2011 21:11:36 -0700
- To: Lachlan Hunt <lachlan.hunt@lachy.id.au>
- CC: public-webapps <public-webapps@w3.org>
On 4/10/11 4:32 AM, Lachlan Hunt wrote:
> The same issue will occur with any new selector that gets added in the
> future. The only real difference between this and any other is that
> support for :scope will inherently imply refElement support.
Indeed.
> I'm not entirely sure what you consider to be obvious benefits. Do you
> think authors should be able to do this?
>
> if (el.matchesSelector) {
> // Confirms that browser supports :scope and refNodes
That would be nice, yes.
> Are there any other obvious benefits that I may be missing?
I don't think so.
> I'm fine with waiting till we're very sure, and I hope we can get to
> that stage soon. Do you have any suggestions for how we could lower the
> risk of unforeseen problems in the future?
I think we're doing that right now. ;) In particular, discussing how
that argument should work before actually implementing it.
I'd love for other UA vendors to chime in here if they've looked at this.
> I think it makes sense for matchesSelector and querySelector to use a
> common API design and accept the same parameters.
Yes, agreed.
> 1. Leave the spec as is and implement with the refElements parameter.
>
> This has the advantage of keeping the API simple.
Modulo defining the exact behavior of refElements, yes.
> 2. Create a more generic extension mechanism, such as an options
> parameter.
My gut feeling is that that's overdesign in this case. But if we think
we'll want to add namespace stuff soon (or at least at some point),
maybe worth thinking about.
> This would allow for easier extensions in the future where the method
> just ignores unknown options, but at the expense of a more complex
> syntax. It's not clear what the chances are of wanting more extensions,
> nor if it's worth the complexity cost to go down such a path now merely
> as a precaution.
Indeed.
> 2a. Initially do what the spec says (#1), and then if such extensions
> are wanted in the future, overload the method in a backwards compatible
> way to accept both an refElements or an options object (#2). That is, if
> adding a 3rd parameter or introducing a new method is undesirable.
This seems like a good plan.
> 3. Introduce new methods every time we want to add a new feature.
Let's not do that.
-Boris
Received on Wednesday, 13 April 2011 04:12:14 UTC