我正在尝试为<select>
Android 屏幕阅读器读取的标签定义标题,主要称为“对讲”。在我的测试设备(Galaxy S8+)上,它被称为“语音助手”。
有趣的是,以下 HTML 适用于 NVDA (PC) 和 VoiceOver (iOS),但我不知道为什么它不适用于 Android。
这是作为 HTML 页面的最小示例:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>Test</title>
<style>
form{
background: red;
margin: 5px 0;
}
label,
select{
display: block;
margin: 10px 0;
}
</style>
</head>
<body>
<a href="/test">Test link</a>
<form action="/en" method="post" accept-charset="UTF-8">
<label name="edit-destination-1-label" id="edit-destination-1-label" for="edit-destination-1">Choose language</label>
<select id="edit-destination-1" name="edit-destination-1" aria-labelledby="edit-destination-1-label">
<option value="/de">German</option>
<option value="/fr">French</option>
<option value="/en" selected="selected">English</option>
</select>
</form>
<a href="/test">Test link</a>
</body>
</html>
如您所见,它只是和的参考for
以及.id
aria-labelledby
有谁知道这里的解决方案?我只想让安卓屏幕阅读器说“选择语言”,当你激活它时,它应该跳到选择菜单。
有关工作示例参考,请参阅post.ch 页面的“计算价格”部分。当您使用 Android 导航到它时,它会在<select>
.
编辑我为临时解决问题所做的是使用链接而不是标签,因为这有效。