У меня была похожая проблема (macOS 10.15.3, Safari 13.0.5 и 10.15.4, 13.1, я не могу воспроизвести в Ma c Chrome 80 или iOS 13.3.1 Safari) , Похоже, это происходит, когда <label>
имеет дочерние элементы с display: block, особенно если есть сочетание дочерних элементов с и без display: block или сочетание TextNodes и элементов с display:block
.
В вашем случае метка является неявной (входной элемент является дочерней по отношению к метке) и явной (метка содержит атрибут, ссылающийся на идентификатор входной информации). Хотя это ненужное дублирование (как добавление tagindex="0"
к элементу <input>
), это не связано с проблемой. Я воспроизвел проблему с неявными и только явными метками и входными данными. Кажется, для воспроизведения проблемы необходимы две вещи:
<label>
изменено на display:block
<label>
имеет по крайней мере один дочерний элемент display:block
, но не все дети с display:block
Изменение элемента метки таким образом, что одно из этих двух требований не выполняется, кажется, исправляет это.
<!-- VoiceOver is saying "First Nameandone more item, edit text" -->
<!-- implicit -->
<label style="display:block">
<span style="display:block">First Name</span>
<input type="text">
</label>
<!-- explicit -->
<div>
<label for="firstname3" class="block">
First Name
<span style="display:block">Test</span>
</label>
<input id="firstname3" type="text">
</div>