的 alt 属性以通过无障碍校验 "> 的 alt 属性以通过无障碍校验 " />
react 项目中使用 `jsx-a11y/img-redundant-alt` 规则时
,若 `alt` 属性包含“image”“photo”或“picture”等冗余词,会触发警告;正确做法是用简洁、描述性文字替代冗余表述,或按需调整规则配置。
在构建可访问性(a11y)友好的 React 应用时, 标签的 alt 属性至关重要——它为屏幕阅读器用户提供图像内容的文本替代。但 ESLint 插件 eslint-plugin-jsx-a11y(常被误称为 react-a11y,后者已归档)中的 img-redundant-alt 规则会主动拦截“语义冗余”的 alt 值。
该规则默认禁止在 alt 中出现以下词汇:
例如,以下写法会触发警告:
@@##@@ // ❌ 包含冗余词 "image" @@##@@ // ❌ 包含 "photo"
✅ 正确做法是聚焦图像的实际功能或含义,而非其媒体类型:
@@##@@ // ✅ 清晰、简洁、有意义 @@##@@ // ✅ 传达关键信息 @@##@@ // ✅ 功能型图标用动词/名词直述用途
⚠️ 特别注意:
// .eslintrc.js
module.exports = {
rules: {
'jsx-a11y/img-redundant-alt': ['error', { components: ['Image'], words: ['image', 'photo', 'picture', 'diagram'] }],
}
};总结:alt 的本质是「为看不见图像的人提供等效信息」,而非标注文件类型。删掉“image”类冗余词,用精准、简练、上下文相关的描述取而代之,既满足无障碍要求,也提升代码语义质量。