You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决p标签ESLint报错「非交互元素不应被分配交互角色」

你当前的代码使用非交互的<p>标签实现按钮功能,仅绑定onClick事件无法满足键盘可访问要求,同时你贴出的代码片段存在p标签未正确闭合的语法问题,也会触发运行报错。

方案1(最优):替换为原生<button>标签

原生<button>自带键盘可访问能力:默认支持Tab聚焦、回车/空格触发点击事件、自带按钮语义,无需额外绑定事件和属性,修改代码如下:

<button className={styles['clear-text']} onClick={clearAllFilters}>
  Clear All
</button>

如果需要清除按钮的默认样式,可以加对应样式重置:

.clear-text {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

方案2:如果必须保留<p>标签,补全可访问属性

需要手动添加交互属性和键盘事件逻辑,修改代码如下:

<p 
  className={styles['clear-text']}
  role="button"
  tabIndex={0}
  onClick={clearAllFilters}
  onKeyDown={(e) => {
    // 处理回车和空格触发逻辑
    if (e.key === 'Enter' || e.key === ' ') {
      e.preventDefault()
      clearAllFilters()
    }
  }}
>
  Clear All
</p>

内容的提问来源于stack exchange,提问作者Pulkit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:36:04