From 148bdb6839857a09dee146884ea99e0cea48b300 Mon Sep 17 00:00:00 2001 From: Lubrsy Date: Fri, 3 Apr 2026 20:09:48 +0800 Subject: [PATCH] fix: recognize role="listitem" as interactive element (#203) * fix: recognize role="listitem" as interactive element * fix: DISTINCT_INTERACTIVE_ROLES Co-authored-by: Claude Opus 4.6 Co-authored-by: Simon <10131203+gaomeng1900@users.noreply.github.com> --- packages/page-controller/src/dom/dom_tree/index.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/page-controller/src/dom/dom_tree/index.js b/packages/page-controller/src/dom/dom_tree/index.js index 2f12ee1..717d157 100644 --- a/packages/page-controller/src/dom/dom_tree/index.js +++ b/packages/page-controller/src/dom/dom_tree/index.js @@ -1218,8 +1218,9 @@ export default ( 'details', 'label', 'option', + 'li', ]) - const INTERACTIVE_ROLES = new Set([ + const DISTINCT_INTERACTIVE_ROLES = new Set([ 'button', 'link', 'menuitem', @@ -1235,6 +1236,9 @@ export default ( 'searchbox', 'textbox', 'listbox', + 'listitem', + 'treeitem', + 'row', 'option', 'scrollbar', ]) @@ -1311,7 +1315,7 @@ export default ( return true } // Check interactive roles - if (role && INTERACTIVE_ROLES.has(role)) { + if (role && DISTINCT_INTERACTIVE_ROLES.has(role)) { return true } // Check contenteditable