GNOME Bugzilla – Bug 533030
ListView contents not exposed in ATK
Last modified: 2009-11-12 04:01:07 UTC
I am a blind user of speech provided by Orca. The trunk version of Banshee as of today seems somewhat inaccessible. Here are a couple items I've noticed: 1. Most items on the main screen are unlabeled. The repeat toggle button works, but there is an unidentified tree view which speaks no items when arrowing through, plus several unnamed buttons and panels. 2. The extension manager is full of lots of unknown items, and there doesn't appear to be an intuitive means of navigating via the keyboard. I'm happy to provide additional information and usability suggestions. Looks like an interesting player project and I hope that I can help make it accessible.
Hi Nolan, Thanks for your report and offer of assistance. Just to confirm, you are running from svn trunk? That will make the process easier, since you can test changes without waiting for a release. The TreeView is thelist of sources (library, playlists, etc), good to know we're not doing all we need to be on it. Aaron and I will be following up more on all this later. Thanks!
I notice the target for this bug was set to 1.2. Does this mean it is being addressed in the 1.2 series, or that it should have been completed by 1.2? Just curious, as per the latest version shipped with Ubuntu (1.2.1?) all these issues are still present. I'm still willing and eager to help test this, as I'd really like to be running Banshee on my boxes and laptops. :)
Any progress on this? Recently I found this and I wonder if it might help? When I last inquired, it seemed like folks didn't understand how the GNOME accessibility infrastructure works, and I think this might help with that: http://library.gnome.org/devel/accessibility-devel-guide/nightly/
This is on my radar/todo list for 1.6. Thanks for the docs link.
Created attachment 130274 [details] [review] Add a label to the items in the sources treeview This one line patch adds the source name as a text label to each item in the sources TreeView ("Music Library", "Podcasts", etc.). Seems easy, but it took me a while to figure it out. What seems also easy would be to add labels on the buttons in the toolbar : Previous, Play and Next. But I haven't been able to figure it out yet.
Cool, I can confirm that this patch works. With it applied, I was able to subscribe to and start playing a podcast. Here are new observations: The list of source members is not accessible. So, for instance, once I've downloaded podcasts, I can't find a list of what I've got. I did eventually locate it one shift-tab from the reppeat button, but it doesn't provide accessible feedback. The code is very confusing to navigate. Where is this widget defined? I may be able to take a look at this, but I'm not really all that familiar with GTK, so understanding the accessibility stuff is a level abstracted from that. The "similar artists" feature seems to be accessible. At least, I'm read artist and percentage buttons when tabbing. Not sure what happens when I click on these, and if that will be accessible. Thanks for the start on this. I'll keep poking at the code to see if I can do anything about the buttons. It'll be great to be able to use Banshee. :)
Thanks for the quick feedback, I committed my patch. The content of the sources is handled by a custom widget called ListView. Its code is in src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView. It is rather complex, that's why I started with the other stuff. Clicking on one of the buttons in "similar artists" just opens the web page of the artist on the Last.fm website.
I think making our custom widgets accessible blocks on https://bugzilla.novell.com/show_bug.cgi?id=476836
That bug in Gtk# is fixed in trunk, so we _could_ start working on the a11y of our custom widgets now, if we got our dev environments setup right (and if we #ifdef'd around the code that requires > Gtk# 2.10). Here are our custom widgets: * ListView - relatively complicated, need to implement Atk.Table * Extensions list - we might just change this to a normal Gtk.TreeView * TrackInfoDisplay - simple, just make sure name/description set * DAP Size Info pane - simple, could just set name/description * Rating - simple, just need to implement Atk.Value We also need to check the tab order and keyboard-activation of widgets to make sure they're sane.
I started implementing Atk.Table for our custom ListView widget and ran into another Atk# bug, filed here: https://bugzilla.novell.com/show_bug.cgi?id=512477 I already have the Rating widget a11y 90% done (needs to not be hard coded 0 - 5). My a11y work is here: http://gitorious.org/banshee/mainline/commits/a11y in particular: http://gitorious.org/banshee/mainline/commit/2ef7bb5a4afcfe8b6f8944bfc628c76bd42cd39f and http://gitorious.org/banshee/mainline/commit/ae19542ad25dd00ec2bdcae54148509e0484d6e9
I am continuing with Burt's work, my changes could be found here: http://gitorious.org/~eeejay/banshee/eeejays-clone/commits/a11y
Moved to github. gitorious just confuses me too much, sorry! http://github.com/eeejay/banshee-a11y
Created attachment 144641 [details] [review] [a11y] Basic ListView accessibility.
Created attachment 144642 [details] [review] [a11y] Added basic accessibility to ColumnCellText
Created attachment 144643 [details] [review] [a11y] Added ColumnHeaderCellText accessibility
Created attachment 144644 [details] [review] [a11y] Added ColumnCellAlbum accessibility.
Created attachment 144645 [details] [review] [a11y] Added ColumnCellStatusIndicator accessibility.
Created attachment 144646 [details] [review] [a11y] Added test script.
Created attachment 144810 [details] [review] [a11y] Basic ListView accessibility. Use ListView.ActiveColumn[Changed] instead of Selection.FocusedColumnIndex.
I've merged your entire a11y branch into an a11y branch hosted on GNOME git - http://git.gnome.org/cgit/banshee/log/?h=a11y I've added a bunch of style and other fixes on top of them. Let's collaboratively work on that branch until this is ready for master. If you have a GNOME account, feel free to push directly to that branch Eitan, otherwise just ping me when you have some commits I should pull in.
Things that need to be done: 1) Add copyright headers to all new files 2) Add yourself as an Author on all files non-trivially modified 3) We need some build and/or run-time magic to a) not break the build for users who aren't running gtk# from the 2-12 branch b) not crash for users not running gtk# from the 2-12 branch + the AtkTable patch
I don't know how much more time I will be able to put into this, but I will do my best to do items one and two.