HomePage | SiteMap | Refresh| EditPage| RenamePage| WikiHelp| LogIn

HawkingToolbar

SEE ALSO Hawking Toolbar main site: The Hawking Toolbar for Firefox


The Hawking Toolbar



“My body may be stuck in this wheelchair, but with the Internet my mind can go to the ends of the universe.”
- Stephen Hawking, University of Cambridge Physicist, 1/6/97


Download/Current Status

Screenshots!

Class Presentation (PowerPoint)


The COMP 190 Experience:
I hope others reading these pages will be inspired at least to consider taking this amazing class. I came in through the back door, in the sense my interest has been in collaborative technologies, but I hoped I could at least dedicate one small part of my university career to doing something for someone else.

This course gave us more than just a deeper understanding of users with disabilities: every class was a revelation in how different people experience the world on a mainly sensory level which in turn affects their point of view in surprising and fascinating ways. I hoped to give something back with the project, but in fact the knowledge that something I worked on could have a real, positive affect on others' lives fueled me, and I got as much out of the project as I put in.

What's more, I found that accessibility collaboration is (unfortunately) a largely untouched area of research, one I hope to pursue in graduate school. It seems obvious that many disabled individuals are unnecessarily isolated due to the barriers we erect for those not working the same way average users do. It seems equally obvious that computers can make those barriers moot, and this project is a beginning: first, helping to open the world to disable users, as Hawking says above, and second, to bring the world to users with disabilities on a basis of equality.

On a technical level, I learned more about JavaScript than I'd ever cared to. It was humbling to realize I was wrong to assume it is only a toy language; in fact, it has surprising power. Although it has it's limitations, and a frustrating number of gotchas (it's not Java!), it also has a great regular expression engine (essentially copying Perl's), and a great security model; more importantly, it's the only thing that works cross-browser, cross-platform, and with it's security model it facilitates plug-ins that can reasonably be trusted. If not for that, it would be much harder to convince users I don't know to use this product. I also learned about Mozilla's XUL (XML User Interface Language), an interesting approach to making GUI design simple ... yes, simple. I've done quite a bit of programming in Swing, and like almost anybody who has done so, I try hard to avoid doing more. XUL takes care of the awkward listener/event interface that makes so much Swing programming turn into unmaintainable spaghetti-code. XUL makes it easy, makes it fast, makes it pretty powerful -- and it works.

The other great challenge has been working with the DOM (Document Object Model). The basic problems:
Since the goal is to make the physical appearance manageable for switch users with a programmatic approach, these represent significant problems that have not really been solved by anyone. I continue to work on a solution -- the basic heuristic is outlined in a paper I wrote for an ACM conference -- it is currently under review, so I cannot post the paper here at this time.

The main accomplishments were, in hindsight, merely based on learning about the DOM, JavaScript, and XUL. I've never been deeply interested in web programming, so I even had to learn a lot about HTML and CSS. Documentation on these things is surprising poor and inexact, even when voluminous. Most JavaScript documentation is written for webmasters, not toolbar writers. If it hadn't been for Gary's son's toolbar tutorial, this project would not have gotten far. Because of this, simple things like learning how to highlight images, simulate mouseovers and mouseouts, and learning JavaScripts bizarre threading model took a great deal of time to understand. Actual coding took a long time, mostly because documentation is so vague that many different attempts were made. In hindsight, it's not difficult stuff. If you're interested in writing a toolbar, read my code.


SEE TOP OF PAGE FOR LINK TO MAIN SITE


Overview:

The Hawking Toolbar is a plug-in for the Firefox web browser that frees individuals with severely limited motor abilities to explore the internet, without limits.

Unlike expensive commercial products, it is free and customizable. Published under the open-source GPL license, it can be enhanced or customized by anyone with the appropriate technical skills. By using a
Firefox plug-in we can deliver a robust product:
  • extensibility: it can be enhanced or customized by others
  • non-obsolescence: this standard Firefox plug-in will work with any new version of Firefox. The user is not dependent upon developers to upgrade the plug-in for each new web technology or new version of the browser
  • standard view: the user sees the same web page as others. This plug-in enhances a popular browser instead of requiring a specialized one!
For too many centuries, people with physical disabilities have been treated as inferior by society. Considering that one of the greatest geniuses of our time, physicist Stephen Hawking, lives with a debilitating form of Lou Gehrig's disease and yet continues to live a rich life and makes giant contributions to our understanding of the universe, it is obvious that this unfair treatment hurts all of us. Technology makes it possible for Mr. Hawking to communicate his ideas to us; he shows us that there is no definite correlation between physical ability and the greatness of the human spirit. This toolbar is a small tribute to him and all individuals who face the biggest challenge of all: our own prejudices.

The challenge:
Most of us take for granted the ability to navigate the web using a mouse and keyboard. But, like many physically disabled individuals, Stephen Hawking's physical motion is limited to controlling a simple switch with his hand. Others
may be more limited, such as only being able to raise or lower an eyebrow; however, this motion can be read and converted into an electronic signal to communicate choice. The challenge is to free all these users by letting them choose efficiently from among possibly hundreds of links on a web site.

The solution:
By using the Hawking Toolbar, the standard Firefox browser automatically cycles through the links of a web page, highlighting each link for a short period. The user selects a link by signalling to the browser (with their standard switch) when the desired link is highlighted. The plug-in also provides buttons that are cycled through: Back, Home, Favorites, and Options. Whether a user can control two switches or only one, the general solution is the same, but the use of two switches allows enhanced control and efficiency.

When the page is complex or has many links, the page may be broken into sections (typically the visible page will be divided into quadrants or widget/ frame areas). The browser will then cycle through these regions, highlighting each before scrolling down to the next part of the page. If the user selects a region then it is explored more fully by cycling through its component links or widgets. This option of region-scanning is a user-selectable choice.

Each user may customize the appearance and behavior of the link scanner to provide sufficient visual (and possibly audio) clues, and to provide the reaction time appropriate for each user to select a link, according to their specific needs. For more info, see the screenshots.

Implementation:
Mozilla .xpi extension file, using Mozilla's XUL for user interface. CSS to define buttons/ widgets, possibly XBL to describe bindings via CSS/DOM, and JavaScript to control behavior and to interact with DOM. Big thanks to Jonah Bishop and his Firefox toolbar tutorial.


Availability:
The Hawking Toolbar was released in Spring 2005 under the GPL free and open-source licence.
The toolbar is available for download from Professor Gary Bishop's Enabling Technologies page at UNC.
A current and/or experimental version is also available at the project website


Author:
Brett Clippingdale, Computer Science student at the University of North Carolina at Chapel Hill.

Project Advisor:
Gary Bishop, UNC Professor of Comp Sci, Accessibily Guru, Original Thinker (TM) and All-Around Nice Guy.

Email contact info:

brett (at) unc-dot-edu OR brett (at) clippingdale-dot-com
gb (at) cs-dot-unc-dot-edu

Inspiration:

Stephen Hawking (of course!), Physicist and Lucasian professor of Mathematics, University of Cambridge

Links:
Firefox
XUL
XUL Planet
XUL Tutorial
The Joy of XUL
XUL Toolbar Tutorial
XBL