Form input required fields (easyform)

We are currently looking to implement more complex forms in Plone and want to extensively validate these with native browser validation. We have noticed that form frameworks do not use the HTML required attribute for fields/widgets. They do have it as a CSS Class Selector, but not as an input attribute, for instance.

Example from collective.easyform default Form (replyto-Field):

<div data-pat-inlinevalidation="{&quot;type&quot;:&quot;z3c.form&quot;}" data-pat-depends="" class="field pat-inlinevalidation kssattr-fieldname-form.widgets.replyto empty None  " data-fieldname="form.widgets.replyto" id="formfield-form-widgets-replyto">
    <label for="form-widgets-replyto" class="horizontal">
        Your E-Mail Address
        <span class="required horizontal" title="Required">&nbsp;</span>
    </label>
    <input id="form-widgets-replyto" name="form.widgets.replyto" class="text-widget required textline-field is-invalid" value="" type="text">
</div>

Am I mistaken? And is there a specific reason for this?

I've also tried searching within the Field/Widget frameworks for the best place to add this feature - but I've failed miserably due to the dependencies (z3c.form, plone.app.z3cform, plone.z3cform, plone.formwidget).

Slighly off topic, but it would be useful if the CSS-class of the field (wrapper) included the field type. When dealing with complex forms it is a bit difficult to style

If it is of use to anyone: I 'hacked around it' by naming every field so I could style it (something) like this:

fieldname 'something_mytype'
fieldname 'somethingelse_mytype'

div[id$='_mytype'] { color: red }