The code for CellTree is rather odd. There is a keyboard selection policy with three values: DISABLED, ENABLED, and BOUND_TO_SELECTION.
If the policy is ENABLED or BOUND_TO_SELECTION then the CSS styles for keyboard selection get updated, but the SelectionModel is only updated when the policy is BOUND_TO_SELECTION. So the question is whether we want aria-selected to be consistent with the CSS styles (in which case we should update it in keyboardSelected) or whether it should be consistent with the SelectionModel? I think making it consistent with the SelectionModel would be harder, since the SelectionModel depends on the implementation of the NodeInfo interface and you can swap in your own. Also, I'm not sure if BOUND_TO_SELECTION is working right anyway. According to this bug, the synchronization only works one way: http://code.google.com/p/google-web-toolkit/issues/detail?id=7480 It would help if we knew why there is a keyboard selection policy (why does this need to be configurable)? http://gwt-code-reviews.appspot.com/1776803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors