Bug report
While investigating another issue (react-final-form-html5-validation#10, react-final-form-html5-validation#14), I discovered that required _IS_ sometimes passed to the underlying DOM input element... I believe this isn't right, though I wish if it was sent in both examples.
required is passed in first two examples, but not in third.
// first is ommited as it is using Field from react-final-form-html5-validation
<div>
<label>Required Field*</label>
<Field
name="field2"
component="input"
type="text"
required // is passed to dom input
/>
</div>
<Field name="field3" required>
{({ input, meta }) => (
<div>
<label>Required Field*</label>
<input
{...input} // required is not inclued here
type="text"
/>
{meta.error && meta.touched && <span>{meta.error}</span>}
</div>
)}
</Field>

Expected is that parent <Field required/> doesn't pass the required聽prop to underlying input in both cases OR that it does send ALL the additional parameters to the input in both cases.
The problem is that input & meta are provided by React Final Form, any other prop is put on the same object, so you can do this:
<Field name="field3" required>
{({ input, meta, ...rest }) => (
<div>
<label>Required Field*</label>
<input
{...input}
{...rest} // required is included here
type="text"
/>
{meta.error && meta.touched && (
<span>{meta.error}</span>
)}
</div>
)}
</Field>
Most helpful comment
The problem is that input & meta are provided by React Final Form, any other prop is put on the same object, so you can do this:
See https://codesandbox.io/s/determined-cache-v04f8