Re: Haptics CSS extension proposal

Daniel Glazman wrote:
> Tactile feedback is based on the sense of touch, for example vibrating
> the screen or giving a more realistic sense of a physical object when
> the user touches the UI.  As the physical feel of an element can be
> considered a part of its style, we're proposing to extend CSS to allow
> assigning the tactile feedback style to web elements. According to our
> studies the most convenient and natural way to specify haptic feedback
> is CSS. We also considered implementing haptics for web using WAI-ARIA
> but came to the conclusion that haptics is not (just) an accessibility
> feature although it can be used for improving accessibility as well.
> 
> So please check out our initial draft here:
> http://portaali.org/~ilkkao/w3c/CSS/css3-haptics.html
> and let us know if the members of the WG (or the CSS Community at large)
> are interested in contributing to the evolution of the spec.

I agree with the idea. However, I don't agree with the proposed
implementation.

This should be more generic styling than just haptic tap feedback. As
such it should be reflected in property and value names.

I'd suggest following:

Remove haptic-tap-type and haptic-tap-strength
Rationale: haptic-tap-strength should not be used because there's no way
to know suitable value for any effect (there's no standard baseline).
The only sensible values are 'nothing' and 'something'. If
haptic-tap-strength is dropped, then haptic-tap-type is basically
identical to shortcut and shortcut is all that's needed for now.

Rename 'haptic-tap' to 'force-feedback' or 'touch-feel' or 'tactile-feel'
Rationale: As I see it, the style should describe how the object feels
to touch or what kind of feedback force the object gives for a push or
press. The name should reflect this.

New proposal:

The 'touch-feel' property:

Name: touch-feel
Value: static | button | disabled-button | release-button | lock-button
| link | activate | deactivate
Initial: static
Applies to: block-level and inline-level elements
Inherited: Yes
Media: Tactile


The feel types:

static: static object, for example, a fragment of static paragraph text.

button: gives equal feedback for both element press and release.

disabled-button: gives a light feedback on both press and release (like
a latched button that is stuck in down position).

release-button: gives lighter feedback on element press than release
(like a button that was down and is released).

lock-button: gives stronger feedback on element press than release (like
a button that stays down).

link: gives UA defined link feedback [is this different from button?]

activate: gives UA defined activate feedback (feedback that mimics
writing a checkmark next to a checkbox) [is this different from
lock-button?]

deactivate: gives UA defined activate feedback (feedback that mimics
erasing a checkmark from a checkbox) [is this different from
release-button?]


Idea: to make this even more generic the "touch feel" should be able to
describe stuff like 'hot', 'solid', 'wet', 'furry', 'metal', 'skin'. If
the 'touch-feel' property is splitted in parts, it should be something
like this:

- touch-feel-feedback [how it will react to touch]
- touch-feel-movement [does it move when touched, where?]
- touch-feel-material [e.g. fur, metal, skin, wood, paper]
- touch-feel-material-state [liquid, solid, gas?]
- touch-feel-temperature

It doesn't make sense to specify these right now because there's no
technology available to use that information. It does make sense to
figure out how to extend the specification in the future, if needed.


Minor nitpicking (for the latest version at 2010-06-14):
- The first "Nokia" link contains href to http://www.apple.com/
- "2  The 'haptic tap' Property" title is missing 'type'

-- 
Mikko

Received on Monday, 14 June 2010 11:01:13 UTC