W3C home > Mailing lists > Public > public-script-coord@w3.org > April to June 2011

[Bug 12845] Disallow shadowing attributes

From: <bugzilla@jessica.w3.org>
Date: Tue, 07 Jun 2011 04:48:59 +0000
To: public-script-coord@w3.org
Message-Id: <E1QToDr-0005xd-52@jessica.w3.org>
http://www.w3.org/Bugs/Public/show_bug.cgi?id=12845

--- Comment #10 from Cameron McCormack <cam@mcc.id.au> 2011-06-07 04:48:56 UTC ---
A little Perl script tells me these are the shadowing attributes from HTML5:

HTMLElement.checked (readonly) shadowed by HTMLCommandElement
HTMLElement.checked (readonly) shadowed by HTMLInputElement
HTMLElement.disabled (readonly) shadowed by HTMLButtonElement
HTMLElement.disabled (readonly) shadowed by HTMLCommandElement
HTMLElement.disabled (readonly) shadowed by HTMLFieldSetElement
HTMLElement.disabled (readonly) shadowed by HTMLInputElement
HTMLElement.disabled (readonly) shadowed by HTMLKeygenElement
HTMLElement.disabled (readonly) shadowed by HTMLLinkElement
HTMLElement.disabled (readonly) shadowed by HTMLOptGroupElement
HTMLElement.disabled (readonly) shadowed by HTMLOptionElement
HTMLElement.disabled (readonly) shadowed by HTMLSelectElement
HTMLElement.disabled (readonly) shadowed by HTMLStyleElement
HTMLElement.disabled (readonly) shadowed by HTMLTextAreaElement
HTMLElement.icon (readonly) shadowed by HTMLCommandElement
HTMLElement.label (readonly) shadowed by HTMLCommandElement
HTMLElement.label (readonly) shadowed by HTMLMenuElement
HTMLElement.label (readonly) shadowed by HTMLOptGroupElement
HTMLElement.label (readonly) shadowed by HTMLOptionElement
HTMLElement.label (readonly) shadowed by HTMLTrackElement

  The ones on HTMLElement are "command API attributes".  Some of them are
  writable versions with compatible semantics on the shadowing interfaces (like
  HTMLCommandElement.checked and HTMLButtonElement.disabled).  Some of them
  aren't compatible, like HTMLTrackElement.label.

HTMLElement.onblur shadowed by HTMLBodyElement
HTMLElement.onblur shadowed by HTMLFrameSetElement
HTMLElement.onerror shadowed by HTMLBodyElement
HTMLElement.onerror shadowed by HTMLFrameSetElement
HTMLElement.onfocus shadowed by HTMLBodyElement
HTMLElement.onfocus shadowed by HTMLFrameSetElement
HTMLElement.onload shadowed by HTMLBodyElement
HTMLElement.onload shadowed by HTMLFrameSetElement
HTMLElement.onscroll shadowed by HTMLBodyElement
HTMLElement.onscroll shadowed by HTMLFrameSetElement

  I think these all exist because on <body> and <frameset>s these event
listener
  attributes cause listeners to be registered on the window rather than the
  element.  Ian, do you expect

    <!DOCTYPE html>
    <body><script>
    document.body.onload = function() { };
    var desc = Object.getOwnPropertyDescriptor(HTMLElement.prototype,
"onload");
    alert(desc.get.call(document.body));
    </script>

  to alert null?  That's what I expect currently, footgun-ness aside.

-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
Received on Tuesday, 7 June 2011 04:49:00 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 May 2013 19:30:03 UTC