Methods to support the creation of multi-device user interfaces typically use some type of abstraction of the user interface design. To retrieve the final user interface from the abstraction a transformation will be applied that specializes the abstraction for a particular target platform. The User Interface Markup Language (UIML) offers a way to create multi-device user interface descriptions while maintaining the consistency of certain aspects of a user interface across platforms. We extended the UIML language with support for layout constraints. Designers can create layout templates based on constraints that limit the ways a user interface can rearrange across platforms. This results in a higher degree of consistency and reusability of interface designs. THE USER INTERFACE MARKUP LANGUAGE (UIML) The UIML specification [2] is a high-level canonical markup language to describe the structure, style, content and behavior of a user interface. The declarative nature of UIML allows a clear separation of the user interface, its content, the mapping of its abstract concepts onto concrete widgets and the application logic. UIML’s separation of concerns enables reuse of the user interface and promotes consistency across different platforms. UIML does not contain metaphor-specific tags (e.g. <window>), but only generic tags (e.g. <part>, <property>, . . . ). A set of abstractions can be defined in a vocabulary and allows the designer to specify a user interface by referring to these abstractions. The vocabulary defines how abstractions can be translated into a concrete presentation. This is a typical example of an interface being specified in terms of abstract interaction objects which will be mapped onto concrete interaction objects afterward [7]. Nevertheless, it is challenging to choose the set of abstractions defined in a UIML vocabulary so a wide range of different platforms can be supported. Since these are specified separately, UIML is extendable to new devices and UI metaphors, when they become available. Several levels of abstraction can be supported by UIML. An UIML document exists of several parts [1] that are shown in figure 1. Together they make up the Meta-Interface Model Figure 1. The UIML Meta-Interface Model
[1]
Marc Abrams,et al.
UIML: An Appliance-Independent XML User Interface Language
,
1999,
Comput. Networks.
[2]
Marc Abrams,et al.
Building Multi-Platform User Interfaces with UIML
,
2001,
CADUI.
[3]
Jean Vanderdonckt,et al.
Encapsulating knowledge for intelligent automatic interaction objects selection
,
1993,
INTERCHI.
[4]
Peter J. Stuckey,et al.
The Cassowary linear arithmetic constraint solving algorithm
,
2001,
TCHI.
[5]
Kris Luyten,et al.
UIML.NET: an Open UIML Renderer for the .Net Framework
,
2004,
CADUI.
[6]
Peter J. Stuckey,et al.
Constraint cascading style sheets for the Web
,
1999,
UIST '99.