Re: Use the role-attribute instead of predefined class names

Hi Daniel,

On Apr 5, 2007, at 12:26 PM, Daniel Schattenkirchner wrote:

>
> Hello, the following issue was already raised a few times, however,  
> there was no "big discussion" about it yet.
>
> In my opinion the XHTML 2 role-attribute is far superior to the Web  
> Applications 1.0 predefined class names because the latter got  
> several disadvantages:
>
> I don't think they are what most here call backward compatible.  
> Predefined class names are limited to few elements. I'm using class  
> names like "copyright" already and, like many other authors, I'm  
> not only using it on p- and span-elements. It'd be confusing if  
> some elements with class name X got a different meanign than  
> special elements with class name X. Also It's unclear how elements  
> with class names that aren't allowed on that element should be  
> handled. Are they invalid or ignored. I think that part of the WA- 
> Spec is very imature. (Adding new class names could be very chaotic  
> very soon).
> The same problem is applying to class names that aren't yet  
> predefined, but may become so in the future.
>
> Redundancy is alo a point that comes to my mind. I personally would  
> use a div- or section-element with the class name "copyright" as a  
> parent for copyright-specific paragraphs and lists. I think that's  
> better that a series of p-elements wearing the class name "copyright".

I think this is arguably a bug in the definition of the "copyright"  
predefined class name. It should probably apply to more things, at  
least <div> and <section>. And likely <small> as well, since a  
copyright notice is likely to be the kind of fine print that <small>  
is intended for in HTML5. But I don't see how a predefined  
"copyright" role would help matters any, unless it was allowed to  
apply to more elements than the current predefined class.

> Frankly speaking, I think predefined class names are confusing and  
> make an authors life harder. You've got to now, class name X is  
> predefined and class name Y can only be used on element Z. Not very  
> intuitive IMHO.
>
> My idea would be to merge the role-attribut with the predefined  
> class names (e.g. role="copyright"). This is reflecting my way of  
> using that class name (grouping elements in a div-element with the  
> copyright-class). However, together with the role-attribute, an  
> element would be enhanced semantically, which can be used by search  
> enginges and similar user agents.
> Besides, I think this approach is more useful when working with CSS.

I don't see how <div role="copyright"> would be any better  
semantically or otherwise than <div role="copyright">. And the role  
attribute is harder to style with CSS than the class attribute -- you  
have to write div[role=copyright] instead of just div.copyright.  
Furthermore, many UAs optimize class selectors more than general  
attribute selectors so it might be less performant as well as being  
harder to write.

In conclusion, I do not think your message shows any advantage for  
having both role and class attributes over having just class, and  
illustrates some disadvantages.

Regards,
Maciej

Received on Friday, 6 April 2007 10:28:54 UTC