Other Direct Manipulation Problems

Direct manipulation can present other potential problems besides lack of visibility. Manipulation can happen by accident, drop targets can be hard to access, the rules of manipulation can sometimes be difficult to figure out, direct manipulation is often not precise or scalable, and direct manipulation isn't especially accessible. I will address each of these issues below.

Accidental Manipulation

While direct manipulation has many benefits, it is possible for an object to be too easy to manipulate. Specifically, you want to make sure that the user intends the manipulation and that the manipulation isn't accidental. Regarding mouse movement, there's a fine line between selecting an object and dragging an object. For example, I occasionally receive the following error message when I select a folder in Windows Explorer:

click to view at full size.

In this case, I selected a folder but moved the mouse slightly during the selection, so Windows Explorer interpreted this as a move. There's also a fine line between a double click and two single clicks. To rename a file in Windows Explorer, you need to first select the filename with a single click and then click the selected filename again to enable the rename feature. But if you do this action too quickly, instead of renaming the file you launch the program associated with the file—not quite what you had in mind.

The more you support direct manipulation in your program, the more likely it is that an action of manipulation will be misinterpreted. In the most difficult situations, you might have to monitor how long the user clicks an object and the path of the mouse movement before and after the click to determine what the user is trying to do. The simpler solution to this problem is to avoid ambiguous manipulations (like two clicks vs. a double click) and to limit the objects that can be manipulated to a reasonable number so that the user can perform most tasks without fear of disturbing something. You don't want the user interface to be too fragile.

TIP
Prevent accidental manipulation. Avoid ambiguous manipulations, and limit the number of objects that can be manipulated.

Drop Target Access

While it is usually simple to select an object to drag, it can be much more difficult to access the place to drop the object. For example, when dragging and dropping text within a Word document, if you want to drop the text in a part of the document that isn't visible, you can move the cursor to the edge of the document and Word will scroll the document until you move the cursor away from the edge. This technique works well in large document windows, but in small windows the document scrolls so fast that it is impossible to scroll with precision. A better implementation would adjust the speed of the scrolling based both on how near the cursor is to the edge (that is, the closer to the edge, the faster it should scroll) and on the size of the window.

When dragging and dropping an object between programs, it can often be difficult to have both the source and target visible on the screen at the same time. The ability to drop on the title bar helps somewhat, but most users don't know about this feature. In the most awkward situations, it is easier to use the cut, copy, and paste commands than to drag and drop.

Direct Manipulation Confusion

Direct manipulation can be confusing when several possible actions are associated with the manipulation. The default action used is determined by the target, not by the source. For example, when you drag and drop a file using Windows Explorer, you can be moving the file, copying the file, or creating a shortcut to the file. Consider the rules related to dragging and dropping files in Windows Explorer:

  • Dragging and dropping one or more nonexecutable files to the same drive performs a move.
  • Dragging and dropping one or more nonexecutable files to a different drive performs a copy.
  • Dragging and dropping one or more executable files creates a shortcut.
  • Dragging and dropping a mixture of executable and nonexecutable files to the same drive performs a move.
  • Dragging and dropping a mixture of executable and nonexecutable files to a different drive performs a copy.
  • Regardless of the file types and where they are dropped, if the Control key is pressed during the drop, it performs a copy.
  • Regardless of the file types and where they are dropped, if the right mouse button is used to perform the drag, a pop-up menu appears after the drop, allowing the user to choose the desired action. This is called a nondefault drag and drop.

In other words, the result of a drag and drop in Windows Explorer depends on the type of files, the number of files, and the destination. Did you know these rules? How many users understand these rules? Probably not many. The good news is that the cursor accurately indicates what is going to happen, and most of the time these rules result in what you want. Beginning users, who don't yet know the significance of the cursor hints, are often frustrated by not being able to copy an executable file by dragging it. These rules are complex for a reason, and there is no simple solution to this problem. Generally, when a user transfers files within a drive, he intends to move them instead of copy them. When dragging between drives, the user intends to copy them, as moving them is impossible. When a user drops an executable onto the desktop, the Quick Launch bar, or the Start menu, the intention is to copy a shortcut, not to move the program. These drag-and-drop rules could be modified to copy a shortcut in these three cases and perform a move or copy in all others, but that would make the rules even more complicated than they already are.

Precision

Direct manipulation is often difficult to perform precisely. For example, it's usually much easier to set the size of a window by dragging its border than by typing its size into a dialog box. However, if you want to set a window to an exact size, such as 320 x 240, it is much easier to do this using a dialog box. Precise manipulation requires feedback. In this case, setting a precise dialog box size would be possible using direct manipulation if Windows displayed a tooltip that gave the size during the manipulation, as the Microsoft Visual Basic dialog box editor does. The Visual C++ dialog box editor gives the sizes and locations of the dialog boxes and their controls on the status bar. But window and control sizes are in pixels, which never require decimals. If you need the ability to make an object exactly 0.127 inches long, direct manipulation is pretty useless.

You can use the keyboard to help obtain precise manipulation. For example, in paint programs it is difficult to get a perfect circle or square. Microsoft Paint uses the Shift key to constrain an object's shape. An oval drawn with the Shift key depressed is a circle, a rectangle is a square, and lines are constrained to be at angles that are multiples of 45 degrees. If you really need the ability to make an object 0.127 inches long without using a dialog box, you could use Shift+arrow keys to change the size in 0.1-inch increments, Ctrl+arrow keys to change the size in 0.01-inch increments, and Shift+Ctrl+arrow keys to change the size in 0.001-inch increments. In this case, perhaps using a dialog box isn't so bad.

Scalability

Another problem with direct manipulation is that it simply isn't scalable. For example, it is very convenient to rename a few files using Windows Explorer, but it is very inconvenient to rename a thousand files this way. Using wildcards in MS-DOS is scalable, so it is no more difficult to rename a thousand files than it is to rename one. If your program performs tasks that require scalability, you will need to provide alternatives to direct manipulation.

Accessibility

Unfortunately, direct manipulation is also not especially accessible. The most common direct manipulation techniques, especially dragging and dropping, require significant manual dexterity. This makes them inappropriate for many types of users, such as young children, the physically impaired, and even those using trackballs or touch pads. In my own experience, I have found that too much direct manipulation can lead to repetitive stress injuries. Such injuries can be quite painful, and they can be especially stressful to those who depend upon using computers for their livelihood.

In addition to the ability to perform the manipulation, users also need the ability to see the objects being manipulated. For drag-and-drop functionality, users need to be able to see the objects and the drop targets, as well as the cursor hints. Screen readers are of little help for these tasks.

The lack of accessibility, as well as the other direct manipulation problems I've described, can be addressed by making sure that all tasks performed using direct manipulation can be performed using an alternative mechanism, such as a menu command, a dialog box, or the keyboard. Users can then shift back and forth between using direct manipulation and other techniques to work most efficiently. Advanced users want to keep their hands on the keyboard. Note that the easiest way to copy a file from a hard disk to a floppy disk using Windows Explorer isn't dragging and dropping but the Send To context menu command. As useful as it is, direct manipulation should not be the only way to perform a task.

Program features that effectively use direct manipulation are among the best in Windows. Direct manipulation is a quick, natural way to perform tasks that is easy to learn and remember. Direct manipulation keeps the user in control and provides continuous feedback. It makes software a pleasure to use.

While direct manipulation makes tasks simple for users, it often makes work difficult for programmers. Direct manipulation is not easy to implement, and it requires you to address many details. As noted in Designing for the User Experience, "Simplicity is not the same as being simplistic. Making something simple to use often requires a good deal of work and code."



Developing User Interfaces for Microsoft Windows
Developing User Interfaces for Microsoft Windows
ISBN: 0735605866
EAN: 2147483647
Year: 2005
Pages: 334

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net