已更新
我正在开发一个必须符合508标准的项目。该应用程序的一部分具有动态元素。
例如,有这个html:
<div id="dynamicDiv"></div>
<select id="selectId"></select>
select
的选项在数据库的后端填充。当用户从select
中选择一个选项时,会将一个元素填充到dynamicDiv
元素中。在这种情况下,它是label
,包含选项中的文字,button
,点击后会从label
移除button
和dynamicDiv
。
当我使用JAWS 16进行测试时,JAWS似乎已经失去了#34;在DOM中。焦点仍然在select
,但JAWS正在读取添加的元素的信息。通常情况下,它会在添加到label
的{{1}}和button
之间开始阅读。当您尝试使用箭头键浏览dynamicDiv
时,JAWS开始读取,就像您正在浏览DOM一样。
所有这一切中最奇怪的部分是select
继续有蓝色突出显示和点缀聚焦的边界。如果您可以让JAWS阅读select
的内容并按Enter键,则select
将返回工作状态(能够使用箭头键浏览select
中的选项),直到你从选项中选择一个新东西。然后JAWS又迷路了。
我试图强调关注select
,但这也不起作用。 select
看起来好像仍然有焦点,但JAWS正在阅读更新后的select
。我在想的是JAWS从DOM使用的索引没有被更新。所以JAWS认为它在同一个元素上(在这种情况下为dynamicDiv
),但它实际上指向已添加到DOM的新元素。
有没有人碰到这个?有谁知道解决方案?