Improvements in accessibility for Mac OS X in Firefox 41

During a big Mozilla event in June in beautiful Whistler, British Columbia, Canada, a few team mates, contributors and I had the chance to work on some improvements to what Firefox exposes to VoiceOver on the Mac OS X operating system. These improvements will be in Firefox version 41, currently in beta, which will be out in September.

Tables

Semantics for HTML tables have not been exposed to VoiceOver at all so far. This is changing in Firefox 41. Modeled after what Webkit exposes, table structures are now exposed including headers, row and column counts, and VoiceOver navigation among cells is also possible. Thanks to Frédéric for doing the heavy-lifting on this one! 🙂

Various more element roles

In a cumulative patch, I rolled out improvements and additions to what roles, subroles, and roleDescriptions are exposed for various HTML and WAI-ARIA roles. Some of them were already there, but wrong, and others hadn’t been present at all yet. All of these are modeled after what Webkit exposes. And since none of this is properly documented anywhere, the only way to get at this information is to read Webkit’s source code. 🙂

You can expect to see better exposure for things like alert, alertdialog, ARIA grid-related roles, and other elements and widgets that weren’t quite right yet.

MathML

Frédéric did a lot of work to properly expose MathML elements in an accessible form for OS X in this release. His over-all MathML project for Gecko encompasses more than just OS X. He documents it on his blog in part 1 and part 2 here. This project is still on-going.

In the case of OS X support, we should be close to, if not identical, to what Safari exposes to VoiceOver. So hopefully, reading MathML in Firefox with VoiceOver gives the same information as VoiceOver would give in Safari. Note that we have no control over what VoiceOver actually speaks, we can only control what we expose.

If you’re more interested in the progress on the MathML support, I suggest you follow Frédéric’s blog as he progresses through his project with us.

So, are we done yet?

Unfortunately not. Especially one remaining big bug is that we still don’t handle Apple’s rather complicated text interface right. The consequence is that typing into fields works, but re-reading what you typed doesn’t. We do have some text-related exposure, but that is either wrong, outdated, or doesn’t work for some other reason. Unfortunately, we’re still tight on resources. So if anyone wants to step up and contribute a patch for this, she or he is more than welcome to do so! Here’s the bug!

But there are other things that still prevent me (and probably most others) from using Firefox for Mac on a daily basis with VoiceOver. One is a really annoying one. Even though we did have a patch for it, the event we’re firing still doesn’t tell VoiceOver that a page finished loading.

But there’s more. We still are slower than I’d like us to be, especially on busy pages. And we don’t expose any WAI-ARIA live region stuff yet, including in alerts (which at least now have correct roles and subroles). So if you have free time to contribute and would like help out on any of these, please get in touch, and we can take it from there!

In conclusion

The stuff that made it into Firefox 41 is a big step forward. We made that room to improve just that bit smaller! Yay! There’s still a lot of it left, though. But at least some progress was made. If you feel brave and want to test this in Firefox 41 and above when it comes out as a release, feedback is always welcome. I cannot promise when we can actually act on it, but we’ll at least get it recorded and on our radar. So keep the feedback coming, as always!

2 thoughts on “Improvements in accessibility for Mac OS X in Firefox 41”

  1. This is great news! I’ve been trying to do accessibility testing on a Mac using VoiceOver and it’s difficult to determine if it is me being a novice user, an issue with Firefox, or the web site I’m testing. I’m doing dual testing in Safari to try to help out. Any chance FF will be supporting the rotor function in the near future?

What are your thoughts?