- commit
- f88b0e6ec750fa9f24164938b2c7797341c60b06
- parent
- 65341b286affb2f7c599a428c4a9a5f228cd0780
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2023-08-19 07:31
fix embedded input test
Diffstat
| M | lib/name.js | 43 | ++++++++++++++++++++----------------------- |
1 files changed, 20 insertions, 23 deletions
diff --git a/lib/name.js b/lib/name.js
@@ -49,11 +49,6 @@ var allowNameFromContent = function(el) {
49 49 return (constants.roles[role] || {}).nameFromContents;
50 50 };
51 51
52 -1 var isInLabelForOtherWidget = function(el) {
53 -1 var label = el.parentElement.closest('label');
54 -1 return label && (!el.labels || !Array.prototype.includes.call(el.labels, label));
55 -1 };
56 -1
57 52 var getName = function(el, recursive, visited, directReference) {
58 53 var ret = '';
59 54
@@ -79,6 +74,22 @@ var getName = function(el, recursive, visited, directReference) {
79 74 ret = strings.join(' ');
80 75 }
81 76
-1 77 // E (the current draft has this at this high priority)
-1 78 if (!ret.trim() && recursive) {
-1 79 if (query.matches(el, 'textbox,button')) {
-1 80 ret = el.value || el.textContent;
-1 81 } else if (query.matches(el, 'combobox,listbox')) {
-1 82 var selected = query.querySelector(el, ':selected') || query.querySelector(el, 'option');
-1 83 if (selected) {
-1 84 ret = getName(selected, recursive, visited);
-1 85 } else {
-1 86 ret = el.value || '';
-1 87 }
-1 88 } else if (query.matches(el, 'range')) {
-1 89 ret = '' + (query.getAttribute(el, 'valuetext') || query.getAttribute(el, 'valuenow') || el.value);
-1 90 }
-1 91 }
-1 92
82 93 // C
83 94 if (!ret.trim() && el.matches('[aria-label]')) {
84 95 // FIXME: may skip to 2E
@@ -118,30 +129,16 @@ var getName = function(el, recursive, visited, directReference) {
118 129 }
119 130 }
120 131
121 -1 // E
122 -1 if (!ret.trim() && (recursive || isInLabelForOtherWidget(el) || query.matches(el, 'button'))) {
123 -1 if (query.matches(el, 'textbox,button,combobox,listbox,range')) {
124 -1 if (query.matches(el, 'textbox,button')) {
125 -1 ret = el.value || el.textContent;
126 -1 } else if (query.matches(el, 'combobox,listbox')) {
127 -1 var selected = query.querySelector(el, ':selected') || query.querySelector(el, 'option');
128 -1 if (selected) {
129 -1 ret = getName(selected, recursive, visited);
130 -1 } else {
131 -1 ret = el.value || '';
132 -1 }
133 -1 } else if (query.matches(el, 'range')) {
134 -1 ret = '' + (query.getAttribute(el, 'valuetext') || query.getAttribute(el, 'valuenow') || el.value);
135 -1 }
136 -1 }
137 -1 }
138 -1
139 132 // F
140 133 // FIXME: menu is not mentioned in the spec
141 134 if (!ret.trim() && (recursive || allowNameFromContent(el) || el.closest('label')) && !query.matches(el, 'menu')) {
142 135 ret = getContent(el, visited);
143 136 }
144 137
-1 138 if (!ret.trim() && query.matches(el, 'button')) {
-1 139 ret = el.value || '';
-1 140 }
-1 141
145 142 if (!ret.trim()) {
146 143 for (var selector in constants.nameDefaults) {
147 144 if (el.matches(selector)) {