Accessibility features in Firefox for iOS

After ten months in development, Mozilla today released Firefox for iOS worldwide. Firefox for iOS is bringing your synchronized bookmarks, history and other information associated with your Firefox account to the iOS platform. Moreover, it is also going to record pages you visit in your history and sync these back to your Firefox on Windows, Linux, Mac, and even Android devices.

From the start, we also made sure that Firefox for iOS supports multiple features of the iOS platform. Here are some highlights:

VoiceOver

Firefox for iOS supports VoiceOver. Since Apple’s app store rules force us to use the Safari rendering engine, that is accessible anyway. But we also made sure the browser’s UI, Settings views and other features all talk well with VoiceOver. Moreover, we also implemented audio cues to indicate page load progress and finish. Those of you using NVDA might feel a certain familiarity with these sounds. 😉

We are also taking advantage of the iOS 8 feature of custom actions in various places. So when you start to learn Firefox for iOS, make sure to turn on VoiceOver hints so you get notified when custom actions are available.

Some things we did not get to yet, but which are on our list of things to do are:

System font

We respect the system font setting in the UI. The web site could, of course, still set its own fonts, but all the accessibility settings pertaining to the Web View will work as they do in Safari.

Bold text setting

The Bold Text accessibility setting is respected. You can expect the UI to respond to changing this setting in your iOS system settings.

Switch control

Like VoiceOver, switch control should work in the browser UI. We also tried to always make sure that switch control cannot go to any hidden controls or the like that are not really actionable at a given time.

Some known issues

Where to get it?

Firefox for iOS is freely available on the iOS App Store. It runs on iOS 8 and later.

The switch back to Windows has been reverted – quite some time ago actually

This is a post I should have written quite some time ago, but never got around to doing so. But since I like to follow-up with things I wrote on my blog, it’s time I tied up this loose end.

In February of 2014, I wrote a post titled Switching Back To Windows. It reflects thoughts, frustrations, and other factors I had had with the OS X platform at the time.

However, as it turned out in the following months, these frustrations were nothing compared to what awaited me once I dove back into the full Windows experience full-time, day in, day out. The new laptop I got, made by Lenovo, managed to wreck its Windows installation two months into using it. I had to reinstall, and because its Recovery partition was broken, had to get a Microsoft Win 8.1 ISO and install all extra drivers by hand. Needless to say, this didn’t go without sighted assistance. One of the drivers was the sound card driver. Surprise!

That new installation lasted another three or four months, and I didn’t really use it too heavily. I also didn’t install any funky stuff on it, no malware crept on or anything. It just became slower and slower and slower by the day. I turned off defragmentation, something that is mostly useless on an SSD anyway. I didn’t let the operating system index anything special, either. I pulled all kinds of tricks my previous knowledge and new research on the web offered me, and failed. On top of that, that notebook turned its cooling on every two minutes even when largely sitting idle. The casing, in plastic, became hot even when just reading mail or light surfing, and I didn’t even have Flash installed!

By October of 2014, I was back on my beloved MacBook Air, which by then ran the public beta of Yosemite. And because Yosemite was initially quite a bad release, as can be read in this open letter to Apple, I installed Win 8.1 in Bootcamp and used that day in, day out for a month or two.

And guess what? That MacBook Air, from mid 2012, was not really slower than the high-end Lenovo laptop with a quad core processor and what not I got earlier in the year. I should have listened to one commenter who recommended that exact thing to do. 🙂 The experience was not much better over-all anyway. Compared to the OS X operating system, battery life was only half, and the Air, too, was always considerably warmer and more busy cooling itself than under OS X.

By January this year, I sold the Lenovo on eBay, at a terrible price tag. The loss was about 70% on one year old hardware.. Imagine that!

At the same time, Yosemite had reached its 10.10.2 release, which stabilized things a lot, and so I ditched that Bootcamp installation, installed Windows in a VM, and went back to using OS X full-time on my private machine.

Mail still isn’t too great, especially when viewing conversations, or I am missing a quick way to go to the next message in such a conversation without having to exit, and re-enter two levels of interaction for each message that is an embedded object. Safari or Chrome are both OK, Firefox isn’t quite there yet, but that’s not OS X’s problem, but that of the Mozilla accessibility effort, which I am part of. The Twitter client on OS X is way better than any of the ones I tried on Windows, all of which were in the habit of wrecking their databases every other week for no apparent reason. I tried three of them and won’t name a single one.

Pages also got a lot better in that one year, so my office needs were covered better, too. And now, Microsoft is even making Word 2016 accessible! some rough edges from superficial testing, but hey, they’re getting there!

OK, that’s the update to that topic! 🙂

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!