Html 屏幕阅读器,用于读取切换内容中的列表信息

Html 屏幕阅读器,用于读取切换内容中的列表信息,html,wai-aria,screen-readers,jaws-screen-reader,Html,Wai Aria,Screen Readers,Jaws Screen Reader,我有一个菜单,它的项目在下面切换一个下拉列表。这些下拉列表最初是隐藏的,可以包含任何内容,主要是子菜单。由于最初是隐藏的,所以在屏幕阅读器加载页面时,不会读取下拉列表的内容-这很好 页面加载期间,屏幕阅读器读取整个页面。当您输入和退出区域、列表等时,它会显示。页面其他区域上的可见菜单如下所示: 导航区域,N个项目的列表 然后是列表中的每个项目 问题是:当我通过菜单打开下拉列表和选项卡时,屏幕阅读器读取下拉列表内容的方式与页面加载时不同。当标签插入时,它只读取聚焦项。设置aria live并切换下

我有一个菜单,它的项目在下面切换一个下拉列表。这些下拉列表最初是隐藏的,可以包含任何内容,主要是子菜单。由于最初是隐藏的,所以在屏幕阅读器加载页面时,不会读取下拉列表的内容-这很好

页面加载期间,屏幕阅读器读取整个页面。当您输入和退出区域、列表等时,它会显示。页面其他区域上的可见菜单如下所示:

导航区域,N个项目的列表

然后是列表中的每个项目

问题是:当我通过菜单打开下拉列表和选项卡时,屏幕阅读器读取下拉列表内容的方式与页面加载时不同。当标签插入时,它只读取聚焦项。设置aria live并切换下拉列表时,它会像读取一个长串接字符串一样读取整个下拉列表


如何做到在切换下拉列表时,屏幕阅读器以与页面加载时相同的方式读取下拉列表的所有内容?

在加载整个页面时读取整个页面是一个屏幕阅读器选项。并不是所有的屏幕阅读器都这样做,默认情况下,那些不这样做的阅读器可能没有打开该选项。用户可能必须打开它

展开/显示菜单时,不应读取所有项目。屏幕阅读器用户不会期望这样,因此您不应该强制执行

只要菜单按语义编码,屏幕阅读器用户就可以了。请注意,如果您的菜单用于导航ie,菜单中的项目将带您进入其他页面,则不应使用role=菜单。菜单角色更适用于应用程序类型的菜单,如旧学校文件、编辑、查看、帮助等,如果您使用该角色,则还必须使用箭头键实现键盘导航,就像应用程序菜单一样

对于导航菜单,在列表中包含子菜单项通常就足够了。看