[uf-discuss] Authoritative hCards [was RE: Canonical hCards
Derrick Lyndon Pallas
derrick at pallas.us
Mon Jan 29 21:02:50 PST 2007
John Allsopp wrote:
>
> I wonder whether that makes sense more generally - things apply at the
> finest level of granularity at which it mkes sense - so rel="bookmark
> self" applies to the microformatted content it is most directly
> descended from.
> Are there reasons people think this is a bad idea?
>
> "where a feature of microformats may apply to more than one element in
> a descendent tree, it is associated with the element which most
> directly contains it ."
Personally, I think this is a bad idea; I was actually talking with Ben
West at work today about this very issue. For the sake of argument, say
hFoo --- which I decide to implement --- can contain rel-tag without
marking it in any other way. Now a new format, hBar, comes along and it
may contain rel-tag without marking it in any way; maybe I don't know
about hBar, don't care about hBar, or don't want to implement hBar. What
if my hFoo contains an hBar? In that case,
<div class="hFoo">
<span class="hBar">
<a href="http://examples.com/tag/myTag" rel="tag">Text</a>
</span>
</div>
causes a problem (given the suggestion above) because the rel-tag should
only apply to hBar but without the hFoo parser knowing about hBar (which
may be unreasonable) it will grab the rel-tag as well. A better solution
is what hCard does; from what I understand, using rel-tag with category
still requires you to say @class="category". This, incidentally, can
cause a name-space problem: it means that to keep hBar and hFoo
unambiguous, one needs to define slightly different rel-tag properties
for each.
There are two simple solutions: make features only apply to the element
in which they exist (which makes them non-features) or let features
apply to any format that can grok the feature, ignoring containers.
There are three complex solutions: use name-spaces for disambiguation,
use other naming triks to figure out which feature apply to which
container (this could get messy quickly), or require parsers for one
format to know about all other top level containers (which seems bad for
compatibility).
~D
More information about the microformats-discuss
mailing list