Loading [MathJax]/jax/input/TeX/config.js
社区首页 >问答首页 >可访问性角色应用

可访问性角色应用
EN

Stack Overflow用户
提问于 2018-06-11 04: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 06: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 11:38:18

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

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

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

https://stackoverflow.com/questions/50798108

复制
相关文章
如何提交自己的项目到Maven公共仓库 | 萌新学开源 02
在上一篇文章中,我介绍了自己的SpringBoot Starter项目,可以让我们使用注解的方式轻松地获取操作日志,并推送到指定数据源。
Rude3Knife的公众号
2021/12/13
2.3K0
如何提交自己的项目到Maven公共仓库 | 萌新学开源 02
手把手教你提交Jar包到Maven公共仓库 | 萌新写开源02
在上一篇文章中,我介绍了自己的SpringBoot Starter项目,可以让我们使用注解的方式轻松地获取操作日志,并推送到指定数据源。
蛮三刀酱
2021/12/14
1.2K0
手把手教你提交Jar包到Maven公共仓库 | 萌新写开源02
手把手教你提交Jar包到Maven公共仓库
在上一篇文章中,我介绍了自己的SpringBoot Starter项目,可以让我们使用注解的方式轻松地获取操作日志,并推送到指定数据源。
蛮三刀酱
2022/01/05
2.4K0
手把手教你提交Jar包到Maven公共仓库
Ubuntu之docker安装:
装docker毕竟一般是 CentOS 我之前在大二也是在GentOS上安装的docker,这节课的内容是已经完成过的,在征得老师同意后,我准备在ubuntu上安装一个docker。
十二惊惶
2024/02/28
4050
发布jar到Maven时遭遇gpg签名失败
有许久没维护自己开源的项目了,此次在修复BUG发布时遭遇失败,检查后发现原因是因为gpg签名失败,没办法换了MAC电脑有些操作不熟悉是有点郁闷的。
凡梦星尘
2024/11/20
1280
开源:上传 Jar 包至 Maven 中央仓库
最近我将服务发现组件开源了:cloud-discovery,分享一下 Jar 包上传中央仓库过程遇到的问题与总结。需要说明的是,在下面两篇文章中已经将步骤写的非常清楚了,本文主要记录的是我在操作过程中遇到的一些坑,以供参考。
杨同学technotes
2022/12/01
8110
ARP协议:地址解析协议
ARP(Address Resolution Protocol)是一种用于解析网络层的IP地址和链路层的物理地址之间关系的协议。它主要用于在局域网中查找目标设备的物理地址,以确保数据包能够正确地从源设备传递到目标设备。
人不走空
2024/02/20
6600
ARP协议:地址解析协议
Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库
Maven 中央仓库并不支持直接上传 jar 包,因此需要将 jar 包发布到一些指定的第三方 Maven 仓库,比如:Sonatype OSSRH 仓库,然后该仓库再将 jar 包同步到 Maven ,本文详细记录整个发布、同步过程。
NebulaGraph
2019/12/12
1K0
Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库
The GNU Privacy Guard
对比《连城诀》,第一步是「唐诗选辑」(不过用口水解密不够文雅),第二部是「唐诗剑法」(没有师傅认证亲传武功是不行的),最后才解密出「江陵城南偏西天宁寺大殿佛像向之虔诚膜拜通灵祝告如来赐福往生极乐」。 当然也有类似凌退思这样“密码字典暴力破解”的方法 :-) 所以我们的 GPG 钥匙长度要设置的长长长一些。
筱竼
2022/08/09
4.8K0
The GNU Privacy Guard
jenkins 邮件_邮件发送协议邮件接收协议
前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了。
全栈程序员站长
2022/09/20
2.4K0
jenkins 邮件_邮件发送协议邮件接收协议
手把手教你把Java SDK发布到中央仓库
写了个Java SDK(ava Library),想要让更多的猿媛使用,如何发布到中央仓库(Maven Central)呢?
许杨淼淼
2020/06/28
1.7K0
关于把自己的Jar包开源到Maven仓库的问题
首先要做的是申请上传资格,就是要在sonatype平台上进行申请。注册成功后,登录,然后会提示选择语言,这个时候就可以选择中文了,下文截图均为中文页面。
全栈开发日记
2022/05/13
7690
关于把自己的Jar包开源到Maven仓库的问题
地址解析协议ARP
IP地址(32位)和硬件地址(48位)之间不存在简单的映射关系。ARP协议解决IP地址与物理地址的映射,而RARP协议解决物理地址与IP地址的映射。
一个风轻云淡
2024/02/10
2640
Deepin15.11下apt报错
【注】命令中的 xxx 为报错中 NO_PUBKEY 后的 GPG Key 。命令中的 keyserver.ubuntu.com 为提供 GPG Key 对应的 GPG 验证文件的公钥服务器,目前国内可访问的公钥服务器列表如下:
hotarugali
2022/03/01
1.1K0
Ubuntu20.04下apt报错
【注】命令中的 xxx 为报错中 NO_PUBKEY 后的 GPG Key 。命令中的 keyserver.ubuntu.com 为提供 GPG Key 对应的 GPG 验证文件的公钥服务器,目前国内可访问的公钥服务器列表如下:
hotarugali
2022/02/28
1.2K0
UDP协议源码解析之接收
调用读取数据的函数前,我们要先调用bind绑定socket对应的地址信息,因为系统是根据地址和端口去查找一个socket的。由代码可以知道,入口没有什么逻辑,主要逻辑在udp层的实现代码中。代码的实现比较简单,就是从socket的接收队列中摘下数据。
theanarkh
2019/03/06
1.1K0
GPG基本使用方法
GnuPG是用于加密、数字签名及产生非对称匙对的软件。下载与安装方式:gpgtools
Huramkin
2018/09/17
1.8K0
GPG in Emacs
Pretty Good Privacy (PGP) 是一款诞生于 1991 年的,一款用于认证、加密的一款软件,现如今已经有了标准化协议 OpenPGP,最常用的实现是 GnuPG,一般提到 GPG 时都是指的 GnuPG。
飞驰的西瓜
2022/07/26
9780
GPG in Emacs
地址解析协议 ARP
ARP(Address Resolution Protocol,RFC 826)是根据IP地址获取物理地址的一个TCP/IP协议。主机通过将ARP请求广播到网络上的所有主机并接收返回消息来确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存。
十二惊惶
2024/02/28
3830
地址解析协议 ARP
arp 地址解析协议
这个时候,就涉及到一个 arp缓存表(<ip,mac>),每个主机都有这么个缓存表,也是为了能够节省网络上arp报文的数量。(分动态项和静态项,动态项的话,就会如果太久没发送,2-10分钟,就会自动删除,原因是,怕人家更换了硬件)
forxtz
2020/10/10
1.1K0

相似问题

gpg: keyserver接收失败: keyserver错误

10

gpg: keyserver接收失败: No dirmngr

20

gpg: keyserver接收失败:没有数据

10

yay错误: gpg: keyserver接收失败:无名称

10

wget:获取响应错误:协议不支持的地址系列

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文