- From: Soledad Penadés <sole@mozilla.com>
- Date: Wed, 14 May 2014 12:18:42 +0100
- To: "public-webapps@w3c.org" <public-webapps@w3c.org>
On 13/05/2014 10:37, Anne van Kesteren wrote:
> Sole had the idea of providing hooks for attributes so a component can
> say it handles them rather than the user agent. That makes a lot of
> sense to me. That way you can grab any name, even existing ones.
Thank you for adding this idea to the list, Anne!
Now that you've involved me I have to emerge from the Lurkers in the
Shadow tree and add in the rest of my comments:
As a developer which likes the idea of web components because they will
allow me to write "semantic code" I am concerned about prefixing the
attributes of *my* components with data-. It not only is unneeded noise
but it also clashes with the understanding I had of how web components
should work. If they are custom, they *are* custom--I should have total
ownership over them.
Hypothetical comparison:
<audio-synth osc1="square" osc2="sine" frequency="320"></audio-synth>
where I can grab a reference and access this in JS with
synth.osc1 = ...
synth.frequency = ...
vs
<audio-synth data-osc1="square" data-osc2="sine"
data-frequency="320"></audio-synth>
synth.dataset['osc1'] = ...
synth.dataset['frequency'] = ...
Plus this second method looks like it wouldn't allow me to use custom
setters/getters. Specially setters! When you're building components you
want to do fancy things when you modify attributes, for example update
the position of a knob with a smooth transition, and not just update the
attribute value.
I'm grateful to James Graham and Anne V.K. for explaining me the
reasoning behind this prefixing idea: so that both current and FUTURE
global attributes do not clash with the attributes I choose to use in my
component.
And that's where I suggested leaving attribute handling to the
component. If it "self-registers" as handling a certain attribute, then
don't let the UA handle it as it would do if unregistered.
Hope that makes sense! :-)
sole
--
//
// http://soledadpenades.com // @supersole //
// GIF HACKTIVIST // Mozilla Apps Engineering //
//
Received on Wednesday, 14 May 2014 13:25:18 UTC