Sha256: 589d3ac35472809539f5352921d3cbafbdee7e0d27b3efdc8da0a5f9a63e98a8

Contents?: true

Size: 894 Bytes

Versions: 114

Compression:

Stored size: 894 Bytes

Contents

/**
 * Applicability:
 * Rule applies to any element that has
 * a) a semantic role that is `widget` that supports name from content
 * b) has visible text content
 * c) has accessible name (eg: `aria-label`)
 */
const { aria, text } = axe.commons;

const role = aria.getRole(node);
if (!role) {
	return false;
}

const isWidgetType = aria.lookupTable.rolesOfType.widget.includes(role);
if (!isWidgetType) {
	return false;
}

const rolesWithNameFromContents = aria.getRolesWithNameFromContents();
if (!rolesWithNameFromContents.includes(role)) {
	return false;
}

/**
 * if no `aria-label` or `aria-labelledby` attribute - ignore `node`
 */
if (
	!text.sanitize(aria.arialabelText(node)) &&
	!text.sanitize(aria.arialabelledbyText(node))
) {
	return false;
}

/**
 * if no `contentText` - ignore `node`
 */
if (!text.sanitize(text.visibleVirtual(virtualNode))) {
	return false;
}

return true;

Version data entries

114 entries across 114 versions & 1 rubygems

Version Path
govuk_publishing_components-21.22.0 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.21.3 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.21.2 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.21.1 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.21.0 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.20.0 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.19.1 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.19.0 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.18.0 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.17.0 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.16.3 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.16.2 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.16.1 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.16.0 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.15.2 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.15.1 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.15.0 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.14.0 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.13.5 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js
govuk_publishing_components-21.13.4 node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js