RE: Handling of landmark roles on native markup

At the risk of offering a simple +1, I also agree with this. the "old way" was far more concise and efficient. I've also noticed
that it was far more comfortable for web developers I have spoken with when discussing accessibility with them.


Take care,




Twitter: @SinaBahram


From: Victor Tsaran [] 
Sent: Monday, March 19, 2012 1:23 AM
To: Aaron Leventhal - Code
Subject: Re: Handling of landmark roles on native markup


I am sure there were reasons as to why the newer implementation was devised, however, I did prefer the older version. In addition to
Aaron's comments, I would also say that, IMHO, the older implementation provided a less cluttered mark-up. With the new
implementation one has to place some roles onto an extra div in order for it to be exposed to certain accessibility APIs. For


New way:

<div role="main">

<table summary="list of messages">






Old way:

<table role="main" summary="list of messages">







On Mar 16, 2012, at 11:24 AM, Aaron Leventhal - Code wrote:

I recently discovered that Firefox and WebKit-based browsers handle landmarks differently.


WebKit implements the current ARIA implementation guide at -- 

"For the standard role mechanism of the accessibility API, the user agent MUST use the first token in the sequence of tokens in the
role  <> attribute
<> value which matches, on comparison, the name of any non-abstract WAI-ARIA


Firefox/Gecko implements an older version of the implementation guide at

"The first role token with a known mapping to accessibility APIs SHOULD be used when mapping to the accessibility API via the
standard role mechanism of the accessibility API. Use the role table below and apply any special case rules that are specified." 


As I see it, there are two advantages to the older system:

1. The landmark role can complement native semantics without clobbering them, e.g. 

 <input type="text" role="search">

 <table role="complementary">

 <ul role="navigation">

2. It enables forward compatibility of ARIA-enabled content with future browsers and platforms, as fallback roles can be used. For
example, <table role="calendar grid"> allows newer platforms who understand a "calendar" role to map directly to that, but previous
versions which did not know about "calendar", would fall back on "grid", still a valid, usable role.


I'd like to help sync the browser implementations on this issue. My (opinion) is that the older role processing is better for the
reasons given above. I would love to hear other opinions.


Thanks as always,




Received on Monday, 19 March 2012 14:49:31 UTC