- From: Marat Tanalin | tanalin.com <mtanalin@yandex.ru>
- Date: Fri, 04 May 2012 22:40:05 +0400
- To: Ian Hickson <ian@hixie.ch>
- Cc: Dimitri Glazkov <dglazkov@chromium.org>,public-webapps <public-webapps@w3.org>
Ian, it seems you are continuing to confuse two very different things:
1. local semantics;
2. extending existing elements.
They have completely different purposes. Web-developers generally do not need to _extend_ existing elements (purpose of such extending itself is quite mysterious for me).
What we need is local semantics that has more elegant code representation than _common_ container (SPAN or DIV) with a class. For example:
<x-lorem></x-lorem>
looks far better, compact, readable, and sensible than:
<span class="x-lorem"></span>
(at the same extent as <p></p> is better and smarter then <div class="p"></div> even if P had no any semantic sense).
Both <x-lorem> and <span class="x-lorem"> have NO global semantics at all like that SELECT element have.
Instead, they have _local_ semantics which purpose is known exclusively for document author/scripts and/or consumers of the document. No any "fallbacks" needed here at all.
Some of possible additional practical benefits of custom tag-names are:
* browsers could implement more effective markup error correction
based on equality of tag-name of opening and closing tags;
* microformats that would not forced to rely on classes,
but would use tag names instead.
As for markup error correction: for example, in case of multiple nested DIVs, browser cannot unambiguously determine what exact DIV a closing tag is related to:
<div>
<div>
<!-- Closing tag for nested DIV is accidentally absent. -->
</div><!-- Browser wrongly thinks that parent's closing tag is for nested DIV. -->
With custom tag-names, browser could easily determine exact element that has closing tag absent:
<x-lorem>
<x-ipsum>
<!-- Closing tag for x-ipsum is accidentally absent. -->
</x-lorem><!-- Browser automatically closes x-ipsum element. -->
Again: local semantics (custom _tag-names_) has nothing to do with "custom elements" in their current form like <select is="example">.
Thanks.
04.05.2012, 08:19, "Ian Hickson" <ian@hixie.ch>:
> On Tue, 1 May 2012, Dimitri Glazkov wrote:
>
>> Custom tags vs. "is" attribute
>> - "is" attribute is awkward, overly verbose
>> - custom tags introduce local semantics
>> - perhaps start with something as simple as reserving "x-" prefix on
>> HTML tags for local semantics.
>
> Whether it's
>
> <x-colour-picker fallback="select">
>
> ...or:
>
> <select is="colour-picker">
>
> ...you have the same level of awkwardness. The advantage of the second
> one, aside from being less ugly and generally terser, is that it actually
> has workable fallback in legacy UAs -- the first one would only work in
> UAs that supported components or at a minimum knew enough about components
> to know how the fallback mechanism worked. (Also, the first one runs the
> risk that authors would start forgetting to give a fallback, with its
> resulting implications on accessibility, search engines, etc.)
>
> --
> Ian Hickson U+1047E )\._.,--....,'``. fL
> http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
> Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Friday, 4 May 2012 18:41:25 UTC