Accessibility

Table of Contents

Understanding the Macromedia Flex Experience Model

Design Goals of a HALO Application

HTML is popular, in part, because it presents a very clear and simple model for user interaction. Clicking a link or image usually gives you an immediate visual cue that something is happening (the browser window momentarily goes blank while the new image or page loads) and the Back button gets you back to where you came from, so you feel safe to explore the web.

The risk of using whiz-bang technology and complex interaction models to deliver applications is that you reduce usability and confuse users.

Macromedia has created some basic high-level design principles for HALO applications that attempt to guide developers in using the new, expressive power of HALO in ways that are appropriate to the task. We hope they will improve rather than degrade the user experience. The following are not intended to capture the entire science of good UI design or usability (there are plenty of books written about that), nor will you be assured of creating an effective application if you follow them. These goals are simply a few design-oriented ideas to aid to the process you are already following:

  • Simplicity and clarity. Surface the most common controls of an application at the top level and de-emphasize, or hide, less-used functionality until users need it; then expose it naturally. Use design to make an application feel comfortable and easy to use, not overwhelming. Group related information (panels) clearly, giving clear visual cues at every point, and using visual design to express relationships and hierarchy. This is pretty standard stuff but it's important enough to bear repeating.
  • Focus. Use panels to create clear and independent units that help users focus on specific tasks and relationships. Focus describes an effort to create purpose-built applications that solve specific problems more deeply, rather than broad-based, Swiss Army knife–style applications.
  • Content that's king. Really, it's all about the information you communicate to the user. Focus your design attention on how to express information in effective, natural, and visual ways. When you do use controls (buttons, etc.), make the affordance (visual cues) in the UI clear but understated so that the content is primary.
  • Direct manipulation. Acting directly on an object is usually the most effective and intuitive way to affect it. If a chart needs to be resized, allow users to click on the edge and drag it outward. If a data value can be customized, let users click right on it and change its value. If users want to read an article more, expand the space they're already in to show them more rather than taking them somewhere else entirely.
  • Visual continuity. Filmic transitions preserve the continuity of the experience so users never feel or get lost. Help them develop a tactile feel for the effect caused by each action they make.
  • Reuse and consistency. Consistent navigation patterns and deep in-place layering (fly-outs, carousels, thumbnails, and the like) lend a feeling of trust and predictability that make users feel safe to explore your application.

If you study the Flex application examples, you will notice many of these principles in action.

One question about Flex that I sometimes get is why Flex applications don't look like OS-native applications. The simple answer is that they aren't OS-native applications; they are Internet applications that run in all different browsers and platforms. Macromedia has not tried to make the set of components in Flex mimic the look and behavior of OS components exactly because this would set users' expectations for the look, style, and interactivity of controls running on web pages that could not possibly be met across platforms.

In addition, the desktop/OS model for controls is not appropriate for the rich client Internet. The web has changed people's expectations. Businesses and individuals want to customize the look and feel of applications so they match their brands and express their individuality. We believe that a modern application model for rich client applications should enable and support this expectation, while setting new standards for consistent interaction patterns and visual cues so that users don't become confused.