aria-expanded 在从 DOM 中删除的按钮上

问题描述 投票:0回答:1

有一个链接……不,这是一个按钮……

<button *ngIf="!isExpanded" aria-expanded="false">Expand</button>

执行一些javascript代码来扩展一些区域。

我们应该如何正确处理链接在点击链接时从 DOM 中删除的情况,因为 *ngIf="!isExpanded" 变为 false?因此, aria-expanded="true" 在这种情况下不会发挥作用。如何判断 aria-expanded 变成了 true?

javascript html angular accessibility toggle
1个回答
0
投票

单击按钮后从 DOM 中删除按钮是个坏主意。

您没有可靠的方式来传达展开状态。即使您将 aria-expanded 设置为 true,屏幕阅读器也可能没有时间在按钮被移除之前正确地宣布它,或者宣布可能会在中间被切断。 因此,点击时究竟发生了什么可能并不总是很清楚。

此外,如果你移除当前获得焦点的元素,焦点基本上无处可去或随机出现在某个地方。 对于仅使用键盘的用户来说,这可能是一个真正的问题,因为如果没有鼠标,焦点可能无法恢复。

还有一个问题:如果我想再次折叠该部分怎么办? 这样做可能非常有用,尤其是当该部分很长时。对于仅使用屏幕阅读器和键盘的用户,它可以在几种不同的情况下保存大量选项卡和/或向上/向下箭头:当我完成阅读/使用该部分时,当该部分未显示我想要的内容时, ETC。 有没有什么特别的原因让你觉得展开后收起来完全没用?

UX 来说,除非你真的有充分的理由或行动显然是明确的,否则应该总是有办法取消/回到以前的状态。 与删除数据或发送付款相比,展开/折叠一个部分当然是完全有害的,但是,如上所述,您仍然会让一些人浪费时间。在这里你没有任何充分的理由来阻止它,所以你应该允许它。

所以至少出于上述原因,我建议您在单击该按钮时不要将其删除。 对于使用屏幕放大镜的弱视用户,将它移到远处也是一个坏主意,因为他们很容易忘记它去了哪里。

© www.soinside.com 2019 - 2024. All rights reserved.