In most software applications, a user is provided the ability to undo unwanted changes. However, while most tools can only undo the most recent modifications to a project, selective undo can undo any modification at any point in time. That way if, while writing in a text editor, someone deletes a few key sentences, and only realizes their blunder after adding an entire other paragraph, they can still undo the deletion of the key sentences without first undoing the addition of the new paragraph. When considering this form of undo, an important question is, what is the best way to present to the user the tasks performed, so they can find the task they are trying to undo? In the poster, we present two interfaces for showing these tasks in a history list, enabling the user to emphasize which tasks should actually be undone.
In the first interface, the history list is initially blank, and when the user indicates which task to focus on, all instances of that task type performed up to that point appear in the list. It is designed in the hopes that the user will not need to view the other types of tasks, since they may just be a distraction. In the other interface, all instances of all tasks are presented in the list, and when the user wants to focus on a particular task type, the instances of that task type are indented. While emphasizing the tasks most similar to the desired task, this list still shows the surrounding tasks, in the hopes of providing useful context. These two interfaces thus beg the question, is it more useful for this undo mechanism to omit dissimilar tasks because they are irrelevant, or to indent similar tasks because they are relevant? I am currently designing an experiment to determine which interface works best, for which types of scenarios. The results should give insight into how and for which scenarios each model helps the user focus on important tasks.