Microsoft Scrollbar-Dragging Behavior Considered Harmful


From: kfogel@red-bean.com
To: matt@braithwaite.net
Subject: Re: ooh, this sounds interesting:
Date: 23 Nov 1998 08:24:45 -0600

> ``If your interest doesn't flag, and I'm feeling particularly malicious,
> I might even talk about how the scroll-bar behavior in Microsoft
> Windows reveals that the implementor actually wrote extra code to get
> it wrong.''
> 
> please elaborate. :-)

:-)

It's actually not a great example in the context I wrote it, but
here's what I meant:

When you grab a scrollbar and drag it up and down, your mouse's
binding to it is only valid (by default) within a corridor of certain
width on either side of the scrollbar's trough.  So if you get too far
away from the trough, the mouse will "let go" of the scrollbar and it
will snap back to its original position, no matter how far you've
dragged it.  But if you cross back to the inside of this invisible
barrier, it jumps again and you pick up where you left off.
Obviously, this is a lot harder to write than the usual "if the mouse
button is down && this is a vertical scrollbar then just pay attention
to vertical motions and don't worry about how far away the the mouse
pointer gets from the scrollbar" rule.  And, in case it's not clear
from this description, the MS behavior is FUCKING ANNOYING.  Everyone
I talk to about it feels the same way -- not just computer geeks, but
also my parents and non-techie friends.  Instead of being able to look
at the text being scrolled while you slew your mouse all over the
place, happily ignoring horizontal motion, you have to worry all the
time: am I about to cross the invisible barrier?  Will my text jump
unexpectedly while I'm in the middle of reading?

Meanwhile, the other rule applies in every other system I can remember
seeing, and it's perfectly intuitive.  Ever seen that famous drawing
of a human body with each body part sized according to how much brain
area is devoted to it?  The eyes and ears are huge, the nose and mouth
also exaggeratedly large, then the neck and torso are tiny and
squished up, then the arms are a little larger, and the hands are
grossly oversized, like huge catcher's mitts, because so much of our
brain is devoted to them.  It should be obvious to anyone who's ever
used a mouse that you don't somehow "lose track" of whether or not
you've got a button held down.  It's your own _finger_ for crying out
loud -- it's okay to hold the program's interface in a state dependent
on the human's finger, because humans couldn't forget what their hands
are doing if they tried.

Typical brain-dead MS interface design.  It's like no one there
actually *uses* mice or something.  Maybe they all know the keyboard
shortcuts.

What's even more bitterly amusing is that they had to write a good
deal of extra code to get this behavior.  The alternative is
ridiculously simple to implement, because all you have to do is ignore
one direction of motion.  But the MS rule requires paying *extra*
attention to that direction, while paying the usual amount of
attention to the other.  And to make matters worse, this is merely the
default in Windows -- you can apparently get the other way if you
prefer it.  So it's not like they didn't know about the easier way.
There's even a conditional they have to check.  Duh!

How can it not be screamingly obvious to them that 99.9% of their
users would prefer the other way to be the default?


(Back to Karl Fogel's home page.)