Usability Challenges in RIA applications
The advent of Flash- and Ajax-based applications a few years ago was met with skepticism by many renowned usability experts (such as J. Nielsen). Fortunately, a lot of progress has been made, in the frameworks themselves, through the rise of standard design patterns and, for a large part, thanks to numerous tools that implement web-development best practices, such as JViews or Elixir. Nowadays, issues with the browser's back-button, or accessibility for users with special needs, are more or less resolved. Developers are generally aware of many usability pitfalls to avoid when designing for the web.
Still, usability studies and practice teach us some valid points to remember when designing a Rich Internet Application (RIA) application. This post explains some of the issues your users may encounter and how to avoid them by following a user-centered design process.
First, let's define what we mean by usability. Among several propositions, the ISO 9241-11 norm states that the quality aspect of usability is “the extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use.”
This definition includes four elements that are necessary to create a usable system:
A usable system is one that is designed to consider all of these aspects. This post by Donna Maurer somewhat refines this definition.
The User Mental Model in web applications
Cognitive psychology tells us that in a particular context (here, desktop or web), users build a mental model of how to operate the interface: they create expectations from the context to find out which operations are available and what to do next. "Like a pane of glass framing and subtly distorting our vision, mental models determine what we see." - Peter Senge.
One of the key challenges when designing a RIA is to keep in mind that you're trying to make the best of two worlds, while preserving a consistent interaction model is paramount. This means that somehow, you'll need to take into account the interferences brought by those coexisting models and provide ample visual cues when you're proposing alternate or novel interaction methods.
What kind of interactions for your web application?
Determining the context of operations leads to the notion of task. A task is a procedural description of what the user has to do, framed within the context of the user's mental model. Designing proper interactions therefore requires making tasks explicit to determine what could or should the mental model be at any point in time. It turns out that fully eliciting tasks is extremely tedious. That's why it is often limited to mission-critical situations, such as air traffic control. It is also of limited use in the context of web applications, as many users may come to your site with different goals and expectations.
In the design phase and for interface specifications, usability specialists often resort to usability guidelines which allow checking for user interface consistency in a reasonably efficient way. There are several levels of guidelines, from the broad recommendations on the proposed workflow to focused considerations on layout and visual appearance of widgets. J. Nielsen's 10 heuristics, for instance, are of a very general nature and can be applied in pretty much every context. Ben Shneiderman's direct manipulation principles are very useful and easy to use guidelines to develop highly interactive applications. On the desktop, all major constructors provide a set of user interface guidelines that are to be followed for a particular platform. In the context of the web, though, they are inapplicable, as web applications follow a "menus, lists and forms" interaction style rather than direct manipulation (this page at interactiondesign explains the stylistic differences). One can resort to some standard web design guidelines, such as the Research-Based Web Design & Usability Guidelines.
The RIA platforms are somewhat too young to have given rise to an agreed-upon body of guidelines. Flazzom, targeted at the Flash platform , but applicable for the most part to other web platforms, comes close enough to meet the needs of a web designer. Rather than guidelines, pattern libraries, such as yahoo's, designed by experts, help implementing usable and rich web applications: because they are used by many sites, users acquire quite rapidly the right mental model to use them with profit.
The user at the center of the design process
Various methodologies exist to this effect: collaborative design, user testing (inside the usability lab or in situ), longitudinal studies of users in context, surveys, usage trace analysis... This table at UsabilityNet provides an interesting overview.
Choosing one or more methods is a matter of available resources, appropriateness, design stage, and, perhaps, a touch of personal taste. Still, all those methods rely on a fundamental observation: as a designer, your judgment is too biased to let you find flaws and limitations in your design, and to judge of its relevance to meet the user needs. Only target users, when carefully led to express their approach to the task, can guide you towards a design they appropriate themselves.
In summary, while RIA applications promise in general much better usability by expanding the realm of possibilities, they also raise particular usability challenges. In a large part, those challenges are the result of the additional power they give to the designer to mix and match interaction techniques and styles. We hope this post helps you get a sense of what user centered design can bring to your design activity to help you satisfy your users better and more cost-effectively. Perhaps the essential recommendation should be: just like for any other interactive application that will be used by someone else than its designer: involve your target users in the design, from start to finish.
Thomas Baudel, Sophie de Bonis & Sandra Belfils