Web Based Application
Designing a good user interface is never easy, but designing a web application interface is especially challenging. In this article, I first give you some general advice about design considerations for web application interfaces and about how to pick the appropriate implementation technology. I then dive into the details about one aspect of a web application interface using JavaServer Faces, specifically, how to customize the standard error messages.
Design Considerations
There are many things to get right in order to end up with a functional and easy to use web application interface
Navigation:
Since a web application runs in the browser,users expect to be able to use the browser's buttons for navigation, such as using the Back button to return to the previous page. However, handling this type of navigation correctly is tricky, so it's important to design an interface that encourages the user to use other means for navigation. I recommend that you design the user interface to look as much as possible like a traditional graphical user interface (GUI) - using common GUI widgets, such as trees for selecting items, tabs to show different aspects of selected items, and menu-bar links at the top. Also, keep in mind that a web application is task-oriented, comprised of pages that must be entered in a specific sequence, rather than free-form set of links as in a traditional web site. Users must be allowed to jump directly to specific pages only, such as the main pages for different tasks.
Bookmarks:
Bookmarking is related to navigation and can also be hard to support in a web application;you don't want a user to bookmark a page that should only be accessed as a result of submitting a form, for instance. Although I dislike HTML frames on a regular web site, frames can be useful in web applications because they prevent users from bookmarking individual pages.
Web application limitations:
Let's face it: a web application can never be as interactive as a traditional GUI application, at least not with the current browser technologies. In a GUI, it's easy to let the user select multiple rows in a table and delete them all in a single click. In a web application, on the other hand, you must handle this differently, for instance by placing a checkbox on each row that the user can check to select a row. A traditional GUI also makes it easy to dynamically enable or disable input widgets based on user input, such as when a radio button or a checkbox is clicked. Implementing dynamic interface components in a web application typically requires JavaScript code, so users whose browsers have JavaScript disabled won't be able to use the application. Unless you have complete control over your user base, you should provide other ways for presenting different options to users, such as combining radio buttons with a button to activate the new choice, or using links for the choices.
Page size:
Although people are accustomed to scrolling around the page to read a complete article online, say, users find Web applications easier to use when all information related to each task is contained in a single readable page, or if scrolling is contained in just part of the page (with the help from internal frames), or by using Next/Previous buttons for a large table, for example.