When I started working on Banshee accessibility, I pointed out various keyboard navigation issues in the ListView. For one, the column headers were not keyboard Navigable, so you couldn’t sort by column. Also, there was no indication the ListView had keyboard focus, this made keyboard navigation confusing.
With my limited theming skills, I solved the latter, if anyone has a better idea for keyboard focus indication – please submit patches! My solution was slightly changing the ListView selection’s color, and making the frame’s border bolder.
As for header navigation, the behavior I implemented mimics GtkTreeView: When tabbing into a ListView, focus first lands on the column headers, a second tab puts focus in the actual list. When focus is on the column headers, left and right change the active header, and return toggles sorting. There is a hidden advantage of horizontal control in the ListView that we will see in a later post regarding screen reader support.
Enjoy this short screencast of keyboard navigation in Banshee’s ListViews.