Anne van Kesteren

HTML5 Forms

Opera has supported the HTML5 forms (Web Forms 2.0 until it merged with HTML5) functionality for a long time now. I.e. the ability to have a control specific for date input, rather than just text. Although people have experimented with it lack of support in other browsers is somewhat hurting the adoption of this feature. It is also the reason we have not invested much time in improving the available functionality. If you played with it you probably noticed that the user interface of most of these controls can be vastly improved. Fortunately it seems other browsers are picking up pace:

Tangentially related, it would be great if someone volunteered to solve the form controls styling issue… WebKit has largely solved it, but nobody documented what they are doing. I.e. what is the effect, for each property, of setting a property on a form control, what proprietary extensions are out there, what functionality is needed, and more. (This has been looked into to some extent already, but I cannot find the pointers. If you run across something feel free to leave it in the comments. (Of course, the HTML5 rendering chapter provides a start.))


  1. For what it's worth, webkit already has quite a bit of support for HTML5 forms, it just isn't exposed in the desktop browsers (yet?). See the iPhone (and I expect Android and WebOS phones as well), the soft keyboard changes depending on the type of the current field as demonstrated in Mark Pilgrim's dive into html 5

    The one part that's truly missing in non-opera browsers is form field validation.

    Posted by Masklinn at

  2. The new HTML5 form controls are very useful - if implemented in a good way. Especially the date-tag is a nice addition, but the way it works in Opera is horrible. If you have to input a date in 1975 for example, you can't do it by hand and doing it with the control takes waaaay too much time. The Windows 7 calender could be an inspiration on how to improve it, but manually inputing a date should be possible as well.
    An input type=number can have manual input, so why not this element?

    Posted by Sander at