- From: James Graham <jg307@cam.ac.uk>
- Date: Wed, 16 Aug 2006 11:11:45 +0100
Matthew Raymond wrote: >> The role attribute currently describes behavior, and is added so that >> users with disabilities know what the behavior for a given element is, >> according to well-known semantics. CSS is supposed to be for >> presentational. In your scenarior, will there be any way to easily know >> whether one of the items in the class attribute describes the behavior >> is purely presentational? > > Well, authors are not supposed to put in purely presentational class > names to begin with Show me a spec that says that in a normative way. It is merely a "best practice". Class names, in general, are meaningless and meaningful class names should not be part of the core specification. > I have yet to hear an > argument with regards to why |class| can perform the same functions that > |role| can, especially given the allowance in the HTML 4.01 spec for > "general purpose processing". Of course, if you plan to put all the semantics of a document in the class names, we could do away with many elements. Do you object to <div class="h1"> as a replacement for <h1>? >> Otherwise, both authors and machine processors >> will be easily confused by it. Eh? > The values for |role| are nothing more than a new set of class names, > and there is nothing preventing the user from putting in unidentified > |role| values for presentational purposes and then styling them via CSS > using attribute selectors. So aside from being mildly harder to select > from CSS, |role| values are potentially no more semantic than |class| > values. Authors can misuse anything. <h1 style="font-size:12px; font-weight:normal;">This is the main text of my document put in a heading so that search bots think that it's really relevant and useful</h1>. > However, let's assume that people would only use semantic values in > |role|. What becomes of |class|? We use it only for styling? That won't > work, because HTML is supposed to be semantic. We use it for it's purpose - to provide hooks to enable presentational languages to couple to arbitrary groups of elements on a page. This kind of non-semantic hook is _necessary_ so that the temptation to abuse the semantic elements is greatly reduced. > So what we end up doing is replacing |class| with an attribute named > |role| that has more rules but otherwise does the same thing. No. We add an attribute which conveys specific semantics ("this element is being used as a UI widget of a particular type). We standardize some well-researched values for that element that are applicable to the needs of non-visual UAs in the real world.
Received on Wednesday, 16 August 2006 03:11:45 UTC