diff --git a/lib/rules/avoid-inline-spacing.json b/lib/rules/avoid-inline-spacing.json index 9e0ceacf88..3cbff24cbd 100644 --- a/lib/rules/avoid-inline-spacing.json +++ b/lib/rules/avoid-inline-spacing.json @@ -1,7 +1,7 @@ { "id": "avoid-inline-spacing", "selector": "[style]", - "matches": "is-visible-matches", + "matches": "is-visible-on-screen-matches", "tags": ["cat.structure", "wcag21aa", "wcag1412", "ACT"], "actIds": ["24afc2", "9e45ec", "78fd32"], "metadata": { diff --git a/lib/rules/is-visible-matches.js b/lib/rules/is-visible-matches.js index 9ecb7c827d..6f7e16faca 100644 --- a/lib/rules/is-visible-matches.js +++ b/lib/rules/is-visible-matches.js @@ -1,5 +1,6 @@ import { isVisibleOnScreen } from '../commons/dom'; +// @deprecated use isVisibleOnScreenMatches export default function hasVisibleTextMatches(node) { return isVisibleOnScreen(node); } diff --git a/lib/rules/is-visible-on-screen-matches.js b/lib/rules/is-visible-on-screen-matches.js new file mode 100644 index 0000000000..2b65ab43f2 --- /dev/null +++ b/lib/rules/is-visible-on-screen-matches.js @@ -0,0 +1,5 @@ +import { isVisibleOnScreen } from '../commons/dom'; + +export default function isVisibleOnScreenMatches(node, virtualNode) { + return isVisibleOnScreen(virtualNode); +} diff --git a/test/rule-matches/is-visible-matches.js b/test/rule-matches/is-visible-matches.js index 7dc3a87822..847b796c25 100644 --- a/test/rule-matches/is-visible-matches.js +++ b/test/rule-matches/is-visible-matches.js @@ -1,32 +1,30 @@ describe('is-visible-matches', function () { 'use strict'; - var rule; + var isVisibleMatches = + axe._thisWillBeDeletedDoNotUse.base.metadataFunctionMap[ + 'is-visible-matches' + ]; var fixture = document.getElementById('fixture'); var fixtureSetup = axe.testUtils.fixtureSetup; - beforeEach(function () { - fixture.innerHTML = ''; - rule = axe.utils.getRule('avoid-inline-spacing'); - }); - it('returns true for visible elements', function () { fixtureSetup('

Hello world

'); - assert.isTrue(rule.matches(fixture.firstChild)); + assert.isTrue(isVisibleMatches(fixture.firstChild)); }); it('returns false for elements with hidden', function () { fixtureSetup(''); - assert.isFalse(rule.matches(fixture.firstChild)); + assert.isFalse(isVisibleMatches(fixture.firstChild)); }); it('returns true for visible elements with aria-hidden="true"', function () { fixtureSetup(''); - assert.isTrue(rule.matches(fixture.firstChild)); + assert.isTrue(isVisibleMatches(fixture.firstChild)); }); it('returns false for opacity:0 elements with accessible text', function () { fixtureSetup('

Hello world

'); - assert.isFalse(rule.matches(fixture.firstChild)); + assert.isFalse(isVisibleMatches(fixture.firstChild)); }); }); diff --git a/test/rule-matches/is-visible-on-screen-matches.js b/test/rule-matches/is-visible-on-screen-matches.js new file mode 100644 index 0000000000..b7f8a6cc63 --- /dev/null +++ b/test/rule-matches/is-visible-on-screen-matches.js @@ -0,0 +1,30 @@ +describe('is-visible-on-screen-matches', () => { + 'use strict'; + + const rule = axe.utils.getRule('avoid-inline-spacing'); + const queryFixture = axe.testUtils.queryFixture; + + it('returns true for visible elements', () => { + const vNode = queryFixture('

Hello world

'); + assert.isTrue(rule.matches(null, vNode)); + }); + + it('returns false for elements with hidden', () => { + const vNode = queryFixture(''); + assert.isFalse(rule.matches(null, vNode)); + }); + + it('returns true for visible elements with aria-hidden="true"', () => { + const vNode = queryFixture( + '' + ); + assert.isTrue(rule.matches(null, vNode)); + }); + + it('returns false for opacity:0 elements with accessible text', () => { + const vNode = queryFixture( + '

Hello world

' + ); + assert.isFalse(rule.matches(null, vNode)); + }); +});