Skip to content
← Back to rules

jsx-a11y/anchor-ambiguous-text 限制

它的作用

检查锚点链接文本中是否使用了模糊词汇。

该规则会检查锚点元素的 aria-label 中的文本(如果存在)。
若锚点没有 aria-label,则会合并其子元素的以下文本内容:

  • aria-label(如果存在)
  • 若子元素为图片,则使用其 alt 文本
  • HTML 元素的文本内容

为什么这是个问题?

屏幕阅读器用户依赖链接文本获取上下文,像“点击这里”这样的模糊词汇无法提供足够的信息。

示例

此规则的 错误 代码示例:

jsx
<a>link</a>
<a>click here</a>

此规则的 正确 代码示例:

jsx
<a>阅读此教程</a>
<a aria-label="oxc linter 文档">点击这里</a>

配置

此规则接受一个配置对象,包含以下属性:

words

type: string[]

default: ["click here", "here", "link", "a link", "learn more"]

应在锚点文本中被标记的模糊词汇或短语列表。

如何使用

通过配置文件或 CLI 启用 此规则,可以使用:

json
{
  "plugins": ["jsx-a11y"],
  "rules": {
    "jsx-a11y/anchor-ambiguous-text": "error"
  }
}
bash
oxlint --deny jsx-a11y/anchor-ambiguous-text --jsx-a11y-plugin

参考资料