First, I believe (though I'm not an accessibility expert) that CellTable needs only aria-activedescendant and aria-selected and everything else is pure bloat. DataGrid on the other hand would really benefit from WAI-ARIA, as it's split into 3 HTML tables.
The problems with aria-selected (which this patch set doesn't add support for) is that one should put aria-multiselectable too, but that's not going to work as CellTable does not know how the SelectionModel works. Finally, please make your patches against 'trunk': CellTable has been split in 2 to support DataGrid (in 2.4), builders have been added, as well as an ARIA support API. http://gwt-code-reviews.appspot.com/1661803/diff/1/user/src/com/google/gwt/user/cellview/client/CellTable.java File user/src/com/google/gwt/user/cellview/client/CellTable.java (right): http://gwt-code-reviews.appspot.com/1661803/diff/1/user/src/com/google/gwt/user/cellview/client/CellTable.java#newcode325 user/src/com/google/gwt/user/cellview/client/CellTable.java:325: @Template("<table role=\"grid\" tabindex=\"-1\"><tbody>{0}</tbody></table>") Should tables really be focusable? http://gwt-code-reviews.appspot.com/1661803/diff/1/user/src/com/google/gwt/user/cellview/client/CellTable.java#newcode329 user/src/com/google/gwt/user/cellview/client/CellTable.java:329: SafeHtml td(String classes, String headerId, SafeHtml contents); I don't see the need for headers="" here, the HTML algorithms do that very well already. http://dev.w3.org/html5/spec/attributes-common-to-td-and-th-elements.html#header-and-data-cell-semantics http://gwt-code-reviews.appspot.com/1661803/diff/1/user/src/com/google/gwt/user/cellview/client/CellTable.java#newcode1271 user/src/com/google/gwt/user/cellview/client/CellTable.java:1271: td.removeAttribute("aria-selected"); That should be aria-activedescendant. aria-selected is for managing selection, not focus. See http://www.w3.org/TR/2010/WD-wai-aria-practices-20100916/#kbd_focus http://gwt-code-reviews.appspot.com/1661803/diff/1/user/src/com/google/gwt/user/cellview/client/CellTable.java#newcode1532 user/src/com/google/gwt/user/cellview/client/CellTable.java:1532: String headerRef = tableId +"_h_"+curColumn; That won't work if you have colspan'd headers. http://gwt-code-reviews.appspot.com/1661803/diff/1/user/src/com/google/gwt/user/cellview/client/CellTable.java#newcode1713 user/src/com/google/gwt/user/cellview/client/CellTable.java:1713: String headerId = isFooter ? (tableId +"_hf_"+(curColumn-1)) : (tableId +"_h_"+(curColumn-1)); The *_hf_* is never referenced, so totally useless. http://gwt-code-reviews.appspot.com/1661803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors