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; }