This is a live document based on the original proposal submitted to Mozilla and the original project announcement.

This documentation is aimed at both users and developers while DeveloperDocumentation is aimed at developers.

Introduction to Jambu

Adults and children with limited or uncontrolled physical movement are often unable to easily access a computer via the default mouse and keyboard devices. Many use AlternativeInput devices such as switches and head mice and while there are several AlternativeInputProjectsAndProducts supporting these users it is felt that there is much room for improvement. There is currently rather less activity developing these devices in comparison with other assistive technologies such as screen readers, screen magnifiers and voice input software.

Meanwhile the Web has become a vital resource for obtaining information, communicating with others and performing transactions. With the rise of the so called Web 2.0 many programs that have been found on the desktop are now also available on the web.

Thus Jambu aims to make the web and computers in general easier and more transparent for users of switches and AlternativeInput devices.

Vision

  • Empower individuals through tailored access to pervasive technology;
  • Foster innovation in AlternativeInput technology;
  • Provide a platform to encourage new applications;

In order to achieve these goals we aim to:

  • Develop a simple yet powerful and flexible AssistiveTechnology for AlternativeInput users;
  • Provide optimal and transparent user experience such as direct 'in application' selection and flexible input device usage;
  • Enable customisation through option dialogs, declarative configuration and scriptability;
  • Build on existing AlternativeInputProjectsAndProducts such as GOK and SAW;
  • Encourage project input from users, supporters and researchers;
  • Introduce developers of more general software to accessibility requirements for AlternativeInput;
  • Utilise community driven Open Source development practices and user involvement;
  • Make freely available via liberal Open Source licensing;

These aims are shared with various accessibility groups such as OATSoft who aim to bring users and developers together through Open Source and the OSK-ng group who are looking at the next generation of On Screen Keyboards.

Strategy

The current first project phase focuses on improved web access. With more daily activities becoming available on the web, improving access has the potential to aid independence through better access to information (eg. news), engagement in social activities (eg. email) and performing transactions (eg banking).

Windows is the target platform as currently most users and supporters are using it, though Linux is gaining popularity on the desktop.

The Firefox web browser is used for web access due to its excellent accessibility features such as full keyboard navigation and in particular its implementation of the latest Accessibility APIs that allow control from other programs. Firefox also brings good standards conformance and is a persuasive example of the quality of Open Source software 'products'.

Critical next steps are:

  • Extending support to Linux and Mac computers, thus increasing user choice;
  • Enhancing user interaction through a choice of devices and gestures provided by a capability palette;
  • Providing attractive visuals and multi-media such as graphics, sounds and speech;
  • Facilities for creating communication devices (AAC VOCAs);
  • Making the most of emerging web 2.0 features such as social software;

Requirements

It is important that user requirements are the primary consideration when making design decisions. In order to help keep this focus UserPersonas have been created to represent archetype users.

NonFunctionalRequirements?

  • Simple but efficient to use;
  • Attractive (fun);
  • Easy to tailor but complex configuration possible;
  • Simple to get, install and start;
  • Intuitive;

FunctionalRequirements?

Design

In order to allow use with other programs Jambu is a separate program rather than a Firefox Add-On.

Leverage existing projects (ideas, experience and code)

The favourite implementation approach is to create a Mozilla platform (Gecko) application packaged with XULRunner. This would provide an flexible and cross-platform program that would be a easy to extend, and have a great chance of attracting additional contributors. There are several large and successful Gecko projects (Komodo, Songbird) which demonstrate its utility. The idea is to build the keyboard widget using a combination of industry standard SVG and Mozilla XBL. Where possible, scripting will use the Python programming language. This combination of technologies was inspired by the XULRunner Clock and allows for a scaleable, skinnable interface with an attractive look and feel. Semi-transparent overlays are among the possibilities. The XBL widget abstractions would make it easy to define new keyboard layouts.

The second possibility is to work with the developers of OnBoard? and extend that. The obvious advantage is that there would be more developers right away. Unfortunately, it does not currently provide a declarative system for designing keyboards as XBL would.

Work Plan

See

Success Criteria

See milestone:"Accepted by Mozilla"

Future Phases

See FuturePossibilities


OtherResources