哪一个是更好的解决方案?隐藏的咏叹调,从DOM或其​​他东西中删除元素

Lia*_*ang 2 javascript accessibility wai-aria

就个人而言,我认为删除元素可能更适合网站维护,但为了可访问性,它是否可以保存?

样本会是

      <input type="radio" value="single" name="userGroup" id="single" required />
      <label for="single">Single</label>

      <input type="radio" value="families" class="form-checkbox" name="userGroup" id="families" required />
      <label for="families" >Families</label>
Run Code Online (Sandbox Code Playgroud)

其余的表单字段将根据userGroup的不同而不同

当用户在单个和家庭之间切换时,家庭组将在单个表单字段之上添加额外字段,如"帐单支付"部分(合并与否)和"您希望如何共享数据计划"(限制使用与否)

作为一种形式,像"账单支付"这样的元素应该是咏叹调隐藏真实还是从DOM中移除?

aar*_*ian 7

如果没有更多的上下文和/或URL来查看它的实际应用,很难回答这个问题.

如果允许用户返回并更改选择,然后更改后续字段,则考虑用户何时出错.通过完全从DOM中删除字段,用户已输入的任何内容都将丢失.如果这是一个错误,那么用户切换回来看到丢失的信息,可能会生气.

严格来说,从可访问性的角度来看,我只会隐藏字段,以便用户可以在Single和Families之间切换,而不会丢失他/她可能难以输入的任何信息.

aria-hidden如果您使用CSS将容器设置display:none为,也可以跳过使用,因为它也会将其隐藏在屏幕阅读器中.这意味着切换时不必管理CSS和HTML属性,只需管理其中一个即可.