Moz
illa's Design Challenge Spring 2009 Proposal
Mozilla Lab’s
Concept Series launched an open call for the community with the aim to provoke thought, facilitate discussion, and inspire future design directions for
Firefox, the Mozilla project, and the Web as a whole. The question for the challenge is:
“What would a browser look like if the Web was all there was? No windows, no unnecessary trappings. Just the Web.”Collaborative Multitasking
The hardest thing about designing for Firefox is that the solutions have to meet the needs of everyone, and everyone is different. The best thing is to focus on one thing rather than the whole experience, so I want to be able to use my browser as my virtual desk.
As a student I need to work during a day or a week on multiple subjects (testing, programming, designing, etc), so I must undertake several tasks in the browser at a time, each of which in turn may require performing several dependent sub-tasks. In average I have more than 50 tabs opened for a given task.
My concept of tabs and bookmarks are some kind similar. I have two types of bookmarks that I manage:
- Delicious bookmarks - where I collect pages that I like and need for a longer period of time (actually I don't intend to erase them - they are my vault of precious things I found);
- Firefox bookmarks - where I group the tabs in folders, depending on what topic I need them (testing, programming, etc). I use Foxmarks to sync between school and home. After I finished the homework or research I completely delete all the tabs (lightweight bookmarks) related to the topic.
Tabs are also separated in :
- tabs that I need for a certain subject, and I bookmark in Firefox;
- tabs in that I just browse, and that have a very short life cycle.
I think that we need to make a separation between the two types of tabs. I'm especially interested in my Firefox bookmarks (tabs) because they get my work done, so I introduce the concept of organizing tabs in working spaces. A working space lets you save tabs in task based contexts.
So I would like to go in the
collaborative direction, having friends sharing experiences and being able to get your friends insight on research and work. Mozilla tried something in that direction with
The Coop and with
Weave, in the collaborative bookmarking use case.
I would like something like this: I work on my testing project with my friend Raluca. Each one has a different path flow to make searches and get things done (R for Raluca's flow, C's for my flow).

Tree Style Tab is a great add-on that does something similar and lets you see your flow in a tree style. This helps you see the relation between pages, having connectors between tabs that have an opening relationship. I colored siblings with the same colors, going in a gradient from root to leaves (the coloring of tabs is already done with
Chromatabs).
If I could use and see my friend's shared flow on the same research I could find out (through recommendation) about TestNG (R1.1.2) and I could share with Raluca the Cobertura (C1.1.1) tool, having as common point the JUnit page (C1.2 = R1.1.1.1). Seeing this flows as sets (or multisets), user could do unions (we divide the research in parts R and C, I have to research C, but I need the whole flow (R+C) to study), intersections (have we reached a common result?), etc.
Having access to the user's flow, you can find relevant information like
user habits (using the tab life cycle,
bounce rate, time spent, etc),
preferences and also I could know how the user solves problems from a specific topic (I can browse randomly when looking at design inspiration, but I'm very accurate when it comes on programming topic). This flow would be useful for ubiquity recommendations on future actions that need to be done in a certain step. Another thing that would be interesting would be version control on collaborative sessions.
So I start playing with trees representations. You can see two examples that show the same trees represented with different visualizations. The numbers associated with the nodes represent the number of children the node has.


In games, you enjoy the experience of the game and continue your flow without interruption (full view), but when you get lost you can access a map or see what quest you're on. This is done using multiple views of the content you're working on, especially a general view of activity. Humans are better at remembering through visual maps than by scanning linear lists of tabs, so I choose the tab's
isometric view for the bird's eye sense of control and the compression of used space.
Chromeless Elements
The browser window is separated in three parts:
- address bar;
- menu;
- tabs.
that
auto-hide when not needed, but always present in a new blank tab (so that the user can learn their position). The parts are overlaid on the web page, so no resizing is needed when auto-hide is done.

1. The address bar

You have the buttons: "back", "stop", "go to", "close current tab", "add new tab". The browser should have multiple ways to access the functionality (from buttons, from the menu, key shortcuts) depending on how advanced the user is. You can have different functionalities on double clicks or single clicks (example "back" button: 1 click = go one page back; 2 clicks = navigation history).
The address bar integrates the existing awesome bar + ubiquity + stuff like: "history" (H), "bookmarks" (B), "find" (F), the search engine - this way you integrate all the components in one (also you don't need to have separated search for bookmarks or history, you integrate them in the awesome bar). The awesome bar is gonna be the heart of the browser, the command center for all your actions.
The desired direction is that the user should be able to give commands in natural language from the awesome bar. For this to happen, the first step is to replace the URL (formal representation) in the address bar with the title (informal representation of page), especially because we don't have a titlebar in a chromeless environment. Having this in mind, the awesome bar should integrate searches on page titles that have not been visited before (example "intitle:" just like Google's "inurl:" ). The beginner user don't need to remember the exact address for his favorite web site. The advanced user still has access to it (hover - show URL, copy, edit).
2. Firefox Menu

The menu is in the right corner, with a gray tone so it doesn't distract the user. When you hover it it becomes bigger and colorful. It has the main functionalities that have associated an icon (you can select from the Preferences if you want your menu to be "icon+text" or just "icon"). It can have more actions presented (like Help, etc).
All the other actions are contextual:
- page: save as, print, zoom, etc;
- text selected: copy, paste, etc; (also the awesome bar is gonna suggest (arrow down) actions like translate, highlight, etc).
I've noticed that people are trying to integrate pie-menus for the contextual actions. Instead of arranging them in a circle you can put it like a
dial keypad with icons instead of numbers.
You close Firefox by selecting the most upper right X (visible when hovering the logo, or key shortcut).
3. Tabs

In the down-left corner you have the "Space selector" that enhances context switching. A working space lets you save tabs in task based contexts. The spaces that I propose for this example are Programming, Design, Testing and Mozilla, which contains tabs regarding the specific topic. If the folder icons is gray it means you don't work in a current space.
The spaces work with sessions. In the current session the browser saves the opened tabs to the selected space. If you gonna receive funny pictures from messenger friends, the life cycle of the tab is gonna be very short (you gonna close it after you view it). This way you can replace the "one-click" bookmark with "auto-bookmark" per session. If you don't want any tab to be saved you can work outside spaces. Also you could add
Personas to personalize spaces (to get in the work or hobby mood).
Double clicking the folder icon will activate the isometric (perspective) view. The
isometric view could show me different aspects (multiple views - selecting one will reorganize the content) of my tabs, differentiated by relevance or grouped in meaningful clusters like:
- "Flow view" that shows the user's path to the pages (this is the only view I made mockups for - see below);
- "Personalized view" where I could be able to arrange my tabs how I want (just like you can do on your desktop). This could be done by drag&drop.
- "Domain view" that has a domain separation (all tabs from mozilla.org domain) of tabs (this is already done by ColorfulTabs).
- "Semantical view" where tabs are grouped in semantically related groups (this is definitely a future aspect, related to the adoption of semantic web).
- "History view" where you can see the browsing history of the tabs grouped by days, months (time perspective) etc. This way you combine history + bookmarks in the same view.
- "Social view" where you can see what tabs your friends are sharing with you. You could also group friends in groups. The groups could be also semantical determinated by XFN.

Using your mouse you can zoom in or out through the spaces, just like in a game or in Google Maps.

You need the colorful tabs representation to better identify the relationship between tags, but once identified you can switch to the "Preview Mode" that shows thumbnails of pages (with the border in the color of the selected view). Hovering on one element you can visualize more information about it, like thumbnail, page title, number of children. If the selected page is a root, you gonna see highlighted (with gray shadow) the domain of children.

Trying to have an authentic virtual desk, I would like to see in my browser not only web pages, but pdfs, images, videos that are related to the space I'm working in (towards the Web OS). You can bookmark the page or see other spaces that contain the same page.

Once you select a space or subspace the tabs are gonna be colored according to the current view you have (flow, domain, semantical, etc). You have the current page highlighted and you can see the related tabs (on flow, semantical, domain, etc). You could also highlight tabs that haven’t been looked at yet.

Viewing a page from the Mozilla space is gonna look like this:

Another nice aspect would be to see statistics about your space activity. If we consider that deleting all tabs means I finished my research, we need to monitor the variables:
- red = number of deleted tabs;
- gray = number of tabs from previous session that are still in the space;
- space color = number of recently added pages.
Having this number I can calculate what percentage of the space is finished.

I could continue drawing mockups on different aspects of this concept but please let me know what you think. I hope you like it.