[squeak-dev] Deceptive focus cue in 4.6 browsers

Chris Muller asqueaker at gmail.com
Tue May 19 16:04:50 UTC 2015


On Tue, May 19, 2015 at 8:32 AM, Stéphane Rollandin
<lecteur at zogotounga.net> wrote:
> Try this:
>
> - Disable the "Filterable Lists" preference.

It seems like the above has nothing to do with the rest of this note..?

> - Open a new Browser.
> - Choose any class
> - Select any message category
>
> You get a method template in the text pane. It is highlighted, which makes
> you think (and it was the behavior so far) that you can type right away your
> method code.
>
> But it is not the case. The message category list still has focus; moreover
> you need to click inside the code editor to give it focus, which deselect
> the method template.
>
> Annoying.

Totally agree.  And, I don't mean to perpetuate a pointless discussion
but this is simply the evil of click-for-focus for *every* scenario,
not just this scenario.  It forces the user to "interact" widgets in
ways they don't want to.

In the abstract, the easiest way to switch focus when
mouseOverForKeyboardFocus is disabled is:

   Gesture 1:  Look for the "least-disruptive" spot somewhere within
the widget you want to have keyboard focus (good luck!).
   Gesture 2:  Click that spot.
   Gesture 3:  If that spot caused an undesirable interaction with the
widget, click your way out of it, then go to step 4.
   Gesture 4:  Click the spot within the widget where you actually
want keyboard focus.

So, in your concrete example, the "least disruptive" way might be to:

 - Open a new Browser.
 - Choose any class
 - Select any message category
 - Click somewhere in the method template.
 - Click  somewhere in the method template once more, but below the
bottom of the text so that it will all be selected.  Voila!

When I came into Squeak more than a decade ago, I had all the habits
of a Windows user (e.g., click-for-focus).  Over time, I started
playing with the available preferences and learned why someone thought
they were a good idea -- because they are...   :)


More information about the Squeak-dev mailing list