fix(controller): clean up INTERACTIVE_ARIA_ATTRS

This commit is contained in:
Simon
2026-04-02 17:33:27 +08:00
parent f2b6c9dfd2
commit 3efef0ec42

View File

@@ -1144,36 +1144,22 @@ export default (
* @returns {boolean} Whether the element is an interactive candidate.
*/
const INTERACTIVE_ARIA_ATTRS = [
'aria-label',
'aria-labelledby',
'aria-describedby',
'aria-expanded',
'aria-checked',
'aria-selected',
'aria-pressed',
'aria-hidden',
'aria-haspopup',
'aria-controls',
'aria-owns',
'aria-current',
'aria-disabled',
'aria-live',
'aria-modal',
'aria-activedescendant',
'aria-valuenow',
'aria-valuetext',
'aria-valuemax',
'aria-valuemin',
'aria-autocomplete',
'aria-invalid',
'aria-required',
'aria-level',
'aria-sort',
'aria-orientation',
'aria-multiline',
]
function hasAriaAttribute(el) {
function hasInteractiveAria(el) {
for (let i = 0; i < INTERACTIVE_ARIA_ATTRS.length; i++) {
if (el.hasAttribute(INTERACTIVE_ARIA_ATTRS[i])) return true
}
@@ -1204,7 +1190,7 @@ export default (
element.hasAttribute('onclick') ||
element.hasAttribute('role') ||
element.hasAttribute('tabindex') ||
hasAriaAttribute(element) ||
hasInteractiveAria(element) ||
element.hasAttribute('data-action') ||
element.getAttribute('contenteditable') === 'true'