发布
社区首页 >问答首页 >可访问性角色应用

可访问性角色应用
EN

Stack Overflow用户
提问于 2018-06-11 12:46:02
回答 2查看 1.9K关注 0票数 1

下面是我们的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将得到键而不是屏幕阅读器。

在加载页面时检查向下箭头键的功能,无论是否加载屏幕读取器.

键盘音符

  • 按f6从小部件1转到小部件2到导航器
  • 您可以在小部件中使用箭头/选项卡键导航。
  • 使用f6移动到导航器,然后按选项卡转到任意按钮,然后按转义键。现在关注的是身体(使用document.activeElement检查)。
  • 在没有屏幕阅读器的情况下,我们的小部件捕捉到主体上的键并处理它,即使它们没有焦点。
  • 然而,对于屏幕阅读器,当主体有焦点,用户按下箭头时,屏幕阅读器使用该键并将焦点移动到导航器,而不是具有小部件的应用程序区域,用户无法使用箭头键或屏幕阅读器使用的其他键进入appArea。

注-

  • 如果我们将角色应用程序指定为完成应用程序,那么导航器的默认箭头键处理将停止工作,这是不需要的。
  • 角色应用程序的删除是不可能的,因为appArea相当复杂,有数百个小部件,它们都有键盘处理。
EN

回答 2

Stack Overflow用户

发布于 2018-06-21 14:11:50

有三种方法可以与role=“应用程序”交互。

  1. 按enter上的应用程序元素,退出编辑模式(或表单模式),并使用应用程序,就像它是另一个网页。您可以将其他元素放在那里,屏幕阅读器将在眉毛模式下通过这些元素。
  2. 在应用程序上点击enter,将屏幕读取器弹出到编辑模式,其中所有键都传递给应用程序中的编辑小部件。并且处理应用程序中的所有内容,可能是在按键事件上。
  3. 当屏幕阅读器使用粗纱表指数按下键时,控制该表索引。

您目前有1和3,这真是令人费解。如果删除了应用程序元素,它仍然可以正常工作。听起来好像你想要两个。除非你有一个屏幕阅读器用户不断地测试UX或构建你的应用程序,否则你是非常气馁的。数字2主要用于游戏,并被认为是屏幕阅读器的“画布”元素。通过执行以下操作执行2项操作:

代码语言:javascript
代码运行次数:0
复制
    <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。在应用程序中,应用程序元素是第一个元素。

票数 1
EN

Stack Overflow用户

发布于 2018-06-12 19:38:18

role='application'应该在罕见的情况下使用。正如您注意到的,它会导致所有键盘事件跳过屏幕阅读器,直接转到应用程序。这将导致屏幕读取器虚拟游标无法工作。通常,屏幕阅读器将自动进入“应用程序”模式(通常称为“窗体模式”),用于某些类型的小部件,例如输入字段。如果您使用的是小部件角色,您将获得这种“表单模式”免费。

当你说“箭头键”不起作用时,你说的是上下箭头还是左/右箭头?对于屏幕阅读器来说,它们有不同的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50798108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档