babelacc

compare different implementations of the text alternative computation  https://p.ce9e.org/babelacc/
git clone https://git.ce9e.org/babelacc.git

commit
bbb1ef642d5513596382cb1a85b8bd598542a590
parent
70eeb95b67a546c14461fabe753966888ecf1ecc
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2018-02-03 12:07
update aria-api

Diffstat

M lib/aria-api.js 31 ++++++++++++++++++++-----------

1 files changed, 20 insertions, 11 deletions


diff --git a/lib/aria-api.js b/lib/aria-api.js

@@ -278,6 +278,8 @@ exports.subRoles = {};
  278   278 for (var role in subRoles) {
  279   279 	exports.subRoles[role] = getSubRoles(role);
  280   280 }
   -1   281 exports.subRoles['none'] = ['none', 'presentation'];
   -1   282 exports.subRoles['presentation'] = ['presentation', 'none'];
  281   283 
  282   284 exports.nameFromContents = [
  283   285 	'button',
@@ -367,12 +369,12 @@ var getLabelNode = function(node) {
  367   369 		}
  368   370 	}
  369   371 
  370    -1 	var p = node.parentNode;
   -1   372 	var p = node.parentElement;
  371   373 	while (p) {
  372    -1 		if (p.tagName === 'LABEL') {
   -1   374 		if (p.tagName.toLowerCase() === 'label') {
  373   375 			return p;
  374   376 		}
  375    -1 		p = p.parentNode;
   -1   377 		p = p.parentElement;
  376   378 	}
  377   379 };
  378   380 
@@ -401,8 +403,8 @@ var getName = function(el, recursive, referenced) {
  401   403 	if (!query.matches(el, 'presentation')) {
  402   404 		if (!ret && isLabelable(el)) {
  403   405 			var label = getLabelNode(el);
  404    -1 			if (label) {
  405    -1 				ret = getName(label, recursive, label);
   -1   406 			if (!recursive && label) {
   -1   407 				ret = getName(label, true, label);
  406   408 			}
  407   409 		}
  408   410 		if (!ret) {
@@ -415,9 +417,16 @@ var getName = function(el, recursive, referenced) {
  415   417 		// caption
  416   418 		// table
  417   419 	}
  418    -1 	if (!ret) {
  419    -1 		// FIXME: distinguish different input types
  420    -1 		ret = el.value;
   -1   420 	// FIXME only if this is embedded in a label
   -1   421 	if (!ret && query.matches(el, 'input')) {
   -1   422 		// combobox
   -1   423 		// button
   -1   424 		if (query.matches(el, 'range')) {
   -1   425 			ret = query.getAttribute(el, 'valuetext') || query.getAttribute(el, 'valuenow') || el.value;
   -1   426 		} else {
   -1   427 			ret = el.value;
   -1   428 		}
   -1   429 		ret = '' + ret;
  421   430 	}
  422   431 	if (!ret && (recursive || allowNameFromContent(el))) {
  423   432 		ret = getContent(el, referenced);
@@ -445,7 +454,7 @@ var getDescription = function(el) {
  445   454 		ret = el.placeholder;
  446   455 	}
  447   456 
  448    -1 	return ret;
   -1   457 	return (ret || '').trim().replace(/\s+/g, ' ');
  449   458 };
  450   459 
  451   460 module.exports = {
@@ -519,7 +528,7 @@ var getAttribute = function(el, key, _hiddenRoot) {
  519   528 
  520   529 	if (key === 'level') {
  521   530 		for (var i = 1; i <= 6; i++) {
  522    -1 			if (el.tagName === 'H' + i) {
   -1   531 			if (el.tagName.toLowerCase() === 'h' + i) {
  523   532 				return i;
  524   533 			}
  525   534 		}
@@ -561,7 +570,7 @@ var matches = function(el, selector) {
  561   570 	} else {
  562   571 		var candidates = getSubRoles(selector.split(','));
  563   572 		actual = _getRole(el, candidates);
  564    -1 		return candidates.indexOf(actual) != -1;
   -1   573 		return candidates.indexOf(actual) !== -1;
  565   574 	}
  566   575 };
  567   576