解决ElementUI中el-radio使用报错问题:Blocked aria-hidden on an element because its descendant retained focus
查找资料发现:这个警告信息是由于 aria-hidden 属性和焦点管理冲突导致的。在 Element UI 的 el-radio 组件中,标签被设置为 aria-hidden=“true”,但同时其子元素(如 <input>)仍然保留了焦点,这会导致辅助技术(如屏幕阅读器)无法正确识别焦点状态,就会触发此警告。这比aria-hidden="true"更合适,因为它不仅隐藏了元素,还阻止了它们的交
·
最近使用elementui中的el-radio,在我选中单选项时发现控制台输出报错信息

查找资料发现:这个警告信息是由于 aria-hidden 属性和焦点管理冲突导致的。在 Element UI 的 el-radio 组件中,标签被设置为 aria-hidden=“true”,但同时其子元素(如 <input>)仍然保留了焦点,这会导致辅助技术(如屏幕阅读器)无法正确识别焦点状态,就会触发此警告。
解决方案:
-
隐藏造成焦点冲突的子元素(推荐)
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; } -
检查并移除不必要的 aria-hidden
检查 el-radio 组件或其父元素是否被错误地设置了 aria-hidden=“true”。
如果 aria-hidden 不是必需的,可以将其移除。 -
使用 inert 属性
inert属性可以防止元素及其子元素接收焦点和事件,同时也会隐藏它们。这比aria-hidden="true"更合适,因为它不仅隐藏了元素,还阻止了它们的交互input[aria-hidden="true"] { inert: true; }
更多推荐
所有评论(0)