- From: Ian Hickson <ian@hixie.ch>
- Date: Wed, 25 Aug 2010 00:02:00 +0000 (UTC)
On Thu, 29 Jul 2010, Paul Ellis wrote: > > > > In this kind of situation, you'd just use focus(). There's not much > > point using autofocus if you're already running code; the main win of > > the attribute is simplifying the page and not requiring scripting, but > > if you've already got code the cost of an additional focus() is > > minimal. > > I agree that if you are comparing: > > var html = "<input id='mySearch' type='text' autofocus>"; > document.getElementById('myDiv').innerHTML = html; > > to > > var html = "<input id='mySearch' type='text'>"; > document.getElementById('myDiv').innerHTML = html; > document.getElementById('mySearch').focus(); > > then the cost is minimal. > > However there are a lot of instances of scripts retrieving HTML blobs > where it is much more convenient and compatible with the work flow that > the focus is determined using HTML instead of JS. If you take a common > example such as a Facebook-style modal "dialog" you can see that it > would be easy to return HTML with an <input autofocus>. Any HTML > editor/generator could set focus this way and it would be easy to convey > that functionality to the UA as it is part of the content. Sure but in this kind of scenario the focus is already somewhere, so the user agent wouldn't move the focus automatically anyway -- it would assume that would annoy the user. I think long-term we're better off adding an explicit <dialog> element where we can do this kind of thing (and then it would make sense to reuse autofocus). > It would seem to me that focus should always be set on the last element to > have autofocus. That's what we used to have, but it makes the focus jump around while the page is loading, which is why we changed this in the first place. -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Tuesday, 24 August 2010 17:02:00 UTC