Sha256: 2c1f42b896cb39f0ce53102a5309eeadd1375d20e3a105c7973ef3a6171764f6

Contents?: true

Size: 1.09 KB

Versions: 271

Compression:

Stored size: 1.09 KB

Contents

options = options || {};

const missing = [];
const {
	isNativeTextbox,
	isNativeSelect,
	isAriaTextbox,
	isAriaListbox,
	isAriaCombobox,
	isAriaRange
} = axe.commons.forms;

// aria-valuenow should fail if element does not have a value property
// @see https://github.com/dequelabs/axe-core/issues/1501
const preChecks = {
	'aria-valuenow': function() {
		return !(
			isNativeTextbox(node) ||
			isNativeSelect(node) ||
			isAriaTextbox(node) ||
			isAriaListbox(node) ||
			isAriaCombobox(node) ||
			(isAriaRange(node) && node.hasAttribute('aria-valuenow'))
		);
	}
};

if (node.hasAttributes()) {
	const role = node.getAttribute('role');
	let required = axe.commons.aria.requiredAttr(role);

	if (Array.isArray(options[role])) {
		required = axe.utils.uniqueArray(options[role], required);
	}
	if (role && required) {
		for (let i = 0, l = required.length; i < l; i++) {
			const attr = required[i];
			if (
				!node.getAttribute(attr) &&
				(preChecks[attr] ? preChecks[attr]() : true)
			) {
				missing.push(attr);
			}
		}
	}
}

if (missing.length) {
	this.data(missing);
	return false;
}

return true;

Version data entries

271 entries across 271 versions & 1 rubygems

Version Path
govuk_publishing_components-30.4.1 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-30.4.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-30.3.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-30.2.1 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-30.2.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-30.1.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-30.0.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.15.3 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.15.2 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.15.1 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.15.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.14.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.13.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.12.1 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.12.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.11.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.10.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.9.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.8.0 node_modules/axe-core/lib/checks/aria/required-attr.js
govuk_publishing_components-29.7.0 node_modules/axe-core/lib/checks/aria/required-attr.js