aria-api

access ARIA information from JavaScript
git clone https://git.ce9e.org/aria-api.git

commit
34a9abaee4bd614fa5ab3c7534c29b4b4354cc40
parent
d9e471d63d8851f4a28b3b4deb639c9ea78b13fb
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2024-11-01 11:33
refactor: rename getNameTrimmed

Diffstat

M lib/name.js 22 +++++++++++-----------

1 files changed, 11 insertions, 11 deletions


diff --git a/lib/name.js b/lib/name.js

@@ -50,7 +50,7 @@ const getContent = function(root, ongoingLabelledBy, visited) {
   50    50 			if (node.tagName.toLowerCase() === 'br') {
   51    51 				ret += '\n';
   52    52 			} else {
   53    -1 				ret += getName(node, true, ongoingLabelledBy, visited);
   -1    53 				ret += getNameRaw(node, true, ongoingLabelledBy, visited);
   54    54 			}
   55    55 		}
   56    56 	}
@@ -65,7 +65,7 @@ const allowNameFromContent = function(el) {
   65    65 	}
   66    66 };
   67    67 
   68    -1 const getName = function(el, recursive, ongoingLabelledBy, visited, directReference) {
   -1    68 const getNameRaw = function(el, recursive, ongoingLabelledBy, visited, directReference) {
   69    69 	let ret = '';
   70    70 
   71    71 	visited = visited || [];
@@ -85,7 +85,7 @@ const getName = function(el, recursive, ongoingLabelledBy, visited, directRefere
   85    85 		const ids = el.getAttribute('aria-labelledby').split(/\s+/);
   86    86 		const strings = ids.map(id => {
   87    87 			const label = document.getElementById(id);
   88    -1 			return label ? getName(label, true, true, visited, true) : '';
   -1    88 			return label ? getNameRaw(label, true, true, visited, true) : '';
   89    89 		});
   90    90 		ret = strings.join(' ');
   91    91 	}
@@ -97,7 +97,7 @@ const getName = function(el, recursive, ongoingLabelledBy, visited, directRefere
   97    97 		} else if (query.matches(el, 'combobox,listbox')) {
   98    98 			const selected = query.querySelector(el, ':selected') || query.querySelector(el, 'option');
   99    99 			if (selected) {
  100    -1 				ret = getName(selected, recursive, ongoingLabelledBy, visited);
   -1   100 				ret = getNameRaw(selected, recursive, ongoingLabelledBy, visited);
  101   101 			} else {
  102   102 				ret = el.value || '';
  103   103 			}
@@ -115,7 +115,7 @@ const getName = function(el, recursive, ongoingLabelledBy, visited, directRefere
  115   115 	// D
  116   116 	if (!ret.trim() && !recursive && el.labels) {
  117   117 		const strings = Array.prototype.map.call(el.labels, label => {
  118    -1 			return getName(label, true, ongoingLabelledBy, visited);
   -1   118 			return getNameRaw(label, true, ongoingLabelledBy, visited);
  119   119 		});
  120   120 		ret = strings.join(' ');
  121   121 	}
@@ -130,7 +130,7 @@ const getName = function(el, recursive, ongoingLabelledBy, visited, directRefere
  130   130 			if (el.matches(selector)) {
  131   131 				const descendant = el.querySelector(constants.nameFromDescendant[selector]);
  132   132 				if (descendant) {
  133    -1 					ret = getName(descendant, true, ongoingLabelledBy, visited);
   -1   133 					ret = getNameRaw(descendant, true, ongoingLabelledBy, visited);
  134   134 				}
  135   135 			}
  136   136 		}
@@ -182,8 +182,8 @@ const getName = function(el, recursive, ongoingLabelledBy, visited, directRefere
  182   182 	return addSpaces(before + ret + after, el);
  183   183 };
  184   184 
  185    -1 const getNameTrimmed = function(el) {
  186    -1 	return getName(el)
   -1   185 const getName = function(el) {
   -1   186 	return getNameRaw(el)
  187   187 		.replace(/[ \n\r\t\f]+/g, ' ')
  188   188 		.replace(/^ /, '')
  189   189 		.replace(/ $/, '');
@@ -196,7 +196,7 @@ const getDescription = function(el) {
  196   196 		const ids = el.getAttribute('aria-describedby').split(/\s+/);
  197   197 		const strings = ids.map(id => {
  198   198 			const label = document.getElementById(id);
  199    -1 			return label ? getName(label, true, true) : '';
   -1   199 			return label ? getNameRaw(label, true, true) : '';
  200   200 		});
  201   201 		ret = strings.join(' ');
  202   202 	} else if (el.matches('[aria-description]')) {
@@ -215,7 +215,7 @@ const getDescription = function(el) {
  215   215 
  216   216 	ret = (ret || '').trim().replace(/\s+/g, ' ');
  217   217 
  218    -1 	if (ret === getNameTrimmed(el)) {
   -1   218 	if (ret === getName(el)) {
  219   219 		ret = '';
  220   220 	}
  221   221 
@@ -223,6 +223,6 @@ const getDescription = function(el) {
  223   223 };
  224   224 
  225   225 module.exports = {
  226    -1 	getName: getNameTrimmed,
   -1   226 	getName: getName,
  227   227 	getDescription: getDescription,
  228   228 };