diff --git a/addons/web/static/src/core/commands/default_providers.js b/addons/web/static/src/core/commands/default_providers.js
index 6e17242c415..6f90f228b46 100644
--- a/addons/web/static/src/core/commands/default_providers.js
+++ b/addons/web/static/src/core/commands/default_providers.js
@@ -72,6 +72,7 @@ commandProviderRegistry.add("data-hotkeys", {
const description =
el.title ||
el.dataset.originalTitle || // LEGACY: bootstrap moves title to data-original-title
+ el.dataset.tooltip ||
el.placeholder ||
(el.innerText &&
`${el.innerText.slice(0, 50)}${el.innerText.length > 50 ? "..." : ""}`) ||
diff --git a/addons/web/static/src/core/dropdown/dropdown.js b/addons/web/static/src/core/dropdown/dropdown.js
index ed5a968eea9..27cfd76efea 100644
--- a/addons/web/static/src/core/dropdown/dropdown.js
+++ b/addons/web/static/src/core/dropdown/dropdown.js
@@ -303,6 +303,10 @@ Dropdown.props = {
type: String,
optional: true,
},
+ tooltip: {
+ type: String,
+ optional: true,
+ },
title: {
type: String,
optional: true,
diff --git a/addons/web/static/src/core/dropdown/dropdown.xml b/addons/web/static/src/core/dropdown/dropdown.xml
index 4637ca78fc7..cfd9e111e44 100644
--- a/addons/web/static/src/core/dropdown/dropdown.xml
+++ b/addons/web/static/src/core/dropdown/dropdown.xml
@@ -16,6 +16,7 @@
t-on-mouseenter="onTogglerMouseEnter"
t-att-title="props.title"
t-att-data-hotkey="props.hotkey"
+ t-att-data-tooltip="props.tooltip"
t-ref="togglerRef"
>
diff --git a/addons/web/static/tests/core/dropdown_tests.js b/addons/web/static/tests/core/dropdown_tests.js
index 684ac969f2e..6a25295cda5 100644
--- a/addons/web/static/tests/core/dropdown_tests.js
+++ b/addons/web/static/tests/core/dropdown_tests.js
@@ -919,4 +919,18 @@ QUnit.module("Components", ({ beforeEach }) => {
assert.containsNone(parent.el, ".dropdown-menu", "all menus are now closed");
assert.strictEqual(hotkeyRegistrationsCount, 0, "no hotkey registration left");
});
+
+ QUnit.test("Dropdown with a tooltip", async (assert) => {
+ assert.expect(1);
+
+ class Parent extends owl.Component {}
+ Parent.template = owl.tags.xml``;
+
+ env = await makeTestEnv();
+ parent = await mount(Parent, { env, target });
+ assert.strictEqual(
+ parent.el.querySelector("button.dropdown-toggle").dataset.tooltip,
+ "My tooltip"
+ );
+ });
});