- From: <bugzilla@jessica.w3.org>
- Date: Sun, 30 Dec 2012 19:02:23 +0000
- To: public-webapps-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=18669 --- Comment #16 from Ian 'Hixie' Hickson <ian@hixie.ch> --- (In reply to comment #14) > > The custom tag name case: > > <x-slideshow class="outer pretty-block"> > <div class="box-shadowed"> > ... > </div> > > <div class="box-shadowed"> > ... > </div> > </x-slideshow> > > Which one clearly, immediately, obviously tells me as a view source user > that it is a slideshow? Neither. The term "slideshow" is an opaque string with no defined meaning in HTML. The above (with <x-slideshow>) is no more meaningful at an HTML level than: <xxx1 class="xxx2 xxx3"> <div class="xxx4"> ... </div> <div class="xxx4"> ... </div> </xxx1> Now consider if it had been: <ul/xxx1 class="xxx2 xxx3"> <li/xxx4> ... </li> <li/xxx4> ... </li> </ul> ...or: <article/xxx1 class="xxx2 xxx3"> <section/xxx4> ... </section> <section/xxx4> ... </section> </article> Now I can distinguish it from: <select/xxx1 class="xxx2 xxx3"> <option/xxx4> ... </option> <option/xxx4> ... </option> </select> ...because I can tell at a glance, without knowing how the components are defined, that the former two are lists of blocks of content, whereas the third is a widget with a list of options. > If I generate a custom element > that contains baked-in code to use the inherited this.value mechanism (as > inherited from an element like HTMLInputElement) and it's applied to a tag > like <div>, what is the result? Are we really suggesting an inception-like > API where devs can apply <div is="foo"> in source, but instead of inheriting > from HTMLDivElement it's an extension of HTMLInputElement, and renders as > what? This becomes a nauseating scavenger hunt to unmask the true identity > of markup. I'm not proposing this. We clearly need some mechanism so that authors can reuse the logic of <input> when extending an <input> element, but that's a separate issue. Personally my proposal would be that in the Web Component's definition, it says what kinds of elements can be bound to, so that if you define a "map" component as applying to <select> elements and you then try to bind it as <img/map>, then the binding just doesn't take. (Indeed maybe the solution is to _always_ say what element the binding should be bound to, and actually include that as part of its name — so instead of defining a "map" component, you would actually define a "select/map" component.) But I don't mind how we do this. My only concern here is that we not turn the Web into a soup of author-defined components with no defined semantics. (Incidentally, I don't expect most components to have any role="" attributes, even if when it's the right thing to do. But that's a separate issue also.) -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Sunday, 30 December 2012 19:02:25 UTC