Ubiquity has been an amazingly successful project, and it continues to grow and evolve. There’s a huge active community of users, command authors, and core developers. Over 200,000 people are using Ubiquity every day, with hundreds of command authors, and thousands of commands in the wild. New Ubiquity commands have been written and shared by the community, extension authors, and developers of websites and web services. The user tutorial is available in 10 languages, thanks to community contributions.
At the same time, it’s clear that Ubiquity is not for everyone. Ubiquity users are people who:
- are willing (and brave enough) to experiment with alternative, natural language keyboard style interfaces
- use web applications extensively for email, calendaring, document editing, online collaboration and most of their day to day tasks
- understand that the web is a collection of data which can be remixed, mashed together, and edited by users as well as by web developers
- are familiar with Firefox Add-Ons and willing to install Ubiquity on all their machines
- know at least some basic English
However, the underlying benefits that Ubiquity offers are universal. All internet users perform a given set of tasks regularly – and many of these tasks require the same set of steps to be taken every time. The browser should facilitate accomplishing the end-goal and help reduce the number of steps to reach that goal whenever possible.
That’s where Taskfox comes in. Taskfox is the codename of a project to uplift parts of Ubiquity into a future version of Firefox (ie, after Firefox 3.5 ships). The basic idea behind Taskfox is simple: take the time-saving ideas behind Ubiquity, and put them into Firefox. That means allowing users to quickly access information and perform tasks that would normally take several steps to complete. This does not mean “ship Ubiquity with Firefox”. While the two projects share some common ideas and use cases, the goals are not all the same. What would this look like? We don’t really know at the moment, though we have some ideas.
When thinking about Taskfox, we’ve been trying to keep in mind three basic principles:
- Taskfox must help users accomplish tasks
- Taskfox must be useful to all Firefox users
- Taskfox must be fast, secure, and extensible
The workflow that people currently have while using Firefox is very important. Interrupting that workflow by being too “helpful” would be very disruptive, as would forcing a completely new workflow. Unfortunately, this is something that Ubiquity does – in order to use it, you must adopt a new workflow. Taskfox needs to be available within your existing workflow – working with it, not against it.
In addition to being part of your workflow, Taskfox also needs to be obviously reachable. One of the issues many people have with Ubiquity is figuring out where to start typing. By using a method people already use to perform tasks, we can get this connection. Zac Lym’s usability studies found people expecting to be able to type into the location bar. This makes sense, given that location bar is by far the most used area for performing the most universal action (going to a website).
Available and useful to all Firefox users
One of the things that Ubiquity is known for is its use of natural language for input. Firefox ships in more than 70 languages. These two things do not easily mix.
So let me be blunt here: natural language input is NOT a goal of Taskfox. It never has been, and it never will be. Nor is it intended to bring the user and the web together via language.
However, Taskfox will be localizable. All locales are first-class citizens here. This will include both string localizations and locale-specific content providers (just like there are locale-specific default search engines). This also implies that Taskfox will include far fewer commands by default than Ubiquity. That’s OK, though, as we want to pick and choose the ones that are felt to be most useful to the widest audience.
Speed, Security, and Extensibility
In order for Taskfox to succeed, it needs to not regress performance. As we develop the project, we will ensure that we do not have a negative impact on any of the key performance metrics by which Firefox is judged.
Also, Taskfox will not include the ability to subscribe to Ubiquity-style command feeds, as this has the some potentially nasty security implications. Similarly, its not a playground for experimental UIs – it needs to be usable for power users and grandmas alike (and even power user grandmas), not just the early adopters.
However, there will be an API for extension developers to use. This will be available to normal Firefox extensions – and so any such extensions will go through the same security and quality checks that any other extension on AMO would go through.
Right now, it’s mostly me, with some help from Atul and Jono and early user interface thinking from Alex and Aza. I’m working on migrating code from a proof-of-concept extension to a new Incubator repository at http://hg.mozilla.org/incubator/taskfox, which contains a clone of mozilla-central (ie, the bleeding edge of Firefox code). As the project progresses, we expect to occasionally merge into mozilla-central and be available in Firefox nightlies. Until then, you’ll have to build Taskfox on your own, though we’ll also occasionally post some experimental builds for people to try out.
Also, we’ve set up a Taskfox page on the Mozilla Wiki to document everything about this project.
Starting this week, there will be public meetings held every Thursday at 3:00pm PDT (10:00pm UTC). You can find when that is in your timezone here. These are open to everyone, no RSVP needed. To join in, dial in to one of the following numbers:
- +1 650 903 0800 x92 Conf# 8604 (US/International)
- +1 416 848 3114 x92 Conf# 8604 (Canada)
- +1 800 707 2533 (pin 369) Conf# 8604 (US Toll Free & Skype)
You can also join #fx-team to chat about Taskfox on IRC, or discuss it on the mozilla.dev.apps.firefox newsgroup. We welcome anyone to help out, file bugs, write patches… get involved!