[webkit-dev] CSS Haptics proposal

Jukka Raninen jukka.raninen at nomovok.com
Fri May 21 00:26:42 PDT 2010

Haptics is technology to apply tactile feedback to user's sense of touch
to emulate natural feel as feedback to an action
(http://en.wikipedia.org/wiki/Haptic_technology). With touch UI, the
simplest use of haptics is to provide sensory feedback with vibra when
clicking a link or pressing a button. Technologies are available to
simulate more realistic feel of physical keys or buttons.

On a mobile touch device, the user experience can be significantly
improved by using haptic feedback. Haptic feedback is commonly
implemented to predefined HTML components like <button>, but the
challenge for a web developer is that there is no way to apply haptics
to custom javascript components. Implementing feedback through a simple
javascript api is challenging as the feedback needs to be instantaneous
with substantially less than 100ms delay.

The feedback pattern of an active web element can be considered as part
of the style of the element. Another view is that tactile feedback can
be considered just as part of the accessibility paradigm. It is our view
that tactile feedback is an essential part of accessibility but not just
accessibility and therefore both haptic-specific interface is required
and it needs to work in the context of the accessibility framework. For
a web developer, CSS is the most straightforward way to implement custom
javascript components with tactile feedback and the Web Accessibility
Initiative has produced a specification for Accessible Rich Internet
Applications, WAI-ARIA ( http://www.w3.org/TR/wai-aria/)

As the first step, we have defined the haptics feedback through CSS
stylesheet extensions. The proposal is part of the Starlight project
work and can be found at http://starlight-webkit.org/haptics/
The haptics implementation contains CSS declarations, modification to
event handler and haptics plugin interface. Event handler recognizes
when element is pressed or released and reads value of CSS property and
the haptic feedback is played via a native plugin interface.

Jukka Raninen

More information about the webkit-dev mailing list