W3C home > Mailing lists > Public > public-webapps@w3.org > January to March 2009

Re: Call for Consensus - Selectors API to Candidate Rec

From: Lachlan Hunt <lachlan.hunt@lachy.id.au>
Date: Mon, 09 Feb 2009 13:08:31 +0100
Message-ID: <49901CBF.5070305@lachy.id.au>
To: timeless@gmail.com
Cc: public-webapps <public-webapps@w3.org>

timeless wrote:
>> This specification introduces two methods that take a group of selectors
>>  it requires a script like the following that iterates
> 
> that => which ?

No, "that" is correct in this case.

>> With these methods, it is easier to match a set of Element nodes
>> based on specific criteria.
> 
> easier than what? (yes, i know the next sentence would explain, but I
> don't think English allows for that.)

I rephrased it to the following:

   "With these methods, it is easier to match a set of Element nodes
    based on specific criteria, than having to subsequently filter the
    result of calling other methods like getElementsByTagName()."

>> The implementation must first trim any leading or trailing 
>> whitespace from the value of the selectors parameter.
> 
> or => and ?

I think "or" is actually correct in this case, but to remove any 
confusion, I've changed it to "and/or".

>> If the user agent also supports some level of CSS, the 
>> implementation should support the same set of selectors in both 
>> these APIs and CSS.
> 
> This is poorly written, at first parse I concluded that selectors
> weren't CSS (there is no CSS level 0), and CSS3 comes in modules.

I do not understand what you mean, nor what is wrong with the sentence. 
  What is it about the sentence that implies there is a CSS level 0? 
Selectors was part of CSS levels 1 and 2, but as of level 3, it's an 
independent specification.

> The goal is presumably to indicate that if some other entrypoint to
> CSS supports something, then this API should support the same thing
> with the same syntax. But it didn't manage to read that way.

I do not understand this either.  The point of the sentence is to say if 
if the UA supports, or at least partially supports, CSS level 1, 2, 3 or 
any subsequent level, then it should support the same set of Selectors.

>> The NodeList object returned by the querySelectorAll() method must 
>> be static, not live. ([DOM-LEVEL-3-CORE], section 1.1.1) Subsequent 
>> changes the structure of the underlying document must  not be
>> reflected in the NodeList object.
> ...
>> DOM3 Core defines several methods for checking for interface 
>> support, or for obtaining implementations of interfaces, using
>> feature strings. ([DOM-LEVEL-3-CORE], section 1.3.6) A DOM
>> application can use these methods, each of which accept feature and
>> version parameters, using the values "Selectors-API" and "1.0"
>> (respectively).
> 
> I believe that the parenthetical should be part of the first sentence
> instead of after the period.

Fixed both.

>> var x = document.querySelector("#foo, #bar");
>> x would contain the first element in the document with an ID of either foo or bar (or both).
> 
> 1. could you change 'contain' - i read contain to mean list, which of
> course is wrong for querySelector()

I'm not convinced there is a problem with the word "contain" in this case.

> 2. it might be null - or whatever the return is for the case where 
> there's no match
> 3. i think the '(or both)' bit doesn't add value, even understanding
> the case where there's a node matching #foo#bar, if it's the first
> that matches #foo or #bar, it's still the first that matches #foo or
> #bar and the fact that it matches #foo#bar is absolutely irrelevant

I removed "(or both)" and appended "or null if there is no such element".

>> The methods can also be invoked on elements.
> 
> The methods _defined in this specification_ ...

I don't think that extra qualification is necessary in this case.

>> In ECMAScript, the language binding also allows NodeLists to be 
>> addressed using the array notation, so that loop could be rewritten 
>> like this:
> 
> using array notation

I'm fairly sure "using the array notation" is grammatically correct in 
this case.

>> This would cause each selected element to be removed from the DOM, 
>> but each element will remain in the NodeList. If the list were a 
>> live NodeList, removing an item from the DOM would also remove the 
>> element from the list and adjust the indexes of subsequent 
>> elements. That would have adverse effects upon the loop because not
>> all selected elements would be processed.
> 
> I know that explanatory text is valuable, but i don't particularly
> like this explanatory text in a normative section. Could you make this
> a non-normative note?

The entire example section is already non-normative.

>> excluding all others, requires an additional processing to filter the result.
> 
> requires additional processing, or an additional step

Fixed.

-- 
Lachlan Hunt - Opera Software
http://lachy.id.au/
http://www.opera.com/
Received on Monday, 9 February 2009 12:09:11 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:29 GMT