The release of Thunderbird 3 is just around the corner. Aside from all the great new features Thunderbird 3 has in general, its accessibility story is also one which should be celebrated once the release has happened.

Thunderbird 3 is based on the Gecko 1.9.1 platform, which is the same version that Firefox 3.5 is based on. As such, Thunderbird 3 has learned all the great new features of the platform, many of which have a significant impact on users with disabilities. Please allow me to highlight the major improvements and new features.

Support for new accessibility APIs

Thunderbird 3 supports the IAccessible2 standard on Windows. IAccessible2 is a major enhancement to Microsoft Active Accessibility (MSAA), which allows assistive technologies to directly interact with the rich content an HTML e-mail message can have, through a defined set of APIs. Screen readers for the blind, for example, no longer need to rely on old-school screen-scraping methods to try and guess what the application is showing. Instead, headings, block quotes (such as in quoted messages) etc. are all identifiable without question. Font and styling information is available as well. NVDA 2009.1, Window-Eyes 7.1 and JAWS 10 and above take advantage of these technologies already and offer a hugely improved experience for their user bases over what Thunderbird 2.0 had to offer.

This also includes support for in-line spell checking. If enabled, screen readers can identify misspelled words just like in Firefox, and users can go and correct their mistakes on the fly without having to invoke the extra spell checking dialog.

Accessibility on the GNOME Desktop

Thunderbird 3 is accessible to Orca users on the GNOME desktop in Linux. While Thunderbird 2 offered close to no accessibility support, Thunderbird 3 offers a wide range of accessibility to visually impaired users.

Also, the support for ATK/AT-SPI allows other assistive technologies such as GOK (GNOME On-screen Keyboard) to interface with Thunderbird and allow the use by people with motor impairments.

Tabbable and properly labelled message headers

When reading messages, most of the header fields of a message are now reachable via the tab key. This is a huge improvement for any keyboard user. Access includes the “star” that allows to quickly add a contact to the address book or to edit a previously added contact.

All these fields and controls also have proper accessibility labels so that screen reader users immediately know what they’re interacting with.

One known problem is that the multi-functional “reply” control currently isn’t part of the tab order.

Better support when composing messages

Aside from the above mentioned API improvements, the UI also received some love to better communicate the happenings when filling out the from:, to: etc. fields while composing a message. Selecting a different field type now also does not throw newer versions of screen readers into limbo or confused states any longer. Working with the Contacts side bar is also supported.

Over-all UI improvements

Over-all, the various dialogs in Thunderbird such as Tools/Options, Tools/Account Settings and others have received a major accessibility overhaul esp with regards to properly labeling textboxes, radio groups and other XUL widgets so screen reader users get accurate information while tabbing through. Infact, a Thunderbird XUL UI fix was my very first patch when I started contributing to Mozilla. 🙂

New UI features were also made accessible

New UI features such as the all-new facetted search were also made largely accessible. The new Search, for example, makes heavy use of WAI-ARIA to allow both an appearance that’s visually appealing and keyboard and assistive technology communication that’s accessible. The one exception in this new piece of the product is the graph that shows the search results over time. This is based on SVG, which is totally inaccessible at the moment.

A call-out to Thunderbird extension developers

With the above improvements now being in place, it is equally important for Thunderbird extension developers to follow these simple rules to make their extensions accessible, as it is for developers of extensions for Firefox. DOM Inspector offers an accessibility view which allows you to check whether your XUL has proper labels for textboxes and other good markup! Also, don’t be shy to ask questions! The accessibility team hangs out on the #accessibility channel on and will be happy to assist!

A few known problems remain

As always, nothing can be perfect, but we’re striving to be as perfect as possible. Having said that, there are a few issues that remain, but for which fixes are already visible on the horizon:

  • When viewing messages as threads, the fact whether a thread is expanded or collapsed is not yet communicated to screen readers. This will be different once a new version of Thunderbird switches to using Gecko 1.9.2 or later, which includes the all-new tables support.
  • The same is true for the “subscribe” dialog for newsgroups and IMAP folders. Right now, screen readers do not yet get the state whether a certain folder is checked or not. This will also change with a switch to the new Gecko platform.
  • Folders in the folder pane cannot be navigated to using first-letter navigation. I’m hoping we’ll find a solution to this often voiced request in the future.
  • The picker for rearranging the columns in the message list isn’t accessible via the keyboard yet. You can use the mouse emulation of your screen reader to get to that button to the right of the column headers to access options.


I’d like to thank everyone who has been writing to me over the past two years pointing out Thunderbird accessibility issues. As was expected, these actually made up a higher volume than Firefox since there were more UI-related issues. Keep the feedback coming!

I’d also like to extend a huge thank you to the team at Mozilla Messaging and the voluntary contributors who all helped with implementations, reviews, suggestions and advice while improvements for Thunderbird 3 were requested, triaged and acted upon. I really feel that accessibility is being taken seriously, and I honestly hope that a lot of users worldwide will show their appreciation by downloading and using Thunderbird 3 when it comes out! I’ve been using it for over 2 years now while it was being developed and haven’t regretted making the switch!

Keep up the good work!

Firefox 3.6 is just around the corner, and despite all the birthday celebrations, and the looking back that comes with it naturally, I think it is also time to look ahead. So here’s a roundup of what accessibility features will be in the next major release of our favorite browser.

Support for voice dictation software in Windows Vista and Windows 7

Firefox 3.6 introduces support for the Microsoft Text Services Framework. Among other things, this allows users to dictate into text fields on the web using the Microsoft voice dictation software that comes with Windows Vista and Windows 7.

Because this is fairly new technology to Firefox, and because there are undoubtedly quirks to iron out, this support has to be specifically enabled in the advanced configuration editor. To do this:

  1. In an empty tab, type about:config in the awesome bar.
  2. Acknowledge the warning by clicking the “I’ll be careful, I promise!” button.
  3. Type the letters tsf in the filter textbox
  4. In the list that appears, select the preference intl.enable_tsf_support. This is off by default (its value is FALSE).
  5. Right-click that preference and choose the “Toggle” menu option. This will change the option to read TRUE.
  6. Restart Firefox.

This setting will now be saved in your profile and the functionality is available to you.

This expands the range of supported accessibility-related APIs yet again and offers good integration with one more native feature of the Windows Vista and 7 operating systems. Now, users with typing difficulties can use Firefox in a more efficient manner than before.

Windows 7 task bar integration

The new task bar integration in Windows 7 is accessible. If you have more than one tab open, and you navigate the task bar using the keyboard, a screen reader such as NVDA will announce “sub menu” for the Firefox task bar icon. This means that you can use the up and down arrow keys to select the tab you want to bring to the foreground when you switch to Firefox. This is just as seamless as sighted users will choose the tab preview from the Windows 7 task bar using the mouse.

More consistent focus handling

This affects everyone, keyboard and mouse users alike, but is mentioned here nevertheless since it brought us a few bug fixes for free like more consistent tabbing on pages that have the tabindex attribute on some elements but not others. Also, when saving executable files on Windows, the dialog that comes up prompting to save the file is now automatically being announced by screen readers.

Support for the IAccessibleTable2 interface

I blogged about this in more detail here. This gives screen readers access to all kinds of table structures, be it ordinary data tables, ARIA tree grids, XUL tree tables and other possible table constructs, in a unified and consistent manner.

More consistent and maintainable naming rules

Also in line with the user agent implementor’s guide for WAI-ARIA, we’ve improved the way we calculate the accessible names (often similar to on-screen text) of various elements in HTML and XUL. This makes our code more robust, predictable and maintainable, and therefore will allow easier adding of new features/element support in the future.

Notifying screen readers when an object attribute’s value changes

For better support of WAI-ARIA Drag And Drop, we’ve added support for the IAccessible2 object attribute changed event. This event notifies screen readers when an accessible’s object attribute’s value has been changed by the page. This usually happens if a certain HTML element’s attribute is exposed via its corresponding accessible’s object attributes, and that element’s attribute value is changed by a user action (usually done via JavaScript).

And again tons of bug fixes

Of course, there have also been a good number of fixes for existing features that were reported to use by users and assistive technology vendors alike. We’ve also kept track and participated in last-minute changes to the WAI-ARIA spec and kept our implementation up to date.

The whole accessibility team hopes that you’ll enjoy using this new version of Firefox as much as we enjoyed creating and testing it!

In case you haven’t noticed already: Today is Firefox’s 5th birthday! On November 9th, 2004, Firefox 1.0 was released to the general public after more than two years of development.

And boy, was I jealous! All my sighted friends could try out this cool new thing, an alternative browser to the omnipresent, and some would even say, omnipotent, Internet Explorer! An alternative! But it was not yet fully accessible. There were first glimpses: When I ran Firefox 1.0 with JAWS 6.0 back then, I could navigate the menus, and most dialogs talked. But the main functionality, the browsing experience, was not yet available to me.

That all changed with Firefox 1.5 and the donation IBM gave to the Mozilla project in August 2005. At the same time, Window-Eyes 5.5, and a bit later JAWS 7.0 were released with initial support for Firefox 1.5. Suddenly, the virtual cursor worked, quick navigation keys brought you from heading to heading or form field to form field, just like in Internet Explorer 6! And boy, was it fast!

It also had a ton of problems. Pages not rendering completely, esp pages with frames giving users huge headaches by not rendering at all often times, etc. Many users including myself had to decide that Firefox was just not ready for prime time use on a daily basis for screen reader users just yet.

But I kept up with development and also tested Firefox 2.0, which came out in October 2006. Many of the problems were still there, but some were a lot better. And the initial support for what back then was still known as “dynamic HTML” surfaced, giving a first glimpse of what later became WAI-ARIA and which has already changed the landscape of accessible web applications.

In December 2007, I started as Mozilla’s Accessibility QA engineer and took matters into my own hands. For Firefox 3, the accessibility community accomplished a huge lot: Firefox 3 was the first UI browser to become accessible on Linux. There was now an open-source screen reader taking full advantage of all the new features of the IAccessible2 standard on Windows. WAI-ARIA compliance was very high. All content-related problems were a thing of the past and the browsing experience was as reliable in Firefox as it was in IE. Moreover, value was added by projects such as WebVisum, which is a social tagging and captcha solving service exclusive to blind users using Firefox. When Firefox 3 was released in June of 2008 and we got in the Guinnes book of world records, I’m sure there were quite a number of blind folks participating in that effort!

But we didn’t stop there. For Firefox 3.5, we added support for text attributes, giving blind users the ability to in-line spell check their entries on the web just like any sighted people do. The community worked together to give open audio and video to everyone, not just sighted people, but also screen reader and keyboard users. WAI-ARIA compliance was increased to nearly 100%. Stability was further increased. Two more Windows screen reader vendors stepped up to support Firefox, making the total number of screen readers for the blind supporting Firefox 3.x 5 on the Windows platform.

And on its 5th birthday, my colleagues in the QA team and I are working hard to get a beta refresh out to all of you of the next major release, Firefox 3.6. In fact I’m writing this blog post using the candidate build. And we have a cool set of features assembled for Firefox 3.6 on the accessibility side, about which I’ll blog next.

All I can say is: Thank you Firefox! Thank you to everyone in the community who has been and is working so hard to make the web a better place for everyone! I’m grateful and proud to be a part of this community!

Happy birthday, Firefox!