- From: Leif Halvard Silli <lhs@malform.no>
- Date: Wed, 04 Jun 2008 19:03:15 +0200
- To: Anne van Kesteren <annevk@opera.com>
- CC: elharo@metalab.unc.edu, public-html@w3.org, wai-xtech@w3.org, www-tag@w3.org
Anne van Kesteren 2008-05-30 17.03: > On Fri, 30 May 2008 16:57:27 +0200, Elliotte Harold ... >> 1. Accept that HTML is monolithic. Merge ARIA into the core HTML spec, >> or incorporate it by reference. Make an ARIA attribute >> programmatically no different than class or style or id. ARIA is just >> a part of HTML 5, and provides no support for other host languages. > > I don't really see why only this is plausible. class, style, and id work > in HTML, SVG, and MathML. Why can't the same go for ARIA? How about making it a true statement that aria can be compared to class, id and style? I.e. *one* aria attribute instead of aria-* ? The aria-* syntax creates a multitude of attributes. It is as if one decided to go for style-font="*" instead of style="font:*". OTOH <element aria="prefix-value" > would work fine with CSS selectors, and the content of the aria attribute could also be directly copied to the class attribute, for legacy support -- which seems to be a mayor concern. If we really want it to be simple for authors to select elements based the element's aria values, then a *new* selector is needed. Perhaps it is for the CSS selectors, that we need "aria:" as a prefix. Or may be a aria(value) selector. See examples below. I must say that I look with unhappiness at the aria-* attributes. Where is authors' benefit of using ARIA instead of class= ? ARIA is supposed to provide "semantic hooks" in addition to the semantic free "class" and "id" hooks. (Of course, it is low-level semantics, close to behaviour, we talk about.) Hence implementing ARIA as a kind of class attribute should make sence. The challenge only is that we need a syntax for its "predefined class names". Example - markup: <h1 id="someHeader>Some header</h1> <ul role="group" aria="labelledby-someHeader" class="labelledby-someHeader"> <li id="cb1" class="describedby-someHiddenElement checked-false" tabindex="0" role="checkbox" aria="describedby-someHiddenElement checked-false" > Lettuce </li><li></li></ul> Example - CSS: li.aria:checked-false {/* = new ARIA CSS selector, alt. 1 */} li.aria(checked-false){/* = new ARIA CSS selector alt. 2 */} li.checked-false {/* = old class selector */} li[aria|="checked"] {/* = old attribute value selector */} Note that the last selector will select any ARIA attribute with a value that begins with "checked-*". Also note, of course, that having a single aria attribute lets you select all elements which include it -- *[aria]{}. Something which is not possible with aria-*, since we do not have any *[aria-*]{} selector. -- leif halvard silli
Received on Wednesday, 4 June 2008 17:04:33 UTC