These difficulties are exacerbated when the same UI should be developed for multiple contexts of use such as multiple categories of users (e.g., having different preferences, speaking different native languages, potentially suffering from disabilities), different computing platforms (e.g., a mobile phone, a Pocket PC, an interactive kiosk, a laptop, a wall screen), andvarious working environments (e.g., stationary, mobile).
Although designers and programmers are involved in these types of project, the available tools are mainly target at the developer. Therefore, it is rather difficult for a designer to design a UI for multiple contexts of use while avoiding to reproduce multiple UIs for multiple contexts of use. This work proposes a way to separate responsabilities in these types of projects.
UsiXML (which stands for USer Interface eXtensible Markup Language) is a XML-compliant markup language that describes the UI for multiple contexts of use such as Character User Interfaces (CUIs), Graphical User Interfaces (GUIs), Auditory User Interfaces, and Multimodal User Interfaces.
In other words, interactive applications with different types of interaction techniques, modalities of use, and computing platforms can be described in a way that preserves the design independently from peculiar characteristics of physical computing platform.
- UsiXML is intended for non-developers, such as analysts, specifiers, designers, human factors experts, project leaders, novice programmers,...
Of course, UsiXML can be equally used by experienced developers.
Thanks to UsiXML, non-developers can shape the UI of any new interactive application by specifying, descrbing it in UsiXML, without requiring programmins skills usually found in markup languages (e.g., HTML) and programming languages (e.g., Java or C++). - UsiXML consists of a User Interface Description Language (UIDL), that is a declarative language capturing the essence of what a UI is or should be independently of physical characteristics.
- UsiXML describes at a high level of abstraction the constituting elements of the UI of an application: widgets, controls, containers, modalities, interaction techniques, ...
UsiXML allows cross-toolkit development of interactive application.
A UI of any UsiXML-compliant application runs in all toolkits that implement it: compilers and interpreters. - UsiXML supports device independance: a UI can be described in a way that remains autonomous with respect to the devices used in the interactions such as mouse, screen, keyboard, voice recognition system,...
In case of need, a reference to a particular device can be incorporated. - UsiXML supports platform independance: a UI can be described in a way that remains autonomous with respect to the various computing platforms, such as mobile phone, Pocket PC, Tablet PC, laptop, desktop,...
In case of need, a reference to a particular computing platform can be incorporated. - UsiXML supports modality independance: a UI can be described in a way that remains independent of any interaction modality such as graphical interaction, vocal interaction, 3D interaction, or haptics.
In case of need, a reference to a particular modality can be incorporated. - UsiXML allows reuse of elements previously described in anterior UIs to compose a UI in new applications.