- 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:06:16 UTC