Difference between revisions of "PointerEvents/UseCasesAndRequirements"

From W3C Wiki
Jump to: navigation, search
m (Requirements: Pointer Events v.Next Specification)
(Added Brush styluses to Pointer Events v2 spec feature list)
Line 73: Line 73:
  
 
* Support other modalities such as Voice input.
 
* Support other modalities such as Voice input.
 +
 +
* Support Brush-type stylus. For more information see e-mails from: [http://lists.w3.org/Archives/Public/public-pointer-events/2012JulSep/0001.html Brandon Wallace 26-Sep-2012], [http://lists.w3.org/Archives/Public/public-pointer-events/2012OctDec/0126.html Pierre Saslawsky 21-Dec-2012] and [http://lists.w3.org/Archives/Public/public-pointer-events/2012OctDec/0127.html Jacob Rossi 24-Dec-2012]

Revision as of 13:38, 2 January 2013

This document defines Use Cases (UC) and requirements (Reqs) for specifications being developed by the Pointer Events Working Group.

This document is non-normative i.e. informative and, at the moment, should be considered a Living Document that continues to evolve.

Comments on this document are welcome and should be submitted to public-pointer-events@w3.org.


Terminology

This document uses the following terms:

  • Pointer - a physical input device such as a stylus, mouse, pen or touchscreen (possibly activated by a user's finger).
  • Touch Point - a point of contact; the place where a Pointer contacts (e.g. touches) an application.
  • Pointer Event - an abstract DOM Event created when the user applies a Pointer to an application. There is a one-to-one correspondence between a Touch Point and a Pointer Event.

General Use Cases

Use Case #1 - Image Application =

An image application presents several images in a stack. The application allows the end user to directly manipulate the images e.g. to rotate, regardless of the user's Pointer.

Use Case #2 - Mapping Application =

A mapping application provides a map pane that is constructed by tiling data from a map server. The user pans and zooms the (document) element containing the tiled map with the rest of the screen staying intact. The user's interaction can be via any type of Pointer.

Requirements: Pointer Events v1 Specification

The Pointer Events v1 specification has the following requirements:

  • Regardless of the Pointer, a single Pointer Event event is created for each Touch Point.
  • Each Pointer Event must include the following data to the application, if applicable for the Pointer:
    • A unique identification number
    • Width and height geometry of the Touch Point
    • A normalized measure of the touch point's pressure
    • The X and Y tilt axis of the touch point
  • A Pointer Event must indicate the Pointer's type (e.g. pen, touchscreen) or indicate the type is not known (if the type cannot be determined).
  • Each Pointer Event must include a timestamp to facilitate application semantics for "simultaneous" Pointer Events i.e. multi-touch.
  • A Pointer Event must identify any modifier keys that are active when the Pointer Event is created.
  • The "action" resulting from a Pointer Event, must be application agnostic. (For example, the specification must not prescribe an application's semantics for a Pointer Event.)
  • Adding a new Pointer (device) must not break an application that does not support the new Pointer.
  • An application must be able to determine the target element for each Touch Point.
  • Define the following event type pairs, depending on the status and state of the Pointer: up and down; over and out; enter and leave; and capture and release.
  • Define the following unary event types: cancel and move.
  • Define event handler API for each event type.
  • Define an API to determine if Pointer Events are supported.
  • Define an API to determine the maximum number of Touch Points supported by the application's device.
  • Define a declarative mechanism (e.g. CSS) an application can use to override the UA's default touch action for specific elements.
  • The specification must define a mechanism to re-target a Pointer Event to another element.
  • Define a compatibility mapping between Pointer Events and Mouse Events.

Requirements: Pointer Events v.Next Specification

  • Support raw trackpad data; (for more information see Bug 20218).
  • Support other modalities such as Voice input.