屏幕 reader 以读取切换内容中的列表信息
Screen reader to read list information in toggled content
我有这个菜单,其项目在其下方切换下拉菜单。这些下拉列表最初是隐藏的,可以包含任何内容,主要是子菜单。最初是隐藏的,在屏幕 reader 页面加载的初始传递期间不会读取下拉菜单的内容 - 这很好。
在页面加载期间,屏幕 reader 读取 整个页面 。当您进入和退出区域、列表等时,它会读取。页面其他区域上的可见菜单读取如下:
Navigation region, List of N items...
后跟列表中的每一项。
问题:当我通过其中的菜单打开下拉菜单和选项卡时,屏幕 reader 读取下拉菜单内容的方式与页面加载期间不同。跳入时,它只是读取聚焦的项目。当设置 aria-live
并切换下拉菜单时,它会读取整个下拉菜单,就像一个长连接字符串一样。
我该怎么做才能在切换下拉菜单时,屏幕 reader 以与页面加载期间相同的方式读取下拉菜单的所有内容?
在加载页面时阅读整个页面是一个屏幕 reader 选项。并非所有屏幕 reader 都这样做,而那些可能没有默认启用该选项的屏幕。用户可能必须将其打开。
当菜单为 expanded/displayed 时,它不应读取所有项目。屏幕 reader 用户不会期望如此,因此您不应该强迫它。
只要您的菜单是语义编码的,屏幕 reader 用户就没问题。请注意,如果您的菜单用于导航(即,菜单中的项目将您带到其他页面),则应 而不是 使用 role="menu"
。 "menu" 角色更多用于 application-type 菜单(如老式文件、编辑、查看、帮助等),如果您使用该角色,则还必须使用箭头键(就像应用程序菜单一样工作)。
对于导航菜单,将子菜单项放在列表 (
) 中通常就足够了。见 W3 tutorial on accessible navigation menus.
我有这个菜单,其项目在其下方切换下拉菜单。这些下拉列表最初是隐藏的,可以包含任何内容,主要是子菜单。最初是隐藏的,在屏幕 reader 页面加载的初始传递期间不会读取下拉菜单的内容 - 这很好。
在页面加载期间,屏幕 reader 读取 整个页面 。当您进入和退出区域、列表等时,它会读取。页面其他区域上的可见菜单读取如下:
Navigation region, List of N items...
后跟列表中的每一项。
问题:当我通过其中的菜单打开下拉菜单和选项卡时,屏幕 reader 读取下拉菜单内容的方式与页面加载期间不同。跳入时,它只是读取聚焦的项目。当设置 aria-live
并切换下拉菜单时,它会读取整个下拉菜单,就像一个长连接字符串一样。
我该怎么做才能在切换下拉菜单时,屏幕 reader 以与页面加载期间相同的方式读取下拉菜单的所有内容?
在加载页面时阅读整个页面是一个屏幕 reader 选项。并非所有屏幕 reader 都这样做,而那些可能没有默认启用该选项的屏幕。用户可能必须将其打开。
当菜单为 expanded/displayed 时,它不应读取所有项目。屏幕 reader 用户不会期望如此,因此您不应该强迫它。
只要您的菜单是语义编码的,屏幕 reader 用户就没问题。请注意,如果您的菜单用于导航(即,菜单中的项目将您带到其他页面),则应 而不是 使用 role="menu"
。 "menu" 角色更多用于 application-type 菜单(如老式文件、编辑、查看、帮助等),如果您使用该角色,则还必须使用箭头键(就像应用程序菜单一样工作)。
对于导航菜单,将子菜单项放在列表 (
- ) 中通常就足够了。见 W3 tutorial on accessible navigation menus.