• No results found

2.3 Existing Usability Tool Support for Web Developers

2.3.1 Generation of Web Pages

The functionality that is probably most frequently associated with web developer tool support is the creation and maintenance of the content that will be served by a website. Consequently, countless different tools are available for this purpose. Typically, a tool that is used during content creation will provide the initial HTML code, and the developer is unlikely to change any aspects unless they have a good reason to do so. Thus, there is a unique chance for the tool to “get things right by default”, i.e. to create initial HTML code that already satisfies as many usability principles as possible. This way, the chances of a more usable result are higher even if the developer is not overly interested in usability, and not aware of the reasons why the supplied default is output in exactly that way.

Assistance During HTML Creation and Editing

Adherence to the HTML standard is a prerequisite for website accessibility. The reason is that incorrect syntax results in undefined behaviour of different browsers, which might even include a failure to render the page at all. Even though most browsers are relatively forgiving with regard to syntax errors, every effort should still be made to provide a syntactically correct HTML document.

Even in the case that the developer inputs much of the HTML code manually using a text editor with HTML support (e.g. Bluefish,http://bluefish.openoffice.nl, see figure2.5), the editor can provide different template files with correct<!DOCTYPE>declarations and a basic structure of elements which the developer can base his work on. Furthermore, it can ensure correct nesting of HTML tags, warn about basic mistakes like missing altattributes in<img>

tags, or highlight other violations of the W3C HTML specification. More advanced editors allow the user to edit the page visually rather than at the HTML code level, so the editor can take further steps to improve the quality, e.g. by using CSS rather than HTML tables for the page layout.

Figure 2.5: Tools like Bluefish (left) or Joomla (right) can improve accessibility by prevent- ing common mistakes, e.g. syntax errors, or by generating a consistent menu structure.

Ensuring Site-Wide Consistency

Content management systems (CMS) are used to create all pages for a website according to the developer’s specifications. Typically, page content, page templates and other information is stored in a database and combined on demand when a page is requested. A CMS is an example for a system which is able to offer more advanced help for improving the usability of a site, by providing a separation of concerns – conceptually different types of data (page content vs. page template) are also stored separately. Furthermore, it allows generating parts of the HTML page content with a program rather than manually. This makes it easier to achieve site-wide consistency.

For instance, with a CMS like Joomla (http://www.joomla.org) it is usually easy to im- plement a consistent menu structure: If a new page is added, an appropriate menu entry is added to all “nearby” pages. In contrast to this, if the menu structure were updated manually on all pages whenever there are changes, this would be prone to errors which would negatively affect usability. A similar argument also holds for page templates: The same template is used as the basis for all pages, and updating the template is simple, whereas making the same change to all pages could easily lead to mistakes.

Automatic Generation of Pages From Models

Many web engineering solutions come with advanced tool support. (The most important ap- proaches are examined in section3 in greater depth.) A primary purpose of the tools is to au-

tomatically create HTML pages from the models that the developer has previously input. The generation process can produce output with good usability and accessibility. Compared to the simple text editor mentioned above, this can happen with a higher level of abstraction and with better quality, for the following reasons: First, the generation process has access to models which describe the complete website, so it need not work at the level of a single page at a time, but can also take inter-page relations into account. Second, models are more abstract than HTML code, so an advanced tool has more information available as a basis for its decisions.

For instance, web engineering models allow the specification of “web patterns” (see for ex- ample [Schwabe98OOHDM]) to describe the intended type of interaction with a page, such as the “guided tour”, i.e. a sequential series of pages which provides documentation as well as prompt- ing the user for input. The code generation process can use that information to create the right HTML controls which intuitively communicate this type of interaction – in the case of a guided tour, this will typically be a consistent page layout and “previous”/“next” buttons.

Outside the domain of web engineering, other types of “models” are also frequently used for generation of HTML content. Typically, this happens in a narrowly constrained domain of use: The model describes information which needs to be visualised, and a special-case tool transforms the model information and creates web pages from it. Only the model is ever edited, then the tool is re-run to update the web pages, or it creates the pages dynamically for each HTTP request. In a way, this description applies to all database-driven web applications which offer access to large amounts of information [Florescu98DB]. Automatic generation of the pages can lead to better usability – for example, if a special tool is written to present timetable information (e.g. for lectures) both in tabular form and as a weekly timetable, the information is guaranteed to be consistent for both views of the data. Without automatic generation, the versions would sooner or later deviate from one another because of human error, and the inconsistencies would make the information far less useful to visitors.