In our work on Firefox MacOS accessibility we routinely run into highly nuanced bugs in our accessibility platform API. The tree structure, an object attribute, the sequence of events, or the event payloads, is just off enough that we see a pronounced difference in how an AT like VoiceOver behaves. When we compare our API against other browsers like Safari or Chrome, we notice small differences…
What We Did In today's nightly build of Firefox we introduced a simple three-state toggle for color contrast. It allows you to choose between these options: Automatic (use system settings) : Honor the system's high contrast preferences in web content. If this is enabled, and say you are using a Windows High Contrast theme, the web content's style will be overridden wherever needed…
A New Speech API and Framework I wrote the beginning of what I hope will be an appealing speech API for desktop Linux and beyond . It consists of two parts, a speech provider interface specification and a client library . My hope is that the simplicity of the design and its leverage of existing free desktop technologies will make adoption of this API easy. Of course, Linux already has a speech…
Half of the DOM Web Speech API deals with speech synthesis. There is a method called speechSynthesis.getVoices that returns a list of all the supported voices in the given browser. Your website can use it to choose a nice voice to use, or present a menu to the user for them to choose. The one tricky thing about the getVoices() method is that the underlying implementation will usually not have a…
I needed a meter to tell me what the air quality is like outside. Now I know! If you need one as well, or if you are looking for an accessible gauge for anything else, here you go. You can also mess with it on Codepen . function setDial(aqi) { let angle = getAQIDialAngle(aqi); let [bg, white] = getAQIColor(aqi); let meter = document.querySelector(".gauge > div[role=meter]"); let dial =…
Aside from a handful of pinned tabs, I open a new tab for anything I need to do: search the web, file a bug, look up documentation, check on the news, the weather, you get the idea. I am also addicted to Firefox’s new tab page, so I'll often open a new tab out of boredom to let Pocket suggest an article for me. I hardly ever look at the same tab twice. If I need to get to something, it is…
This is cross-posted from a Medium article by Akshitha Shetty , a Summer of Code student I have been mentoring. It's been a pleasure and I wish her luck in her next endeavor! For me, getting all set to read a book would mean spending hours hopping between stores to find the right lighting and mood to get started. But with Firefox’s Reader Mode it’s now much more convenient to get reading on…
I often need to quickly test a snippet of HTML, mostly to see how it interacts with our accessibility APIs. Instead of creating some throwaway HTML file each time, I find it easier to paste in the HTML in devtools, or even make a data URI. Last week I spent an hour creating an extension that allows you to just paste some HTML into the address bar and have it rendered immediately. You just need to…
( Warning: Modifying userChrome.css is not guaranteed to work between versions of Firefox and may lead to hard-to-diagnose bugs. Use at your own risk!) Firefox Quantum has made a clean break from Firefox’s legacy addons. Hooray! A casualty of this change is the ability to have addons that fundamentally alter Firefox’s user interface. This can be a problem if you depended on this for accessibility…
After porting Aaron’s NoCoffee extension to Firefox, I thought it would be neat to make a camera version of that. Something you can carry around with you, and take snapshots of websites, signs, or print material. You can then easily share the issues you see around you. I’m calling it Phoropter, and you can see it here (best viewed with Chrome or Firefox on Android). I could imagine this is what…
Four years ago, on a snowy February day, Aaron Leventhal huddled in his unheated home and created a Chrome extension called NoCoffee. This extension allows users to experience web content through different lenses of visual impairments*. I recently ran across this extension again, and thought it is high-time we ported it to Firefox. Firefox’s support of WebExtension standards means that this should…
If you use Firefox Nightly, you may notice that there is no more Accessibility section in the preferences screen, this change will arrive in Firefox 56 as part of a preferences reorg. This is good news! Cursor browsing and search while you type, are still available under the Browsing section, as these options offer convenience for everybody, regardless of disability. Users should now be able to…
I recently set the Compact Dark theme as my default in Firefox. Since we don’t yet have Linux client-side window decorations yet (when is that happening??), it looks kind of bad in GNOME. The window decorator shows up as a light band in a sea of darkness: It just looks bad. You know? I looked for an addon that would change the decorator to the dark-themed one, but I couldn’t find any. I ended up…
Close your eyes, take a deep breath and fast forward four years when Trump’s administration will be roundly rejected. Feel in your body the hope that will overwhelm you. Conjure up your future restored faith in humanity when people from all walks of life stand together against hate. I have never felt so pessimistic and defeated than in the last week. The press will normalize him, the Democratic…
Problem Statement: : In today’s fast-paced world, while juggling work and personal life, sometimes we need to know what time it is. Solution: : A chronometer you can hang on the wall. Wake up people. Clocks are the future. Embrace progress. Hello, my name is Eitan. I am a clock maker. Over the past year I have spent nights and weekends designing gear trains, circuit boards, soldering and writing…
Like I mentioned in a previous post , I wanted to try out a more hackable wifi plug. I got a Kankun “smart” plug. Like the other one I have the software is horrible. The good news is that they left SSH enabled on it. Once I get SSH access I got to work on a web app for it. I spent an hour styling a pretty button, look: And when you turn it on it looks like this: Anyway, if you want to have a…
Do you use Google Inbox? Do you miss getting notifications on your desktop when new mail arrives? In Gmail you could opt in to get desktop notifications, and the tab title reflects how many unread messages you have. I made a Firefox addon that brings that functionality to Google Inbox. It gives you a notification when new mail arrives and updates the pages title with the unread mail count. You can…
Here in our house we keep our plants on the threshold of death. They are in constant limbo as we remember to water them every few months. It is really quite disgraceful. Our sad sad plant. One day I looked at our plants and thought we needed to do something. Go and water them? The plant doesn t just need water. It is suffering from the systemic problem of us never remembering to water it. No.…
In my last post, I covered the speech rate problem as I perceived it. Understanding the theory of what is going on is half the work. I decided to make a cross-platform speech rate benchmark that would allow me to identify how well each platform conforms to rate changes. So how do you measure speech rate? I guess you can count words per minute. But in reality, all we want is relative speech rate.…
While working on the speech synthesis API in Firefox, I have been trying to figure out how to provide the most consistent experience across different desktop platforms. This is tricky, because each platform has its own speech API. Each API has slightly differing feature sets and idiosyncrasies. A good way to foresee the difficulties others will encounter when writing a cross-platform speech app,…
Reader View in Firefox makes reading articles, stories and blog posts enjoyable. It removes the noisy background ads and graphics, and gives you a clean single column optimized for your reading pleasure. As of today’s Nightly build, you will find an extra button in the Reader View toolbar: the Narrate button. Press play in the popup, and you will have the page read out aloud. You are now free to…
For the last three years I have had the opportunity to send out a reminder to Mozilla staff that Martin Luther King Jr. Day is coming up, and that U.S. employees get the day off. It has turned into my MLK Day eve ritual. I read his letters, listen to speeches, and then I compose a belabored paragraph about Dr. King with some choice quotes. If you didn’t get a chance to celebrate Dr. King’s legacy…
When we first made Firefox accessible for Android, the majority of our users were using Gingerbread. Accessibility in Android was in its infancy, and certain things we take for granted in mobile screen readers were not possible. For example, swiping and explore by touch were not available in TalkBack, the Android screen reader. The primary mode of interaction was with the directional keys of the…
Every committed Mozillian and many enthusiastic end-users will use a pre-release version of Firefox. In Mac and Windows this is pretty straightforward, you simply download the Firefox Nightly/Aurora/Beta dmg or setup tool, and get going. When it is installed it is a proper desktop application, you could make it your default browser, and life goes on. In Linux, we rely much more on…
Now that eSpeak runs pretty well in JS , it is time for a Web Speech API extension! What is the Web Speech API? It gives any website access to speech synthesis (and recognition) functionality, Chrome and Safari already have this built-in. This extension adds speech synthesis support in Firefox, and adds eSpeak voices. For the record, we had speech synthesis support in Gecko for about 2 years. It…
td;dr Look! A flashy demo with buttons ! Background A long time ago, we were investigating a way to expose text-to-speech functionality on the web. This was long before the Web Speech API was drafted, and it wasn’t yet clear what this kind of feature would look like. Alon Zakai stepped up, and proposed porting eSpeak to Javascript with Emscripten. This was a provocative idea: was our platform…
The Internet is a global public resource that must remain open and accessible . — Mozilla manifesto Mozilla invests in accessibility, because it’s the right thing to do. We have staff, a team of engineers, who exclusively focus on accessibility in our products and play a positive influence in the general accessibility of the web. This has paid off well, Firefox is well regarded as a leader in…
An understated feature in desktop Firefox is the option to suppress the text and background colors that content authors choose for us, and instead go with the plain old black on white with a smattering of blue and purple links. In other words, 1994. Why is this feature great? Because it hands control back to the user and allows people with visual impairments to tweak things just enough to make the…
You’re welcome. When you have a hammer, every problem looks like a nail. In my case, I have a 3D printer, and every problem is an opportunity to stare at the hypnotic movements of the extruder. It has a nifty hinge/magnet mechanism, here is a video: You could download and print this via the thingiverse page , or you could check out the github repo and hack on it. Some lucky duck has me as a…
Anyone who comes from a pita-rich country to North America knows that you really can’t get your hands on good pita here. I came across a recipe in Hebrew that is really good, and makes fantastic doughy pitas with nice pockets. You need: 1 kg of white all-purpose flour 700 g warm water 2 tbsp salt 2 tbsp brown sugar 1 tbsp + 1 tsp yeast 3 tbsp olive oil pizza stone In a large bowl, sift in the…
There has been discussion recently if websites should have the ability to detect whether a visitor is using a screen reader. This was sparked by the most recent WebAIM survey that highlights a clear majority of users would indeed be comfortable divulging that information to sites. This is not a new topic, there is a spec in the works that attempts to balance privacy, functionality and user…
You may have read the news that Ehsan will be end of lifing his github gecko mirror . Having a current mozilla-central mirror on git has contributed to my mental health, and has generally allowed me to be a better human being and not drown in self pity and misery. So thank you Ehsan. Luckily, the RelEng team has picked up the baton, and have a git mirror of their own running. So go clone it .…
For a little while now, there has been an apps “ Show and Tell ” session hosted by Mozilla where app developers could showcase cool things they are working on. Last Friday, I got the opportunity to show off our Screen Reader emulator, and how to use it to test web apps. If you could bear the bad audio, you could watch the session here .
This is a second post in a series about making Firefox OS apps accessible to blind users. You could read the intro here , and a post about labels here . The Gaia Clock App has a pretty analog view, with ticking hands. You can stare at it and wonder how generations past were able to divine the time of day from a few muted lines. The analog clock should serve the same purpose for blind users as it…
After my previous post , about labels, @ted_drake commented “ Is there a reason why you didn’t simply add text to the button? ” which is a good question! The short answer is, we don’t want to render the text in the button. Instead we want to keep it a graphical icon. But this question demands an emphasis: WAI-ARIA is a last resort, it is designed to be a stopgap that augments conventional HTML…
This is the first post in a multi-part series where I will walk you through all the steps I took to make the Gaia Clock app accessible. Now, as of this posting, these changes have not been merged into Gaia, not even reviewed. You could follow the entire effort to make the app accessible in bug 921201 In this post, we will cover the most cliché web accessibility topic, and that is properly labeling…
Hello! This is a first post in a series that will outline the challenges and remedies for making an accessible app in Firefox OS. First you may ask, accessible to whom? Good question. Accessibility is a very broad term. There are many reasons why Firefox OS would not be available to an individual. In this series we will focus on making apps that are accessible to blind users. Secondly you may ask,…
I still exist. Looks like this blog does too. It has been almost 2 years since I joined Mozilla s accessibility team. I haven t been posting much, but it has been a fantastic and prolific period. We now have a great accessible Firefox for Android , with new features coming down the line every week. More recently, I have been working on making Firefox OS usable by blind folks. Marco made a great…
The last post seemed to get some attention. I also think it has been misunderstood. So I would like to briefly reframe it. It wasn’t a rant about GNOME Shell or about design driven development. Neither was it a dismissal of the urgency for a strong developer story. I like the fact that we take risks and innovate in design. I also think that our developer workflow is broken, and fixing it is a…
I wanted to give my one cent about the GNOME project, and where I think it could be successful. It would be two cents if I were actually involved in any constructive manner, but I am not. So it is one cent. Ever since I started contributing to GNOME, the looming questions have been mobile, web, and social. Every keynote at GUADEC has tugged us in that direction, or promised to “reboot” the effort.…
I didn’t go! When I finally rolled up my sleeves and turned from a user to a contributor, my main interest was GNOME. Everybody was saying back then, in 2005, that the desktop is done with. The future is the web, the future is mobile. But I was stubborn; I loved the user-centered attitude in GNOME and the fantastic governance and community. I found myself working on accessibility for users with…
I just landed the final set of patches that will enable explore by touch for Ice Cream Sandwich screen reader users. If you use our nightly builds, you should probably see this feature in Tuesday morning’s build – if it all works out. One of the things that I am most proud about is our focus on the core Android accessibility experience. Being “accessible”, is more than just providing a rich set of…
I am in to the second hour of watching Firefox for Android compile, and I thought it would be a good chance to test this blog of mine. It has been relentlessly hacked for over a year until I decided to move it to wordpress.com and be done with it. I need to follow up with progress posts about Firefox mobile accessibility, and fanboy posts about GNOME (it sucks that I am not going to GUADEC this…
Hi again. Remember my first post to Planet Mozilla? I hope not. Sorry for the male enhancement pills spam . Please stop contacting me for orders. I am in Toronto right now, spending a week with Mobile folks. It has been about 6 weeks since I started working on a mobile extension, and the list of dirty tricks we employing to get things done is growing. Some of these hacks are there because there is…