4

I have a list that can be scrolled vertically, the entries of which are removed by swiping horizontally. I've found that limiting the left/right swiping to strictly horizontal makes it hard to trigger; however, if I leave it too wide then scrolling vertically can get picked up as a horizontal swipe as well.

What are the best range of angles to use so I can both distinguish up-down action from left-right action and allow people leeway?

This is on a Windows Phone 7 phone so the direction of the gesture is measured clockwise from the positive X-axis. People are also much more likely to be scrolling than swiping here.

2 Answers 2

4

Don't create a dead zone

Assuming you allow both horizontal and vertical swipes and only horizontal and vertical swipes then I see no reason not to simply say that if your swipe is within 45° of horizontal treat as a horizontal swipe and within 45° of vertical, treat it as a vertical swipe.

I'm not sure there a need for a dead zone on the middle where it gets treated as neither.

If the user actually does a 45° swipe (or close to it) then yes it is luck of the draw which happens, but I don't actually see that as a problem.

It seems perfectly normal behaviour and it's what I see happening on the Pulse and BBC news apps on my Android phone.

I think a dead zone would just be confusing to some users. Limit it to horizontal and vertical, and don't add another dimension by introducing a no-op as the third way.

Prioritizing the split

If you look at the tweet stream on Twitter for Android, they prioritize the most common or most useful swipe direction. (If you are roughly within about 10 of horizontal then it shows you the tweet in more detail on another page, whereas if you are roughly within 80 degrees of vertical then you scroll up or down in the stream of tweets.

Note that the preference towards the vertical swipe could also be an attempt to cater for the lazier swipe - perhaps one using the arc of the thumb when holding the phone in one hand.

So that's one available option if you are worried about users accidentally doing the horizontal action by mistake.

However, I think the narrow angle required by Twitter for Android is slightly too narrow as it slightly hinders discoverability by users who are expecting the 45° equal split.

Note that even through Twitter prioritizes the split towards the vertical, there is still no dead zone.

1

I would say limiting the range to be ±20° from horizontal or vertical would be a good starting point. I'd then run some tests to see if they work most of the time.

Much less than this and you'll be rejecting too many swipes all together, much more than this and you'll be mistaking too many (vertical for horizontal & vice versa).

One way of implementing this is to check the differences between the starting and finishing X and Y locations. For example, if the difference in X is twice the size of the difference in Y it's a horizontal swipe and if the difference is Y is larger is a vertical scroll action. This might give you more leeway in what actions you accept without generating false actions. Using this 2:1 ratio will give you a tolerance of approximately ±25° from the horizontal or vertical.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.