[whatwg] HTML 5 : Misconceptions Documented

Garrett Smith dhtmlkitchen at gmail.com
Mon Aug 11 13:37:24 PDT 2008


On 8/11/08, Kristof Zelechovski <giecrilj at stegny.2a.pl> wrote:

Hi Chris,

Thanks for taking the time to respond to some things I was writing
about. I think these are important things that deserve attention, too.

If it's not too much to ask, have you considered inline style response?
http://en.wikipedia.org/wiki/Posting_style#Inline_replying

I tried to restore posting order, but since you are using Outlook, it
was not effectively possible.

> Neither the expression 'form.elements.$name' nor its expanded form
>  'form.elements["$name"]' is supposed to be defined even if $name is an
>  identifier of an embedded control.  The correct way to address the control
>  is 'form.elements("$name")',

Can you cite a reference for this?

AFAIK, this is an IE feature that was copied.

> which is a shorthand notation for
>  'form.elements.item("$name")'.

No, that is wrong. Doubly wrong, I think. The item method retrieves a
node by ordinal index (based on depth-first traversal).

 now if you had wrote:-

form.elements.namedItem("$name")

That would at least be partially correct. If namedItem is what you
meant, then please supply a reference to back up your claim. I do not
think the claim:

| The correct way to address the control is 'form.elements("$name")'

is true and correct. I think it's an MSIE invention that other
implementations copied.

> These two should not be confused.
>  Therefore, the bug in Opera is not about shadowing the length property but
>  about defining the corresponding property at all (in particular,
>  'form.elements.ell' should be null no matter what).

Are you referring to the example I supplied?

>  This could potentially be described in the EcmaScript bindings. But it
>  would be a good idea to explore some edge cases. Particularly, if the
>  case was the order of definition of properties: One such case would be
>  an HTMLCollection with an element named "length". In that case, the
>  readonly "length" property would have to be the actual length of the
>  collection; the value should not be replaced with an element of that
>  name/id.
>
>  <form><input name="length"></form>
>
>  document.forms[0].elements.length
>
>  Opera9: [object HTMLInputElement] <-- BUG
>  FF3: 1
>  Saf3: 1

There was no element in my example with a id or name 'ell', so I would
have to say that form.elements.ell would be undefined, not null.

Where is this - ell - coming from?

>  OTOH, the expression 'form.length' is a perfect equivalent for
>  'form.elements("length")', provided a control with such a name is contained.

form.elements has a readonly property named length.

That property can't be changed (legally) just because a parse  event
found an element named (or id'd) "length".

The length property of a form - form.length - refers to:

>  Have you reported this to Opera technical support?
>  I can see no harm in principle in assigning a value to 'form.length' because
>  length is not an intrinsic property the form object.
>

Chris, I have stated at least twice prior to this email that an
HTMLCollection has a readonly length property.

http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-75708506
| length of type unsigned long, readonly
| This attribute specifies the length or size of the list.

Garrett

>
>  Chris
>
>  -----Original Message-----
>  From: whatwg-bounces at lists.whatwg.org
>  [mailto:whatwg-bounces at lists.whatwg.org] On Behalf Of Garrett Smith
>
> Sent: Saturday, August 09, 2008 2:06 AM
>  To: WHATWG List
>  Cc: Maciej Stachowiak
>  Subject: Re: [whatwg] HTML 5 : Misconceptions Documented
>
>  On Thu, Aug 7, 2008 at 4:37 PM, Maciej Stachowiak <mjs at apple.com> wrote:
>  >
>  > On Aug 7, 2008, at 3:44 PM, Garrett Smith wrote:
>  >
>
>  I'd like to put this back on the list, and it doesn't contain anything
>  personal, so I'm taking the liberty here.
>  >
>  > I'm not sure what you mean by "in the binding".
>
>  I meant the EcmaScript binding.
>
>  > Do you mean in Web IDL's
>  > definition of how to map Web IDL interfaces to the ECMAScript language, or
>  > one-off in the HTML5 spec for every interface this applies to?
>
>  Narrowing the scope in the interest of not creating bugs seems like a
>  very good idea.
>

>
>  Another consideration would be a form element with an attribute
>  "length". That would be a problem as neither the attribute, nor the
>  Netscape 4 DOM "named items" are specified as "readonly". So that's
>  one reason for not specifying the Netscape 4 DOM and for removing that
>  example from WF 2.0
>  http://www.whatwg.org/specs/web-forms/current-work/#select-check-default
>
>  >
>
>



More information about the whatwg mailing list