The analogy on the user interface front is to build the necessary semantic and structural distinctions into the user interface objects that programmers use in their applications, and to make these components more generic so that they work effectively across a range of devices and move beyond the WIMP metaphor. This is the basis of ch. 3 of T. V. Raman's book, where he discusses the fundamental operations that are manifest in common WIMP user interface components today, and develops a conception of their auditory counterparts. As for testing, an interesting example is provided by IBM's Self-Voicing kit for Java, which has been made available for the purpose of enabling developers to experience, directly, a non-visual interface to their applications. Automatic validation processes can probably be used to some extent. Since Linux is an emerging, though rapidly growing, environment, and open-source development is not governed by commercial imperatives, there may be a significant opportunity to influence the direction of user interface design in this area which needs to be addressed.