Comprehending the physical layout of UML class and state diagrams can be very difficult if you cannot see them. To address this issue, we have created Audible Browser. Audible Browser reads XMI 2.1 files and currently supports Class and State diagrams. We specifically are using diagrams produced by Visual Paradigm.
Audible Browser is a cross-platform Java application and will be available shortly as a free download.
This discussion will focus on class diagrams. The presentation of state diagrams is similar. The program presents the nodes in a diagram in a tab group. A tab group is a set of common items that can be read using the up and down arrow keys. The tab groups for a class are the name, attributes, operations, and associations. The name tab group initially speaks the class name and any inheritance or nesting. This is a summary of the class. The arrow keys allow the user to traverse through a list that includes any class this class is nested in, any classes nested in this class, classes this class inherits and classes that inherit this class. Hitting return on any of these lines allows the user to move directly to the associated class.
The next tab stop presents the class attributes. These are spoken in the same form they appear in a normal UML class diagram. For example, the attribute x: int=0 is spoken as “x colon int initially zero”. The left and right arrow keys allow the user to move from letter to letter, speaking the letters. This prevents ambiguity if the speech generation is not clear.
The next tab group allows the user to examine the operations of the class. The function func(x:int, y:int) : string is read in the form: “func parameters x colon int y colon int returns string”. As before, the left and right arrow keys read out the letters of the actual UML representation one at a time.
The final tab group lists associations, aggregations, and compositions. In each case, the roles and multiplicities are read with the association. As an example: “association diagram 1 to state 0 dot dot asterisk”.
To convey the structure of a diagram, Audible Browser plays tones for each node. These tones are referred to as stars and are in a constellation. Each star is presented as a tone. The left-right placement represents the x position in the diagram and the pitch represents the y position. 3D audio is only effective for left-right placement of content. 3D audio is not effective for vertical placement for general users. Nodes that are higher on the page are presented with a higher pitch. The name of the node can also be optionally spoken when the constellation is presented. This provides a way to quickly convey the relative placement of the nodes around the user. The user can navigate to other nodes using the mouse. All mouse movement is relative to when the movement begins, so there is no absolute placement and the mouse does not correspond to screen locations. Technically, the mouse is re-centered when it is released, so there is always space for movement in all directions and it cannot be clicked outside the window and accidentally inflict a context change. When moving, the left-right placement changes to tell the user when items move to the left and right. The pitch for items stays the same. A background tone is played as the constellation is continuously presented when moving. The tone provides a reference of the current y location and varies as the user moves up and down.Traversing to a node consists of moving it so the sound is centered left and right and the motion tone matches the pitch. As nodes are neared, this status is spoken as well. When the mouse button is released, Audible Browser snaps to the nearest node.