[BRLTTY] Explicit toggle change
Stéphane Doyon
s.doyon at videotron.ca
Thu Oct 24 23:29:27 EDT 2013
On Wed, 23 Oct 2013, Dave Mielke wrote:
> [quoted lines by Stéphane Doyon on 2013/10/14 at 17:34 -0400]
>
>> in r7287 you have "Indicate via a tune if an explicit toggle change
>> is redundant."
>>
>> Can you explain the rationale?
>
> It was bothering me more and more that a tune indicating an action was being
> played when, in fact, no action was being taken. The worst offender was the
> FREEZE toggle.
Really? I don't think I would have seen that as an issue. Did you often
refreeze an already frozen screen?
> It seemed quite harmless to me to introduce a way to indicate
> that the toggle was already in the intended state. In all similar instances I
> can think of, like a mute switch when on a teleconference, this kind of
> indication is, in fact, extremelye valuable.
I'm heartily with you about the teleconference mute. I also hate that
recorders typically pause if you press the record button again while
already recording.
> I can't imagine why anyone would
> ever want the position of a switch to be invisible or unverifiable.
Fair point. But for our toggles, we're not so much probing for the state,
as asking again for a state change (because we have a doubt or we forgot).
With the mute button, if I have a doubt whether I'm muted and can't check
some status light or label, I'd want to give it the command to "do mute me
now". What I mostly care is to be confident that I am really muted after
that action. It is true it might be nice to know whether I
had been already muted or not before the action, although to me that's
secondary to confirming that I've reached the desired state.
I'm not sure why you feel replaying the freeze toggle sound is especially
inappropriate. What I like about that particular sound is that it's
distinctive, while for most (all?) other toggles we have generic on/off
sounds. I love that the sound for freeze tells me not just whether it's on
or off, but I can also recognize the command, I can confirm yeah it's
really freeze screen that I did, I didn't press the wrong keys (fumbled
fingers or unsure of the bindings). So to me that sound seems valuable,
even if no state change occurs, as it confirms to me I have obtained the
state I wanted. I do see your point that it doesn't tell me whether it had
already been frozen. I'll admit that cursor tracking is the only explicit
toggle I use, one of only two bound for my displays, so maybe my
perspective would be different if I used explicit toggle changes more.
The sound you have added to indicate the state is already as requested,
just conveys to me "error, you did something wrong". I guess I see your
point that asking to freeze when already frozen does not really make
sense. But then clearly the user is mistaken, do we need to rub their nose
in it? The only scenario I can think of where the knowledge would matter
to the user might be if they were waiting for some screen change and might
have missed it if somehow they'd been frozen without realizing. Back to
the teleconference example: I suppose there is value in being able to
check if I was muted, to know if the other participants heard something I
did not want them to; but this scenario still feels just a little bit
uncommon. Now suppose I press mute, and in response I get an error buzz.
Does that mean I was already muted, or does it mean the mute isn't
working? That's why I'm a little uncomfortable with your new sound.
Well, what if we had both? Play the on tune and then an already in state
tune, that way you get both pieces of info that the state is confirmed
plus that you were already in that state before.
> The same is true, for example, for me when I switch between six-dot and
> eight-dot mode. Perhaps I'm just odd, but I don't mind finding out that I was
> already in the intended mode.
Fair enough, but I don't want to be made to feel that I'm required to keep
track of that state. Giving me additional info yes, telling me I did wrong
for not memorizing my state correctly, not so much. It's not necessary for
me to remember whether it was already in 6 or 8 dots mode. That's one
recognized problem with modes in user interfaces. So if the sound could
first confirm the state, and additionally carry the info that we were
already in that state, I think we'd be in a good place.
> That's understandable. Is it, however, an argument for removing the tune for
> being already in the intended state or for treating CSRTRK+on as a special case
> since it has an additional side effect?
That's interesting, because so far all we've discussed is the feedback
sound. Your motivation for playing an error beep was to indicate that no
action is being taken, and you explained you wanted to make it possible to
discover the state of the toggle. But actually you've inadvertently
changed the behavior to prevent it from taking any action when already in
the target state. I could see this being valuable if something destructive
would happen by reenabling the already enabled state. But as far as I can
tell, the only toggle that has a visible side-effect is cursor tracking
for which the side-effect was desirable.
Today I had to work for a few minutes on a laptop that wouldn't play the
beeps (some sound misconfiguration I guess). Having to remember the cursor
tracking state was an annoyance, it got confusing. Plus going to the
cursor requiring either two button presses or the less finger-friendly
HOME binding on my display...
> I myself believe it to be the latter,
> and must then ask if it's better to deal with the special case or to merely
> tweak it into working right by removing what may well be, in all other cases, a
> useful feature.
Maybe having the side-effect makes it a special case. It's hard to
generalize from a single case, we'd need a couple more toggles with
side-effect. However for freeze or 8/6 dots, I feel I'd still prefer to
hear confirmation of the obtained state in priority to hearing about there
having been no state change. Maybe that's just me being used to hearing
the on/off tunes, but it seems to me richer feedback to have both pieces
of info. You could invent tunes for on-and-was-already-on and similar for
off, but then we'd lose the nice distinctive sound for freeze, so I still
think playing two sounds back to back might be better: the obtained state
as before, and then an indication that there was in fact no change.
Oh OK here's a tune suggestion: for already on, use: {
TUNE_REST( 60),
TUNE_NOTE( 30, 86),
TUNE_REST( 30),
TUNE_NOTE( 30, 86),
TUNE_STOP()
}
What this does is repeat the last note of the toggle_on tune twice, with
appropriate delays. It's like reasserting it, hammering it. If you play
toggle_on followed by this, it says to me: it's on, yeah it's on already,
really on.
You'd do similarly for already off, repeating the last note of toggle_off.
> Exactly. I believe that CSRTRK+on really is a special case. We should fix it so
> that the side effect is restored. What, however, should we do with its tune?
> We could have it still play the ON tune. We could make it silent if cursor
> tracking is already on.
Hmm silent if already on could actually be a good idea in this case: since
the display moves, there is an immediate visible effect so sound feedback
is not entirely necessary for this situation.
More information about the BRLTTY
mailing list