diff --git a/addons/web/static/src/views/kanban/kanban_arch_parser.js b/addons/web/static/src/views/kanban/kanban_arch_parser.js
index 9825b256120..0de83a740a6 100644
--- a/addons/web/static/src/views/kanban/kanban_arch_parser.js
+++ b/addons/web/static/src/views/kanban/kanban_arch_parser.js
@@ -154,7 +154,7 @@ export class KanbanArchParser {
const cardColorEl = cardDoc.querySelector("[color]");
const cardColorField = cardColorEl && cardColorEl.getAttribute("color");
- const colorEl = cardDoc.querySelector(".oe_kanban_colorpicker[data-field]");
+ const colorEl = xmlDoc.querySelector("templates .oe_kanban_colorpicker[data-field]");
const colorField = (colorEl && colorEl.getAttribute("data-field")) || "color";
if (!defaultOrder.length && handleField) {
diff --git a/addons/web/static/tests/views/kanban/kanban_arch_parser_tests.js b/addons/web/static/tests/views/kanban/kanban_arch_parser_tests.js
new file mode 100644
index 00000000000..120f4e1df9d
--- /dev/null
+++ b/addons/web/static/tests/views/kanban/kanban_arch_parser_tests.js
@@ -0,0 +1,36 @@
+/** @odoo-module **/
+
+import { KanbanArchParser } from "@web/views/kanban/kanban_arch_parser";
+import { parseXML } from "@web/core/utils/xml";
+
+function parseArch(arch, options = {}) {
+ const parser = new KanbanArchParser();
+ const xmlDoc = parseXML(arch);
+ return parser.parse(xmlDoc, { fake: {name: { string: "Name", type: "char" },} }, "fake");
+}
+QUnit.module("KanbanView - ArchParser");
+
+QUnit.test("oe_kanban_colorpicker in kanban-menu and kanban-box", (assert) => {
+ const archInfo = parseArch(`
+
+
+
+
+
+
+
+
+ `);
+ assert.strictEqual(archInfo.colorField, "kanban_menu_colorpicker", "colorField should be 'kanban_menu_colorpicker'");
+ const archInfo_1 = parseArch(`
+
+
+
+
+
+
+
+
+ `);
+ assert.strictEqual(archInfo_1.colorField, "kanban_box_color", "colorField should be 'kanban_box_color'");
+});