b-log – betriebsraum weblog

Software Development, Human-Computer Interaction, Projects…

Improving iOS Target Selection for Finger Touch Using the Bayesian Touch Criterion

June 9, 2014


BayesianTouchCriterion on Github

BayesianTouchCriterion is an Objective-C implementation of the Bayesian Target Criterion (BTC) developed by Xiaojun Bi and Shumin Zhai. Given a touch point and some touch targets, it improves the accuracy of selections by finding the touch target with the shortest Bayesian Touch Distance (BTD). This element is the one that the user intended to select. The results of the evaluation of Bi and Zhai show that selection based on BTC is much more precise than using the visual boundary of an element. (Visual boundary checking is how most touch frameworks determine if the finger touches a target.)

The image above shows how randomly placed touch points (the smaller, semi-transparent circles) select their corresponding targets (the nine big circles). In the user interface of a mobile app, for example, BTC could be used to more accurately determine which menu item the user intended to select. The point of using BTC instead of visual boundary checking is: The intended element is not necessarily the element where the user’s touch lies exactly within the visual boundary of the element (e.g., the touch point might be somewhere slightly outside of the visual boundary). BTC has the advantage that it does not require more detailed information about the touch point (finger posture, touch area…). The only required input parameters of the formula are touch location, target center, and target diameter.

If you are interested in the full mathematical details and derivations, here’s the full reference:

Xiaojun Bi and Shumin Zhai. Bayesian touch: A statistical criterion of target selection with finger touch. In Proceedings of the 26th Annual ACM Symposium on User Interface Software and Technology, UIST ’13, pages 51–60, New York, NY, USA, 2013. ACM.

The paper is freely available on Research at Google.

Filed under: HCI, iOS / Objective-C / Swift

Add a comment

Follow comments to this post by subscribing to the comment feed.