- 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