Если поле ввода находится внутри тега <form>
, как предполагалось, тогда required
будет работать корректно во всех современных браузерах. Демо:
<form>
<div>
<label for="Username">Username: </label>
<input type="text" name="username" id="Username" required>
</div>
<input type="submit" value="click to test"/>
</form>
Также for=
на ярлыке требует, чтобы целевой элемент имел id
с соответствующим текстом, прежде чем он вступит в силу. Он не взаимодействует с атрибутом name
. Я добавил идентификатор в демо.