Default html form focus without JavaScript

HtmlAccessibility

Html Problem Overview


Is it possible to set the default input focus on an HTML form without using JavaScript, for example:

<html>
  <form>
    Input 1: <input type="text" name="textbox1"/>
    <br/>
    Input 2: <input type="text" name="textbox2"/>
  </form>
</html>

I want to set the default focus to either of the text-boxes when the form loads without using JavaScript (as I want the behaviour to occur when a user has js disabled).

Html Solutions


Solution 1 - Html

You can do it in HTML5, but otherwise, you must use JavaScript.

HTML5 allows you to add autofocus to your form element, eg:

<input type="text" name="myInput" autofocus />

This does work in browsers which support HTML5 (Or rather, browsers which support this particular part of HTML5) but as you know, not everybody can use it yet.

Solution 2 - Html

Something to be aware of ... if you set a focused form element, then anyone using Assisted Technology (AT) like a screen reader will need to back up to see menus and any other content that is before the focused field.

A preferred method, in my opinion , is to not set focus to any field, except a skip-link if its available. That gives them the option to skip into the pages content or read the page from the top down.

Solution 3 - Html

As others have said, without Javascript you can't guarantee a default field. An alternative option you might want to try, if you have multiple fields that a user might want to access is using the accesskey attribute. This will essentially mean a user can return to either of the fields instantly later during browsing, which may come in handy for users of screen readers, etc...

Wikipedias article on this subject is quite useful - http://en.wikipedia.org/wiki/Access_key

Solution 4 - Html

This is not possible without some form of scripting. Even Google's home page requires Javascript to focus the search field.

Solution 5 - Html

You might be able to use the tabindex attribute and use the lowest value on the default textbox though. Check here for browser support:

http://reference.sitepoint.com/html/object/tabindex#compatibilitysection

The site suggests that

> (in almost all other cases—namely form controls and links—the tabindex has excellent support)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAdam JenkinView Question on Stackoverflow
Solution 1 - HtmlLucasView Answer on Stackoverflow
Solution 2 - HtmlGregView Answer on Stackoverflow
Solution 3 - Htmluser764357View Answer on Stackoverflow
Solution 4 - HtmlEvan MulawskiView Answer on Stackoverflow
Solution 5 - HtmlCahitView Answer on Stackoverflow