html 可触及开关元件(Web)

w46czmvw  于 2022-11-20  发布在  其他
关注(0)|答案(1)|浏览(181)

我需要在一个内部应用程序的头中创建一个switch元素,让您在两个用户角色之间切换。其余的内容将根据所选角色呈现-例如,角色A和角色B有不同的导航项和操作。还需要注意的是,更改角色会导致页面重新加载。
到目前为止,我还不能找到一个只使用输入(复选框/单选)或按钮的可访问解决方案,所以我将这两个想法结合到以下内容中(请忽略按钮的样式,它只用于演示目的):
第一个
因此,基本上我展示了一个字段集,其中有两个选项作为屏幕阅读器用户的无线电输入,还有一个类似于浏览器中的开关按钮。
关于页面重新加载-WCAG technique G13需要通知用户,如果表单元素的更改导致上下文更改,将会发生什么情况(就像我们例子中的重载)。不幸的是,由于设计要求,我不能在按钮周围放置可视信息,所以我只在屏幕阅读器的字段集中添加了它。然而,据我所知,如果页面是一个intranet应用程序并且用户要接受培训(就像我们的例子),这应该不是问题。
我的解决方案还有其他可访问性问题吗?有人知道如何在不使用两个单独元素的情况下实现这一点吗?

f0ofjuux

f0ofjuux1#

一个人同时拥有两个角色,并且在使用应用程序的时候想要切换角色,这种情况是否很常见?如果你在使用应用程序之前就预先确定了角色,这样你就不需要切换角色了,那就太好了。但是在你需要在应用程序中间切换角色的前提下,我将提供一些关于可访问性的想法。
你是对的,单独的元素会导致问题。正如所提到的,使用“sr-only”类型类只是在视觉上隐藏信息,但并不能阻止键盘焦点。你需要tabindex="-1"来实现这一点,但这样一来,使用Tab键的屏幕阅读器用户就无法访问该元素。这将是一个糟糕的问题,嗯。
“sr-only”类用于可视地隐藏文本,而不是交互式元素。
对于视力较弱的用户来说,虽然他们有一定的视力,但也可以使用屏幕阅读器(可能还有屏幕放大镜)来增强他们的体验,他们会看到一个带有“角色A”的按钮,但他们不会听到它,因为它是aria-hidden,即使他们可以用Tab键切换到它,这也会引起混乱。
最好的解决方案是为所有用户提供一个界面,并使其语义正确。正如您所遇到的,挑战是什么是最好使用的小部件,以及如何传达该小部件的功能。
一种可能性是使用选项卡控件。您可以在一个选项卡上设置“角色A”,而在另一个选项卡上设置“角色B”。然后用户可以在这两个选项卡之间随意切换。如果用户没有同时拥有两个角色,则其中一个选项卡将被禁用,或者该选项卡将被完全删除,而他们只拥有一个角色的元素。使用选项卡控件可能会使重新加载页面变得不必要。但我不能肯定,因为我对角色转换的含义了解不够。
如果页面重新加载是必须的,所有的用户都应该得到通知。这不仅仅是针对视觉障碍。一些“障碍”是隐藏的,比如认知障碍,这有一系列的问题。意外的页面重新加载可能会让一些认知障碍感到困惑。我不知道为什么一个简单的短语,比如“(重新加载页面)",不能因为“设计要求”而编织到界面中。“可访问性要求”和“设计要求”一样重要。
你最初的<fieldset>解决方案看起来很有前途(如果你去掉“sr-only”类的话),因为它可以处理有视力的用户,低视力的用户,盲人用户,认知问题等等。但是让一个单选按钮引起页面重载还是有点奇怪。这违背了WCAG的“可理解”原则,尽管你可以通过一个适当的“重载”警告来满足3.2.2
看起来需要一个更“Oomph”的小部件。一个暗示一个动作会发生的小部件,通常是一个按钮。
当你纠结于这样的设计问题时,有时候你不得不回到设计中去重新思考工作流程。角色是否可以在你进入页面之前确定(这样就不需要切换角色了)?角色是否需要在应用程序中改变?等等。
另外,还有一点要注意,应用程序的可访问性并不重要,不管应用程序是内部的还是外部的,即使提供了培训。如果页面没有语义正确的元素,那么无论你接受了多少培训,一些用户都无法访问它。

相关问题