diff --git a/assets/docs/components/input-group.md b/assets/docs/components/input-group.md
index c19daf4a..2d92f260 100644
--- a/assets/docs/components/input-group.md
+++ b/assets/docs/components/input-group.md
@@ -390,7 +390,7 @@ class InputGroupAddon(ElDiv, CoreComponent):
if (!addon.onclick) {
addon.onclick = (e) => {
if (!e.target.closest('button')) {
- addon.parentElement?.querySelector('input')?.focus();
+ addon.parentElement?.querySelector('[data-slot="input-group-control"]')?.focus();
}
};
}
diff --git a/components/ui/input_group.py b/components/ui/input_group.py
index 7df9f49d..fd17aec7 100644
--- a/components/ui/input_group.py
+++ b/components/ui/input_group.py
@@ -100,7 +100,7 @@ def add_custom_code(self) -> list[str]:
if (!addon.onclick) {
addon.onclick = (e) => {
if (!e.target.closest('button')) {
- addon.parentElement?.querySelector('input')?.focus();
+ addon.parentElement?.querySelector('[data-slot="input-group-control"]')?.focus();
}
};
}
diff --git a/tests/test_input_group.py b/tests/test_input_group.py
new file mode 100644
index 00000000..8110abee
--- /dev/null
+++ b/tests/test_input_group.py
@@ -0,0 +1,68 @@
+"""Regression tests for ``input_group``'s addon focus-management handler.
+
+``InputGroupAddon.add_custom_code`` injects an ``onclick`` handler that moves
+focus to the group's form control when a non-button region of the addon is
+clicked. The handler originally located the control with
+``querySelector('input')`` — a CSS *type* selector that matches only ````
+elements and returns ``null`` for a ``