UNPKG

axe-core

Version:

Accessibility engine for automated Web UI testing

61 lines (48 loc) 1.63 kB
describe('label-matches', function () { 'use strict'; var fixture = document.getElementById('fixture'); var rule; beforeEach(function () { rule = axe._audit.rules.find(function (rule) { return rule.id === 'label'; }); }); it('returns true for non-input elements', function () { fixture.innerHTML = '<textarea></textarea>'; var target = fixture.querySelector('textarea'); assert.isTrue(rule.matches(target)); }); it('returns true for input elements without type', function () { fixture.innerHTML = '<input />'; var target = fixture.querySelector('input'); assert.isTrue(rule.matches(target)); }); it('returns false for input buttons', function () { fixture.innerHTML = '<input type="button" />' + '<input type="submit" />' + '<input type="image" />' + '<input type="reset" />'; var targets = Array.from(fixture.querySelectorAll('input')); targets.forEach(function (target) { assert.isFalse(rule.matches(target)); }); }); it('returns false for input elements type=hidden', function () { fixture.innerHTML = '<input type="hidden" />'; var target = fixture.querySelector('input'); assert.isFalse(rule.matches(target)); }); it('returns true for other input types', function () { fixture.innerHTML = '<input type="text" />' + '<input type="password" />' + '<input type="url" />' + '<input type="range" />' + '<input type="date" />' + '<input type="checkbox" />' + '<input type="radio" />'; var targets = Array.from(fixture.querySelectorAll('input')); targets.forEach(function (target) { assert.isTrue(rule.matches(target)); }); }); });