- From: Ben Boyle <benjamins.boyle@gmail.com>
- Date: Tue, 25 Mar 2008 13:34:21 +1000
- To: "Henri Sivonen" <hsivonen@iki.fi>
- Cc: public-pfwg-comments@w3.org, "HTML WG" <public-html@w3.org>
I only have a superficial understanding of ARIA, but everything
explained here makes perfect sense (to me) for document conformance.
I wonder if where "ajax libraries" are mentioned, that may refer more
generally to authoring tools? There are a number of tools -- content
management systems and application frameworks spring to mind -- that I
would also place in the same category: using classes to reinvent
semantics that exist readily in HTML. Class names containing 'label'
and 'heading' being classic examples. I can imagine such tools using
aria attributes to claim greater quality, rather than using HTML
appropriately. Conformance checking around this sounds very useful.
I also support the concept that HTML5 specifies some aria mappings (to
save authors from specifying the obvious?) ... e.g. a checkbox is a
checkbox, using the HTML markup for checkboxes is enough without
adding aria markup to (redundantly) define a checkbox is a checkbox.
This would in turn prevent any effort to specify a checkbox is a radio
button. ("Prevent" is probably too strong a term, but it would make it
'non conforming' ?)
I wholeheartedly agree with any approach that removes redundancy and
strengthens the consistency and accessibility of markup by default,
and helps reduce the spurious repurposing of markup in confusing and
counter-intuitive ways. That's got my vote.
Correct me if I misunderstood anything.
cheers
Ben
On Mon, Mar 24, 2008 at 11:26 PM, Henri Sivonen <hsivonen@iki.fi> wrote:
>
> I'm implementing conformance checking for ARIA in HTML5. (I know HTML
> 5 doesn't reference ARIA yet--I'm hoping to get a feedback loop going.)
>
> This email is about requirements on document conformance--*not* about
> browser conformance. (Specifically, this email does not suggest
> changing the "ARIA always overrides" browser implementation policy.)
>
> First, some observations:
> * It's really quite unfortunate that ARIA was developed separately
> from HTML5. In an ideal design, the functionality of ARIA would be
> natively present in HTML5. It's too late to change that, but there is
> a chance try to fit them together a bit more nicely.
>
> * From an HTML point of view, ARIA defines four kinds of roles:
> 1) roles that HTML5 does not have natively (e.g. tabpanel)
> 2) roles that HTML5 has natively but HTML4 didn't have (e.g.
> progressbar)
> 3) roles that HTML4 has natively but that Ajax libraries still
> reimplement for styling reasons (e.g. radio)
> 4) roles that HTML4 has natively and that Ajax libraries have
> absolutely no legitimate styling reason to reimplement (e.g. heading,
> columnheader and table)
>
> * I think roles in group #4 should be non-conforming in HTML and
> should be left for host languages with weaker native semantics, such
> as SVG.
>
> * In the cases of #1, #2 and #3, there may be ARIA states and
> properties that HTML doesn't have natively. In those cases, I think it
> should be permissible to use states or properties that make sense with
> the native role of an HTML element without redeclaring the native role
> using the role attribute. For example, aria-sort should be allowed on
> a <th> without a role attribute and aria-controls should be allowed on
> an <input type=button> without a role attribute. Moreover, many HTML
> elements have a native role that is region or its subrole.
>
> * When an element has a strong native semantic, it seems just wrong
> to override it. Consider <input type=radio role=checkbox>
>
> * There are elements on which ARIA, frankly, makes no sense.
> Consider HTML <param> or SVG <defs>.
>
> Therefore, I suggest the following steps for establishing document
> conformance requirements for ARIA integrated into a host language:
>
> 1) Identify ARIA roles that are patently redundant with the long-
> established native elements of the language. Ban those ARIA roles. (#4
> above)
>
> 2) Identify the closest implicit role of every element in the host
> language (e.g. <input type=radio> has the native implicit role radio).
> Document these so that UA implementors end up exposing the ARIA roles
> and the native roles to AT in a consistent way. For each element with
> a native role, consider which ARIA states and properties are not
> covered natively or are covered natively in the latest language spec
> but aren't covered in legacy deployments. (For example, the input
> element in HTML5 has a 'required' attribute but legacy considerations
> still give a use case for aria-required, since aria-required doesn't
> interact with the actual form submission algorithm.) Allow those
> states and properties on the element without an explicit role attribute.
>
> 3) Identify which elements have strong native roles. Make it non-
> conforming to override those. (For example, <input type=radio>
> probably should be considered to have a strong native role but <li>
> should probably be considered to have a weak and overrideable native
> role.)
>
> 4) Identify which elements don't make sense with ARIA (e.g.
> <param>). Make it non-conforming to use ARIA (except global states and
> properties) with those elements.
>
> 5) Enumerate the roles that are applicable on the root element.
> Chances are that most roles aren't.
>
> To get discussion started, I have written a rough first-iteration draft:
> http://hsivonen.iki.fi/aria-html5/
>
> --
> Henri Sivonen
> hsivonen@iki.fi
> http://hsivonen.iki.fi/
>
>
>
>
Received on Tuesday, 25 March 2008 05:44:45 UTC