I’m using the contenteditable attribute on a <div> in order to make it act as a text field on demand (for users to rename something). But I want to enable autofocus on it as well, so users can begin typing immediately (the <div> always has contenteditable enabled initially).
Is this valid and/or possible? Or will I have to switch to a standard text input?
You’ll have to do it with JavaScript in most browsers, I think. And it won’t work on iOS, which only allows programmatic use of
focus()in an event handler of a genuine user interaction (such as aclickor touch-related event).Also, be aware that if there other inputs on the page, it’s possible the user may focus on one of those before the document has completely loaded, in which case it is then very annoying for the user to find that the focus has been moved from under them when the
loadevent does fire, so you should use the inputs’focusevents to track this.