最近使用elementui中的el-radio,在我选中单选项时发现控制台输出报错信息

在这里插入图片描述

查找资料发现:这个警告信息是由于 aria-hidden 属性和焦点管理冲突导致的。在 Element UI 的 el-radio 组件中,标签被设置为 aria-hidden=“true”,但同时其子元素(如 <input>)仍然保留了焦点,这会导致辅助技术(如屏幕阅读器)无法正确识别焦点状态,就会触发此警告。

解决方案:

  1. 隐藏造成焦点冲突的子元素(推荐
    aria-hidden属性用于指示屏幕阅读器和其他辅助技术是否应该忽略某个元素。将其设置为true意味着该元素不应该被辅助技术读取或显示

    input[aria-hidden="true"] {
        display: none !important;
    }
    .el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner {
        box-shadow: none !important;
    }
    
  2. 检查并移除不必要的 aria-hidden
    检查 el-radio 组件或其父元素是否被错误地设置了 aria-hidden=“true”。
    如果 aria-hidden 不是必需的,可以将其移除。

  3. 使用 inert 属性
    inert属性可以防止元素及其子元素接收焦点和事件,同时也会隐藏它们。这比aria-hidden="true"更合适,因为它不仅隐藏了元素,还阻止了它们的交互

    input[aria-hidden="true"] {
        inert: true;
    }
    
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐