- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力使用 <input type="text" role="spinbutton" />
实现具有递增/递减行为的可访问输入HTML/JavaScript 中的元素。但似乎 VoiceOver 有用于递增/递减的自定义(假?)输入事件,这些事件会以意想不到的方式改变输入的值。
如何确保使用辅助技术导航页面的用户在尝试与我的小部件交互时不会从 VoiceOver 获得错误的指导?
例如,使用这样的 super 精简代码:
function logIt(...args) {
document.getElementById('output').appendChild(
document.createTextNode(`${args.join(', ')}\n`)
);
}
document.getElementById("myInput").addEventListener('input', (e) => {
debugger;
logIt(e.type, e.data, String(e));
e.target.setAttribute('aria-valuenow', e.target.value);
}, false);
document.getElementById("myInput").addEventListener('keydown', (e) => {
logIt(e.type, e.data, String(e));
}, false);
<input
id="myInput"
type="text"
role="spinbutton"
autocomplete="off"
defaultValue="1"
aria-valuenow="1"
aria-valuemin="0"
aria-valuemax="100"
/>
</div>
<pre id="output"></pre>
InputEvent
由
event.type
触发正在
input
- 但是当使用 VoiceOver 键盘命令进行递增/递减时,基本类型为
Event
由
event.type
触发再次设置为
input
.
role="spinbutton"
实现所独有的。 . jQuery UI 微调器在使用 VoiceOver 键盘命令递增/递减时表现不佳:
role="spinbutton"
的一些 w3c 示例:
role="spinbutton"
标记可以与 VoiceOver 的递增/递减键盘命令一起正常工作吗?
最佳答案
我不相信role="spinbutton"
与 VoiceOver 兼容,因为 VoiceOver 似乎在使用 VoiceOver 光标时劫持了 keydown 事件。因此,当关注 role="spinbutton"
的元素时VoiceOver 指示用户使用“Control-Option DownArrow”或“Control-Option UpArrow”来减少或增加值。当这些键被按下时,事件不会进入任何 JavaScript keyDown 事件处理程序,因此我们无法检测到这些键已被按下,也无法实现值的实际递增或递减。所以我不确定有什么方法可以使用role="spinbutton"
并使其与 VoiceOver 一起使用。将向用户提供不起作用且令人困惑的指令。
作为我正在处理的应用程序的解决方法,我实现了 WAI ARIA authoring practices for spinbutton 中描述的 key 处理行为。但我没有添加role="spinbutton"
或列出的其他 aria 属性。相反,我添加了 aria-live="assertive"
这样当通过键盘或单击递增/递减按钮更改值时,用户会听到新值。此外,我添加了一些视觉上隐藏的文本,指导用户如何使用键盘增加/减少值,并使用 aria-describedby
将其与输入相关联。 .
关于javascript - 用画外音增加 `role="spinbutton"`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59177465/
我正在努力使用 实现具有递增/递减行为的可访问输入HTML/JavaScript 中的元素。但似乎 VoiceOver 有用于递增/递减的自定义(假?)输入事件,这些事件会以意想不到的方式改变输入的
我需要创建一个带有 SpinButton 的用户窗体。用户选择一个值,完成后单击“确定”(将所选值传递给另一个过程)。 它是这样的: 现在,如何在标签或其他向用户显示她选择的值的东西上显示 SpinB
我有三个相互依赖的 PyGTK SpinButton:将它们称为 A、B 和 C。还有另一个按钮 D 在 C 的两个相互定义之间切换,这样 C 的值定义为 A/B 除非 D 被按下奇数次。 例如,我希
我想在旋转按钮中有一个前导零,以便始终显示两位数。 adj_hour = gtk.Adjustment(int(time.strftime("%H")),0,24,1,1) entry_hour =
我很确定有一种简单的方法可以做到这一点……但我对 GTK3 (coding in C/C++) 不太熟练此刻,我发现自己陷入了寻找如何创建新的GtkSpinButton在输入文本框的上方和下方使用“+
我正在努力使用 Relm 在 Rust 中使用 SpinButton。 (免责声明,我是 Rust 和 GTK 的菜鸟) #![feature(proc_macro)] extern crate gt
与this相关,但更具体一点:如何创建像 gtk.SpinButton 中那样的微型按钮小部件? 最佳答案 这也是我很多个月的问题。您可以使用 gtk.Arrow,除非它与 SpinButton 不完
我有一堆控制文本框中的值的旋转按钮。我正在使用一个类来允许它们全部使用相同的更改事件。它非常适合未格式化的盒子。 但是,当我尝试使文本框显示 + 和 - 数字时,它无法正常工作。只有第一个旋转按钮可以
我是一名优秀的程序员,十分优秀!