我正在编写一个非常简单的SPA应用程序,它只有一个只读的输出'字段,后跟单个输入字段。当用户键入输入命令并按Enter键时,JavaScript会将文本写入输出字段。我希望屏幕阅读器能够直接读取此输出而无需用户导航到输出字段,因此我添加了aria-live,因此:
<div>
<div class="output" aria-live="polite">{{myViewModel.output}}</div>
<input type="text" myAngularDirective />
</div>
在第一次迭代中,这完全符合我的要求。但是,某些命令会更改Url(尽管使用相同的视图渲染),我想确保焦点保留在输入字段上,并且在大多数情况下,输入字段将被清除以用于下一个命令。当我添加代码以聚焦输入或修改它时,输出仍然可以在屏幕上呈现,但不再被屏幕阅读器读出。
我试过了:
没有任何区别。如果我删除焦点/清除逻辑,一切都很好。关于我失踪的咏叹调如何运作有一些微妙之处:任何帮助都值得赞赏。