Sha256: 1f5ae0f5d7524f16c48fb1bcfb3d107cc1790670fb4dfa0babb3bef029f81cca

Contents?: true

Size: 1.77 KB

Versions: 271

Compression:

Stored size: 1.77 KB

Contents

/* global text, dom, axe */

/**
 * Returns the visible text of the virtual node
 * NOTE: when calculating the text or accessible text of a node that includes shadow
 * roots attached to it or its children, the flattened tree must be considered
 * rather than the "light DOM"
 * @method visibleVirtual
 * @memberof axe.commons.text
 * @instance
 * @param  {VirtualNode} element
 * @param  {Boolean} screenReader When provided, will evaluate visibility from the perspective of a screen reader
 * @param  {Boolean} noRecursing When False, the result will contain text from the element and it's children.
 * When True, the result will only contain text from the element
 * @return {String}
 */
text.visibleVirtual = function(element, screenReader, noRecursing) {
	const result = element.children
		.map(child => {
			if (child.actualNode.nodeType === 3) {
				// filter on text nodes
				const nodeValue = child.actualNode.nodeValue;
				if (nodeValue && dom.isVisible(element.actualNode, screenReader)) {
					return nodeValue;
				}
			} else if (!noRecursing) {
				return text.visibleVirtual(child, screenReader);
			}
		})
		.join('');
	return text.sanitize(result);
};

/**
 * Finds virtual node and calls visibleVirtual()
 * IMPORTANT: This method requires the composed tree at axe._tree
 * @param  {Element} element
 * @param  {Boolean} screenReader When provided, will evaluate visibility from the perspective of a screen reader
 * @param  {Boolean} noRecursing When False, the result will contain text from the element and it's children.
 * When True, the result will only contain text from the element
 * @return {String}
 */
text.visible = function(element, screenReader, noRecursing) {
	element = axe.utils.getNodeFromTree(element);
	return text.visibleVirtual(element, screenReader, noRecursing);
};

Version data entries

271 entries across 271 versions & 1 rubygems

Version Path
govuk_publishing_components-30.4.1 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-30.4.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-30.3.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-30.2.1 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-30.2.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-30.1.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-30.0.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.15.3 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.15.2 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.15.1 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.15.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.14.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.13.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.12.1 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.12.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.11.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.10.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.9.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.8.0 node_modules/axe-core/lib/commons/text/visible-virtual.js
govuk_publishing_components-29.7.0 node_modules/axe-core/lib/commons/text/visible-virtual.js