Giving Aero Snap Intentional Affordance

There are several ways to design Aero Snap to prevent accidental manipulation. I’ve organized them by the UX Design Skills Ladder (so the best solutions are listed last):

Level 0—”Everybody”

  • Use a confirmation message. While this solves the problem, it ruins the interaction. Design fail!
  • Make it configurable. If users don’t like the feature, allow them to turn it off. This approach forces users to configure their way to a good experience. We can do better!

Level 1—Beginner designers

  • Provide a cancel action. This is what is used by Windows 7’s Aero Shake. Perhaps a better solution would be to use something more obvious, like the Esc key.

Level 2—Intermediate designers

  • Disable feature when accidental manipulation is likely. For example, if data shows that most accidents occur with screen resolutions of 1024×768 or lower, Windows could disable Aero Snap in those resolutions. This is a scenario-based solution.

Level 3—Advanced designers

  • Make the target smaller. Currently the snap drag target is huge. We could leverage Fitts’ Law to design a smaller target to ensure that the manipulation is intentional. There could be a single smaller target, or the current large target could reveal a smaller target that acts as a confirmation. This is a design principle-based solution.
  • Leverage the large target. We could work Fitts’ Law in the opposite direction: the existing target is so large that it is super easy to acquire. If the user continues to move the window well after the target is acquired, most likely the user doesn’t want to perform the action so cancel it. Another design principle-based solution.
  • Require a specific path. As with the iPhone swipe, use an action that is hard to do unintentionally to indicate clear intent. A challenge with this approach would be to design it in such a way that it’s as discoverable as the alternatives, but the iPhone swipe shows that it can be done effectively.

For more information, please contact

All Content Copyright © UX Design Edge