JAWS无法读取role="textbox"内列表及聚焦div全内容读取的ARIA属性咨询
JAWS 2023 读取完整内容的ARIA配置方案
问题1:聚焦div容器时读取全部段落与列表
你添加presentation角色后JAWS仅读第一段,是因为该角色会剥离容器的语义,导致辅助技术无法识别子元素的结构化内容。正确配置如下:
修正代码
<div tabindex="0" role="region" aria-label="完整内容区域"> <p>one</p> <p>four</p> <ul> <li>one</li> <li>two</li> <li>three</li> </ul> <p> </p> <p>five</p> </div>
配置说明
role="region":将容器标记为可聚焦的内容区域,JAWS会识别并读取区域内所有子元素。aria-label:给区域命名,帮助用户理解聚焦内容的主题。- 保留
tabindex="0":让容器可以通过键盘聚焦。 - 移除
presentation角色:避免破坏子元素的语义结构。
问题2:role="textbox" aria-readonly="true"内列表无法读取
textbox角色原生仅支持纯文本内容,会忽略列表这类结构化元素。推荐替换角色实现需求:
替代方案代码
<div role="region" aria-label="只读内容区域" aria-readonly="true" tabindex="0"> <p>示例文本</p> <ul> <li>列表项1</li> <li>列表项2</li> </ul> </div>
方案说明
- 用
role="region"替代textbox:既保留可聚焦、只读的特性,又能正确解析内部的列表结构。 aria-readonly="true":标记容器内容为只读,符合需求。- 若必须使用
textbox,只能将列表转换为纯文本格式(如添加换行和项目符号),但会丢失列表的语义,不推荐。
内容的提问来源于stack exchange,提问作者user1638583
相关产品推荐
相关产品推荐

