Re: Feedback from NVDA developer James Teh on ARIA landmarks

> On 11/5/2008 1:20 AM, James Teh wrote: 
> Hi all,
> 
> It's probably too late to reconsider this now, but I'm curious 
nevertheless:
> 
> Why was it decided to specify ARIA landmarks using ARIA roles? This does 

> not seem logical to me:
> * The role of an element usually indicates its behaviour and how it 
> should be treated.
> * Landmarks, on the other hand, provide structural information. They do 
> not indicate the behaviour of an element. For example, whether an 
> element is a navigation landmark does not affect how it should be 
> handled by an AT; it is just a way of easily finding the element.
> * I think it would be more logical to specify landmarks in a separate 
> attribute.
> * Landmarks are generally (always?) handled differently to normal roles 
> by ATs. This in itself indicates that role is perhaps not the best 
> representation. See also this bug:
> https://bugzilla.mozilla.org/show_bug.cgi?id=459395

Two reasons that I remember:
1. Historical. The role attribute wasn't invented by WAI-PF. It was taken 
from XHTML, which used it originally only for landmarks. If we wanted to 
keep them separate we probably would have needed to have aria-widget= and 
put widget roles in there. If we try to say that role shouldn't accept the 
XHTML landmark roles that means we'd be trying to change someone else's 
spec, afaict. But, if enough people agree, perhaps we can argue that 
things have changed and try to make it happen.
2. There is the idea that something might effectively act as both a 
landmark and a widget. For example, a menubar is definitely a widget but 
the group considered it to be an effective landmark as well.
No one wanted to make authors put redundant info, e.g. <div role="menubar" 
aria-landmark="menubar">

That said, I do agree it would be nice to keep things separate. There are 
several other ways of doing this that can be considered:

1. By putting a property on each role like "isLandmark".  Do you have 
anything against this approach? The landmarks could thus be exposed to 
NVDA separately from widget roles.
2. By using HTML element names for the landmark feature, effectively 
removing landmark role usage from ARIA. IOW, use <article>Blah</article> 
instead of role="article". Generally I hear this belief from HTML 5 spec 
developers -- that role should not be used for landmarks at all -use the 
new elements like <article> instead. This was considered by PFWG but 
rejected, I think because WAI-ARIA is a farther in on the process to 
becoming a W3C recommendation. Pros: these elements haven't changed in 
years, are stable, and like the rest of HTML 5 you can start using it. 
There also isn't any major change required in browsers to use the new 
elements. Also, if browsers implement native keystrokes or behavior 
related to these elements it would be ok, whereas with ARIA we purposely 
prevent that from affecting browser behavior -- it only describes what's 
there.

- Aaron 

Received on Wednesday, 5 November 2008 15:08:06 UTC