[whatwg] article: do we really need this?
Ian Hickson
ian at hixie.ch
Thu Feb 21 12:08:01 PST 2008
Executive summary: no change to the spec has been made.
On Mon, 5 Mar 2007, Elliotte Harold wrote:
>
> Has there been any extensive discussion of the article element in Web
> Apps 1.0? It is currently described as:
>
> "represents a section of a page that consists of a composition that
> forms an independent part of a document, page, or site. This could be a
> forum post, a magazine or newspaper article, a Web log entry, a
> user-submitted comment, or any other independent item of content."
>
> It seems sort of wishy washy. Most of the time what I think of as an
> "article" is a separate page with its own URL. This use case seems to be
> handled better by section, perhaps with a role attribute. Maybe a
> section is less independent than an article, but that's going to be a
> very fuzzy distinction, and really hard to explain, teach, and validate.
>
> Is there some obvious use case for this element? Mostly to me it just
> seems to needlessly clutter the spec, especially once you consider how
> it relates to potential sibling sections. I think I'd prefer to just
> drop it and stick with section.
>
> Anyone else feel the same or am I crying in the wilderness again? :-)
I think there is a clear distinction between a section (something that is
part of a larger work) and an independent article (e.g. blog post, blog
comment, etc). Indeed I think the distinction already exists on the Web,
e.g. <article> elements correspond pretty well to what people give
permalinks to, and <section> elements don't.
On Tue, 6 Mar 2007, fantasai wrote:
>
> This element would be extremely useful to someone with a screen reader.
> It would create an implied UA hook for "skip to main content", for one.
> With multiple postings within a page, it would create a reliable way of
> "skimming" the main sections (by reading the first bit of content on
> each posting), even when there are no headers or when the postings
> themselves have internal sectioning and headers (especially if those are
> inconsistent).
>
> For printing, the <article> element would make it easy to cut out
> extraneous content and print just the main content of a web page.
Right, the main likely use of the element is as a styling hook.
On Tue, 6 Mar 2007, Alexey Feldgendler wrote:
>
> It just occurred to me: because of this particular possibility, it's
> probable that <article> either won't be used or will be abused so that
> advertisements are put inside <article> instead of being left outside.
> Otherwise it will be too easy for a user to hide all ads (e.g. with a
> toggle button).
Yes, I expect ads to be inside <article> elements.
> BTW, there's no easy way in today's CSS to hide everything except
> <article>.
body > * { display: none; }
body > article { display: block; }
On Tue, 6 Mar 2007, Elliotte Harold wrote:
> >
> > This element would be extremely useful to someone with a screen
> > reader. It would create an implied UA hook for "skip to main content",
> > for one. With multiple postings within a page, it would create a
> > reliable way of "skimming" the main sections (by reading the first bit
> > of content on each posting), even when there are no headers or when
> > the postings themselves have internal sectioning and headers
> > (especially if those are inconsistent).
>
> But how would it do this when <section> or <section role='article'>
> would not? If the authors can't make the internal sectioning consistent,
> do you expect them to make the internal "articling" consistent?
What's the difference between <section role=article> and <article>, other
than the level of complexity?
On Wed, 7 Mar 2007, Matthew Raymond wrote:
>
> I find that anything I use that resembles the semantics of an
> <article> usually has a class name attached to it for styling purposes,
> especially in relation to fixed headers, footers and navigational bars,
> so <section> alone wouldn't do.
>
> Would <section role="article"> do? Well, first of all, what would it
> do that a predefined class name wouldn't, since from a markup point of
> view, the only difference is the name of the attribute? Namespaces?
> Nope, in XHTML you have to use |xmlns| to define those, so implementing
> |role| with namespaces means creating a namespacing standard for HTML.
> Good luck on that.
>
> Are semantics the difference? Well, |role| was designed to be purely
> semantic. However, when you're styling an element, are you seriously
> going to include a |class| on each element with a particular role, or
> are you going to use selectors to style all elements with that |role|?
> In the latter scenario, the selector may be just slightly more
> complicated, but you only need to write it once and you save on markup.
> Therefore, roles end up being functionally the same as predefined class
> names, with the only difference being the entirely theoretical purity of
> their semantics.
>
> Let's say, however, that we prefer |role| to |class| anyway. Why
> would we want to do <section role="article"> when <article> is shorter:
>
> | <section role="article"></section>
> | <article></article>
>
> And you can't argue fallback, because <section> and <article> are
> being defined in the same spec.
>
> What's more is that an article is more important semantically than a
> section, and articles (marked up or not) actually occur with more
> frequency, so why would we want to demote it two levels in markup?
>
> "What demotion?", you might ask. The first level of demotion is to
> make it an attribute:
>
> | <section article></section>
>
> This, however, would annoy the XHTML folk who can't use attribute
> minimization, so it's demoted once again to a mere attribute value:
>
> | <section role="article"></section>
>
> Part of the problem with this kind of markup demotion is that new
> attributes that would have gone on an <article> suddenly need to apply
> globally to every element, which is cumbersome. (Think <li rel="">
> without the |href| attribute and you only begin to understand.) Another
> problem is that the more roles that apply to specific elements like
> <section>, the more broad the semantics of the element have to be to
> accommodate all these roles. In other words, global attribute values
> broaden the semantics of elements rather than making them more specific,
> and thus water them down until they loose their specificity. In the case
> of <section>, it could eventually become the semantic equivalent of a
> <div> with better heading support.
I agree with the above.
> Now, consider what would happen if you made it so that <section>
> could only be contained in an <article>. That makes all <section>
> elements sections of an article and reinforces the concept that
> <article> represents the primary element for content.
This would be possible, but I don't think we really want to go there. For
example, I would imagine <section>s in a <body> would be quite common.
On Wed, 7 Mar 2007, Elliotte Harold wrote:
>
> It's not really a question of whether article makes sense. The question
> is whether it makes *enough* sense. There are arguments for it, but
> they're very weak. I do not see a community crying out for this.
They aren't crying out for <section> either, they're happy using <div>
and classes. :-) But that doesn't mean we shouldn't try to improve
matters. The response to these new elements has been quite positive.
> I don't think it's going to help anybody all that much, and I'm afraid
> it's going to end up like address: a poorly understood, rarely used
> element that's misused more often than it's used properly.
I'm not convinced the data backs up your claim regarding <address>.
> I suspect I could ask the same question of a few other elements as well.
> time and meter come to mind. They at least don't have any obvious
> equivalents already in the spec, and are obvious enough they perhaps
> won't be frequently misused; but do authors actually need these? Will
> they use them?
Simplifying a bit:
<meter> is primarily there to prevent people from abusing <progress>.
<time> is there to prevent the Microformats crowd from abusing <abbr>.
On Wed, 7 Mar 2007, Matthew Raymond wrote:
>
> Well, I for one have use <div class="content"> for essentially the
> same thing all the time, so it'd be nice to have for me at least.
...and indeed such class values are very common.
On Wed, 7 Mar 2007, Adrian Sutton wrote:
>
> One way this could be used quite powerfully is for inline editing. This
> would only work if there were a globally unique ID for the article
> included (an URL to that specific article would make most sense). It
> would then be fairly trivial to provide an edit mechanism (via
> JavaScript or built into the user-agent) that opened an editor
> specifically for that article and could send it back to the server with
> the appropriate unique ID so the server knew which article to update.
>
> Such behaviour is already present in a lot of scenarios - blogs tend to
> provide an Edit link for users with edit permissions for specific posts
> or comments, wikis do similar things and more and more CMS systems are
> investigating or adding in-place editing.
>
> It's possible to use the section element for this but its description
> doesn't seem as well suited - it focuses more on specific areas of the
> rendered page rather than different sources of content that have been
> combined.
Agreed.
On Tue, 6 Mar 2007, Benjamin Hawkes-Lewis wrote:
>
> The HyperTextuality Firefox extension I've been writing attempts to work
> out the most relevant URI for a given piece of content, for bookmarking
> or quoting. Front pages of blogs, the most important use-case, also pose
> a particular problem as many blogs don't have an obvious structure (to
> an automated agent) to distinguish individual articles with a permanent
> link from the main body of the text (annoyingly, this seems especially
> true of extremely popular blogs using Moveable Type). <article> sounds
> like it would bring somewhat more consistency to that situation.
>
> There is a problem in that <article> might still have no way of
> referencing it, but the fact that is a discrete piece of content
> suggests it should. Could include a conformance requirement for
> <article> to have a fragment identifier (e.g. for comments) and/or a
> permalink (e.g. for blog posts)? e.g.:
>
> <article> ... <a
> rel="permalink">http://www.example.com/articles/2458</a> .... </article>
>
> or
>
> <article id="article-2458-comment-358686"> ... </article>
I don't think we want to require it, but both (with rel=bookmark) are
already possible and are defined as good signs that that's the link you
want.
> I'm not sure about the use of <address> for author information: what
> happens with anonymous comments, for instance? It might be nice if the
> spec could define authorship as inherited from parent elements if author
> is not specified, but we'd need to specify how to mark up an <article>
> as anonymous first. <address>Anonymous</address> isn't a simple
> solution, since given multiple languages, synonyms, and
> euphemisms/jokes, that would be automated agent's nightmare.
Does the spec work for this at the moment?
On Tue, 6 Mar 2007, Elliotte Harold wrote:
>
> The use cases that are being suggested are real use cases, but they seem
> to be well solved by a section element, probably with some predefined
> roles.
>
> I don't think the nature of an <article> is likely to be obvious to most
> authors. I don't have a lot of optimism that it will be used in the way
> it's intended, if it's used at all.
I think it is likely blog templates will use it correctly most of the
time, which would cover many uses of this element. I think the use cases
for <section> and <article> are quite distinct, and that trying to merge
them would hurt both elements on the long run.
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg
mailing list