Friday, March 28, 2008

My Web-2.0 Application Is Feeling Accessible

If you feel up to Web hackery and want to win a cool T-shirt in the bargain, see My Web-2.0 Application Is Feeling Accessible!. You can see examples of what you can achieve with this framework in the AxsJAX showcase.

Thursday, March 06, 2008

Emacspeak WebSpace --- Interaction-Free Information Access

A few months ago, I started an Emacspeak module called emacspeak-webspace that is now ready for wider use. The goal of this module is to unobtrusively fetch useful information from the Web and communicate it at those times that one is context-switching among tasks. I gave a talk on user interaction at the last Hackers Conference in November; in the same session, there was another talk whose gist was a plea for less human-computer interaction --- motivation: User Interfaces are nice, but wouldn't it be nice if one didn't have to explicitly interact with the machine to get information? The speaker coined the term Zen interfaces in that context, something that stuck in memory long after the talk.

I built that thought into module emacspeak-webspace. Conceptually, it consists of smart fetchers that fetch information asynchronously from the Web, and smart displayers that communicate this information at appropriate times. These are detailed below.

Fetchers

There are two fetchers at present:

Weather
Fetches current weather conditions for your location.
News
Fetches headlines from a customizable collection of ATOM and RSS feeds.

Note that this module is not intended to be an RSS or ATOM feed-reader; for that, use module greader --- an API-based Google Reader client that is bundled with Emacspeak.

Communicating Useful Information Usefully

With the information in hand, the next question is how does one communicate this information usefully, and what does at the appropriate time mean? Things to avoid:

Interaction-Free
Do not require explicit user action to hear the information.
Avoid Chatter
Avoid creating an auditory user interface that chatters at the user all the time.

These are conflicting constraints. Notice that in a visual interface, one can meet the interaction-free requirement by displaying the information in a toolbar or sidebar and allow the user to ignore or absorb the information at will.

Emacspeak uses Emacs' header-line to display the continuously updating information. This meets the interaction-free requirement. The header line updates every time Emacs updates its display, and automatically speaking it would produce too much feedback. But Emacspeak doesn't automatically speak the header-line; it only speaks it when there is a context-switch.

How To Use

Here is how I am using emacspeak-webspace at present:

Weather
Activate weather display in the calendar and scratch buffers.
News
Activate feed headlines in selected shell buffers.

You hear the updated information when switching to buffers where the webspace display is active.

Activating WebSpace Displays

Webspace displays are activated via the following commands; all Webspace displays will be placed by default on prefix key hyper-space

  • emacspeak-webspace-headlines: hyper-space h
  • emacspeak-webspace-weather hyper-space w

Share And Enjoy, And May The Source Be With You!