我有这个菜单,它的项目在其下切换下拉菜单。这些下拉菜单最初是隐藏的,可以包含任何内容,大部分是子菜单。由于最初是隐藏的,因此在屏幕阅读器初始传递页面加载过程中不会读取下拉菜单的内容-很好。
在页面加载期间,屏幕阅读器会读取整个页面。当您进入和退出区域,列表等时,它会读取。页面其他区域上的可见菜单显示为:
导航区域,N个项目的列表...
后跟列表中的每个项目。
问题:当我打开下拉菜单并在其中的菜单中进行选择时,屏幕阅读器不会以与页面加载期间相同的方式读取下拉内容。签入时,它仅读取聚焦的项目。设置aria-live
并切换下拉菜单后,它将读取整个下拉菜单,就像一个长串字符串一样。
我该如何做,以便在切换下拉菜单时,屏幕阅读器以与页面加载期间相同的方式读取下拉菜单的所有内容?
答案 0 :(得分:1)
加载页面时读取整个页面是一个屏幕阅读器选项。并非所有的屏幕阅读器都可以执行此操作,默认情况下,那些屏幕阅读器可能未启用该选项。用户可能必须打开它。
展开/显示菜单时,不应阅读所有项目。屏幕阅读器用户不会期望如此,因此您不应强行使用它。
只要您的菜单是按语义编码的,屏幕阅读器用户就可以了。请注意,如果菜单用于导航(即菜单中的项目将您带到其他页面),则应不使用role="menu"
。 “菜单”角色更多地用于应用程序类型的菜单(例如老式的File,Edit,View,Help等),如果您使用该角色,则还必须使用箭头键来实现键盘导航(就像应用程序菜单一样)工作)。
对于导航菜单,通常将子菜单项放在列表(