HTML5 - required fields, placeholders, types, pattern and datalist