At the Breaking Development Conference in Dallas TX, Nate Koechley discussed elements of touch primitives, gestures and semantics in his presentation “Taxonomy of Touch”. Here’s my notes from his talk:
- Input can have different modes (mechanical, audio, or visual). It can be discrete vs. continuous. Different input factors have different degrees of freedom.
- Touch is direct, discrete & continuous, absolute, and has a high degree of freedom.
- The big mobile players: iOS, webOS, Blackberry, Android, and Windows Phone 7 all support touch as input. But desktop touch interfaces are proliferating too.
- The Web Events working group is working to develop touch standards that enable developers to build applications that better fit touch-based devices. They are working on a spec for low-level physical events & high-level representational events.
- Fit the user ”Implementation model to mental model”. Now, fit the device!
- I want to see more: use expand gesture
- Intentional, representational, gestural, physical
- Physical: Lowest level, physical gestures. “when the user moves two touches toward each other”
- Gestural: middle layer, describes a specific mapping (often device specific) “in a pinching gesture”
- Representational: highest level of abstraction (means to an end) “the conventional meaning is zoom-out.”
- Intention: above the APIs, what’s the user’s goal? “user wants to see more of an object being manipulated”
- DOM doesn’t include all the interesting moments we care about. One way to do that is to create custom events. Custom events: interesting moments in your application not just the browser
- Synthetic events: can add things to nodes/page
- It may be a best practice to move up a layer from difference between mouse & touch. Same as what was done for keyboard & mouse
- YUI normalizes touch events to works across capable browsers.
- Adapt the technology to the user not the user to the technology
- There’s an opportunity to push gestures forward.
- Windows phone 7 goes up to 10 touch points, 3M has 50 touch points.