【发布时间】:2018-04-24 14:12:42
【问题描述】:
我们正在构建一个类似于看板的 Web 应用程序,看起来像这样:
所以我们有泳道,里面有物品。
目前我们有这样的布局:
<ul>
<ul class="swimlane">
<li>Item a1</li>
</ul>
<ul class="swimlane">
<li>Item b1</li>
<li>Item b2</li>
<li>Item b3</li>
</ul>
<ul class="swimlane">
<li>Item c1</li>
<li>Item c2</li>
</ul>
</ul>
所以我们有一个车道列表,它们本身就是项目列表。
现在我们正在尝试通过允许table navigation from nvda 来访问板导航。例如:clt+alt+left 转到左侧车道中的下一个* 单元格。
为了做到这一点,我们查看了 aria 角色 grid、row 和 gridcell。
但似乎这些东西只支持基于行的布局,而不支持基于列的布局。我们实际上并没有跨越所有车道的行。理论上,每个项目都可以有任意高度。
是否有类似column 角色或解决方法来实现类似的事情?
* 当然 next 并不总是很容易确定,因为车道可以有不同数量的项目,所以不是每个项目都有左邻居(例如示例中的项目 b2)
另一种解决方案是手动实现 nvda 的表格导航快捷方式。但似乎 nvda 在它们到达浏览器和我的应用程序之前捕获了这些击键。有办法解决吗?
第三种解决方案是使用与 nvda 类似的快捷方式。但我们希望避免这种情况。
【问题讨论】:
-
请注意,HTML 无效。
ul不能有ul作为孩子。 -
它看起来像
table,但不是table。 NVDA 用户将使用列表导航。
标签: html accessibility wai-aria