diff --git a/__tests__/src/rules/anchor-has-content-test.js b/__tests__/src/rules/anchor-has-content-test.js
index 346eea5c..114c6b4a 100644
--- a/__tests__/src/rules/anchor-has-content-test.js
+++ b/__tests__/src/rules/anchor-has-content-test.js
@@ -37,14 +37,14 @@ ruleTester.run('anchor-has-content', rule, {
code: 'foo',
settings: { 'jsx-a11y': { components: { Link: 'a' } } },
},
- { code: '' },
{ code: '' },
- { code: '' },
)).map(parserOptionsMapper),
invalid: parsers.all([].concat(
{ code: '', errors: [expectedError] },
{ code: '', errors: [expectedError] },
{ code: '{undefined}', errors: [expectedError] },
+ { code: '', errors: [expectedError] },
+ { code: '', errors: [expectedError] },
{
code: '',
errors: [expectedError],
diff --git a/docs/rules/anchor-has-content.md b/docs/rules/anchor-has-content.md
index 03082fbb..46e4aee5 100644
--- a/docs/rules/anchor-has-content.md
+++ b/docs/rules/anchor-has-content.md
@@ -6,7 +6,7 @@
Enforce that anchors have content and that the content is accessible to screen readers. Accessible means that it is not hidden using the `aria-hidden` prop. Refer to the references to learn about why this is important.
-Alternatively, you may use the `title` prop or the `aria-label` prop.
+Alternatively, you may use the `aria-label` prop.
## Rule options
@@ -47,7 +47,6 @@ return (
Anchor Content!
-
```
diff --git a/src/rules/anchor-has-content.js b/src/rules/anchor-has-content.js
index 3381b4f6..b28a41a7 100644
--- a/src/rules/anchor-has-content.js
+++ b/src/rules/anchor-has-content.js
@@ -7,7 +7,7 @@
// Rule Definition
// ----------------------------------------------------------------------------
-import { hasAnyProp } from 'jsx-ast-utils';
+import { hasProp } from 'jsx-ast-utils';
import getElementType from '../util/getElementType';
import { arraySchema, generateObjSchema } from '../util/schemas';
@@ -42,7 +42,7 @@ export default {
if (hasAccessibleChild(node.parent, elementType)) {
return;
}
- if (hasAnyProp(node.attributes, ['title', 'aria-label'])) {
+ if (hasProp(node.attributes, 'aria-label') && !hasProp(node.attributes, 'title')) {
return;
}