Голос не читает, что я печатаю в текстовом поле
Ниже мой код:
<form>
<div class="form-group loginFormGrp">
<label class="caption">Backup Cloud</label>
<div class="custSelect loginSelect">
<label class="caption">Server URL</label>
<input type="text" aria-label="Server URL" name="serverUrl" class="form-control" placeholder="example.server.com" value="">
</div>
<div class="form-group loginFormGrp">
<label class="caption">Email</label>
<input type="text" aria-label="Email" name="email" class="form-control" placeholder="[email protected]" value="">
</div>
<div class="loginBtnRow">
<button tabindex="0" type="submit" class="lgBtn btn btn-primary btn-block">Continue</button>
</div>
</div>
</form>
всякий раз, когда озвучивание подчеркивает входное текстовое поле, оно читает "В настоящее время вы находитесь в текстовом поле, внутри веб-содержимого. Для ввода текста в этом поле введите" Выйти из веб-области... ", и когда я начну вводить текст, он ничего не говорит. и проверил другие приложения или веб-сайты, на которых он читает, что я печатаю. но в моем случае это не чтение. Пожалуйста, помогите, если кто-нибудь знает решение.
Ответы
Ответ 1
Добавьте атрибут title
в элемент ввода и укажите дополнительный текст.
Добавление aria-label
к входным элементам также должно быть выбрано считывателями экрана.
http://pauljadam.com/demos/title-aria-label.html предоставляет подробную информацию о том, как различные браузеры и устройства чтения с экрана обрабатывают эти атрибуты.
Ответ 2
Я не уверен, поможет ли это, но вы можете попытаться обновить атрибут value
полей, каждый раз, когда пользователь меняет текстовое поле. Что-то вроде того:
document.querySelectorAll('input[type="text"]').forEach(function(v){
v.addEventListener('input', function(){
v.setAttribute('value', v.value);
});
});
Но я хочу, чтобы кто-то дал лучший ответ, не используя лишний JavaScript.
Ответ 3
Ваш код выглядит довольно хорошо. Я пробовал с помощью chrome-плагина под названием ChromeVox, все кажется прекрасным, за исключением того, что добавить атрибут lang в родительский тег html и вложить в тег body все, что угодно.
<html lang="en-US" style="height: 100%;">
<body>
<form>
<div class="form-group loginFormGrp">
<label class="caption">Backup Cloud</label>
<div class="custSelect loginSelect">
<label class="caption">Server URL</label>
<input type="text" aria-label="Server URL" name="serverUrl" class="form-control" placeholder="example.server.com" value="">
</div>
<div class="form-group loginFormGrp">
<label class="caption">Email</label>
<input type="text" aria-label="Email" name="email" class="form-control" placeholder="[email protected]" value="">
</div>
<div class="loginBtnRow">
<button tabindex="0" type="submit" class="lgBtn btn btn-primary btn-block">Continue</button>
</div>
</div>
</form>
</body>
</html>