Re: Touch screens and wxPython

From: Douglas W. Jones <jones_at_cs_dot_uiowa_dot_edu>
Date: Tue Dec 02 2003 - 13:37:03 CST

> I have used touch screens with linux. Some do work via
> mouse input. however it would be good to verify that this
> particular version does work that way...

The fact that a touch-screen emulates a mouse does not imply
that you can ignore the difference.

With a mouse, clicks are unambiguous. They design the switches
with hysteresis so that you have to push relatively hard to make
it click, and then you can let up quite a bit before it unclicks.
This gives you tactile feedback.

Touch screens offer no tactile feedback, and if there is hysteresis
in their response to a touch, it is done in software or firmware,
not in the springwork of the switches itself.

The result is that, for many naive touch-screen interfaces, multiple
clicks are a problem. If you program it so that each click toggles
the selection, and if the touch screen has a simple threshold, you
get really wierd behavior.

I've seen at least one voting system (ES&S) vendor who faced this
problem
and solved it badly. Instead of adding hysteresis (difficult), they
added a timer. Only touches lasting longer than 0.2 seconds were
significant. The problem with this is that if you don't get immediate
response, it's easy to think you're not touching hard enough, so while
you wait for it to respond, you push harder and harder. By the end of
voting one ballot, my fingertip was in pain! You can train people not
to push so hard, but voting shouldn't require training!

Another way to deal with this is to have the push-to-select rule
different.
Design the user interface so that multiple pushes on one button always
have the same effect as a single push on that button. Touch the
candidate
name to select, touch again does nothing, only touching a different
name (or between names) will deselect.

Resolution is another problem. Fingers are blunt, and the point of
highest
pressure or the centroid of the pressure function is what the touch
screen
presents. Two people pointing in what appears to be identical ways may
actually touch different points because their fingers have callouses
that
are arranged differently or because their nails are trimmed differently.

Also, touch screens are subject to false touches. You're officially
touching with your index finger, but your pinky drags lightly on the
screen
at some point, and suddenly your selections are messed up. Setting a
high
pressure threshold or a time limit solves this, but that has its own
problems, as I already mentioned.

Finally, there's the issue of calibration. Some touch screen
technologies
use a relative calibration model, where the screen doesn't necessarily
give absolute position output. If your touch moves a cursor, this can
be
a minor issue. The cursor shows you what you're doing. If, on the
other
hand, you want a cursorless interface, you need to calibrate the screen,
probably when you open the polls.

This creates a security issue! Miscalibration has been blamed on at
least
one real election problem. If you run the calibration script and it
tells
you to touch the center of the screen and then each corner, and you,
instead,
do your touching in a rectangle over on the low side of the screen,
staying
well away from the top corners, then from then on, the software will
bias
all touches to the top, making it potentially very difficult to vote
for a candidate listed near the bottom of the screen. When it comes
time to
charge someone with impropriety, is there any evidence? Not if nobody
was
watching the improper setup, all you have to say is: Well, it looks
like,
somehow, the touch screen got out of calibration.

                                Doug Jones
                                jones@cs.uiowa.edu
==================================================================
= The content of this message, with the exception of any external
= quotations under fair use, are released to the Public Domain
==================================================================
Received on Wed Dec 31 23:17:01 2003

This archive was generated by hypermail 2.1.8 : Wed Dec 31 2003 - 23:17:18 CST