diff --git a/odoo/addons/base/models/ir_qweb.py b/odoo/addons/base/models/ir_qweb.py
index 2e140a6fe10..a20f2bfc4d9 100644
--- a/odoo/addons/base/models/ir_qweb.py
+++ b/odoo/addons/base/models/ir_qweb.py
@@ -1317,7 +1317,7 @@ class IrQWeb(models.AbstractModel):
if unqualified_el_tag != 't':
el.set('t-tag-open', el_tag)
- if unqualified_el_tag not in VOID_ELEMENTS:
+ if el_tag not in VOID_ELEMENTS:
el.set('t-tag-close', el_tag)
if not ({'t-out', 't-esc', 't-raw', 't-field'} & set(el.attrib)):
@@ -1371,7 +1371,7 @@ class IrQWeb(models.AbstractModel):
attributes = ''.join(f' {name}="{escape(str(value))}"'
for name, value in attrib.items() if value or isinstance(value, str))
self._append_text(f'<{el_tag}{"".join(attributes)}', compile_context)
- if unqualified_el_tag in VOID_ELEMENTS:
+ if el_tag in VOID_ELEMENTS:
self._append_text('/>', compile_context)
else:
self._append_text('>', compile_context)
@@ -1386,7 +1386,7 @@ class IrQWeb(models.AbstractModel):
body = self._compile_directive(el, compile_context, 'inner-content', level)
if unqualified_el_tag != 't':
- if unqualified_el_tag not in VOID_ELEMENTS:
+ if el_tag not in VOID_ELEMENTS:
self._append_text(f'{el_tag}>', compile_context)
return body
diff --git a/odoo/addons/base/tests/test_qweb.py b/odoo/addons/base/tests/test_qweb.py
index c0adc6b4b94..e69264a4194 100644
--- a/odoo/addons/base/tests/test_qweb.py
+++ b/odoo/addons/base/tests/test_qweb.py
@@ -670,6 +670,36 @@ class TestQWebNS(TransactionCase):
with self.assertRaises(QWebException, msg=error_msg):
self.env['ir.qweb']._render(view1.id)
+
+ def test_render_static_xml_with_void_element(self):
+ """ Test the rendering on a namespaced view with dynamic URI (need default namespace uri).
+ """
+ tempate = """
+
+ Odoo
+ My Link
+
+ """
+ expected_result = """
+
+ Odoo
+ My Link
+
+
+ """
+
+ view1 = self.env['ir.ui.view'].create({
+ 'name': "dummy",
+ 'type': 'qweb',
+ 'arch': """
+ %s
+ """ % tempate
+ })
+
+ rendering = self.env['ir.qweb']._render(view1.id)
+
+ self.assertEqual(etree.fromstring(rendering), etree.fromstring(expected_result))
+
class TestQWebBasic(TransactionCase):
def test_compile_expr(self):
tests = [