下面是我们的web应用程序https://roleapplication.herokuapp.com/index.html的虚拟实现
appArea元素具有角色应用程序,因为它包含高度复杂的小部件,如ms has /editor/ms office。导航器包含标准web小部件,如下拉列表和按钮。
HTML类似于下面指定的内容。
<body> <div class="appArea" role="application"> .......//Complex widgets </div> <div class="toolbar"> ......//Buttons, dropdowns </div> </body>
appArea的键盘功能由其代码处理,对于工具栏,我们依赖于屏幕阅读器的键盘处理,因为它们在web浏览器中工作。
问题-当用户在导航器区域按转义键时,我们会模糊导航器,因此默认情况下焦点会转到主体上。现在焦点在正文中,然后箭头键将焦点移动到工具栏,因此用户永远无法进入appArea。如果焦点在appArea中,它可以正常工作。
期望-当焦点放在主体上,然后按下箭头,焦点应该在appArea内,然后appArea将得到键而不是屏幕阅读器。
在加载页面时检查向下箭头键的功能,无论是否加载屏幕读取器.
键盘音符
注-
发布于 2018-06-21 14:11:50
有三种方法可以与role=“应用程序”交互。
您目前有1和3,这真是令人费解。如果删除了应用程序元素,它仍然可以正常工作。听起来好像你想要两个。除非你有一个屏幕阅读器用户不断地测试UX或构建你的应用程序,否则你是非常气馁的。数字2主要用于游戏,并被认为是屏幕阅读器的“画布”元素。通过执行以下操作执行2项操作:
<div role="application">
<input type="button" autoFocus="true" value="Click me" />
<p aria-live="polite" id="spk"></p>
</div>
spk元素是将消息发送到屏幕阅读器,您需要在这个窗口、图标、菜单、消息(WIMM)接口中完成这些任务。请记住,在这种模式下,您需要对所有内容进行编程,如果没有达到期望,用户就会不高兴。
你说你在做文字处理器。最后一个选项(数字2)并不意味着要制造一个字处理器。作为一个屏幕阅读器用户,我对文字处理器有期望和工作流程。在Javascript中手动编程是无法获得该功能的。相反,使用HTML为此提供的现有编辑字段,如:此文本编辑器示例
如果有什么原因不想使用上面的小部件,请告诉我。
您可以使用3和普通的小部件一起使用,但最好是执行Google的操作,并允许用户在页面加载时进入编辑模式,或者按一个键(如转义)进入tabindex应用程序区域(它不需要在应用程序元素中,尽管它可以)。
编辑:再读一遍你的问题后,听起来好像你不知道如何输入应用程序元素。你可以箭头到屏幕阅读器说“应用程序”的地方,然后按回车。要退出,可以选择选项卡到应用程序之外的下一个tabindex元素,或者按下特殊的key命令退出应用程序。在NVDA中,这个键命令是ctrl+nvda+space。在应用程序中,应用程序元素是第一个元素。
发布于 2018-06-12 19:38:18
role='application'
应该在罕见的情况下使用。正如您注意到的,它会导致所有键盘事件跳过屏幕阅读器,直接转到应用程序。这将导致屏幕读取器虚拟游标无法工作。通常,屏幕阅读器将自动进入“应用程序”模式(通常称为“窗体模式”),用于某些类型的小部件,例如输入字段。如果您使用的是小部件角色,您将获得这种“表单模式”免费。
当你说“箭头键”不起作用时,你说的是上下箭头还是左/右箭头?对于屏幕阅读器来说,它们有不同的行为。
https://stackoverflow.com/questions/50798108
复制相似问题