[whatwg] Outline style to use for drawSystemFocusRing

Dominic Mazzoni dmazzoni at google.com
Mon Sep 30 16:51:36 PDT 2013


On Mon, Sep 30, 2013 at 4:12 PM, Ian Hickson <ian at hixie.ch> wrote:
>
> Some users have great trouble seeing the default focus rings.
> ...
> It's certainly true that if we don't want to support users with poor
> vision, the API would be simpler. But I don't think that's an option. We
> don't get to arbitrarily ignore some users.


Of course not! I'm not arguing against supporting those users. The correct
thing to do for those users is to use accessibility APIs to make the
operating system aware of the focused object and its bounds. If users have
ZoomText or MAGic installed, or if they're using VoiceOver or Orca, their
assistive technology will draw its own focus ring *in addition* to the
application's focus ring.

No other application hides its focus ring just because, e.g., ZoomText is
drawing a focus ring. The rest of the web doesn't do it. Why do we need it
for canvas?

On Mon, 30 Sep 2013, Dominic Mazzoni wrote:
> >
> > I don't think that drawCustomFocusRing should switch to the system focus
> > rectangle style just because that preference was set - it might look
> > horrible on a particular canvas.
>
> It's the whole point of the feature. Draw the focus ring the way the user
> needs it to be drawn, if there's a special need, otherwise, let me draw it
> my fancy hard-to-see way.
>

The problem is that there aren't existing operating system or browser
settings that specifies that the user wants better focus rings. There are
tools that draw additional focus rings, and preferences that control the
appearance of the default focus ring, but no toggle that says
*applications* should or shouldn't draw focus rings.

Finally, as a meta-argument, if we really want a preference for custom
focus rings, then wouldn't we want that for the rest of the web? If I'm
building a custom form control and I need to choose a drawing style when
focused, wouldn't I want to know if the user wanted custom focus rings,
too? In other words, what makes this need canvas-specific?


> How would this differ from scrollPathIntoView() ?


It would take an element in fallback content as an argument. That would
allow assistive technology to be notified.

- Dominic



More information about the whatwg mailing list