diff --git a/addons/web_editor/static/src/js/rte.js b/addons/web_editor/static/src/js/rte.js
index c107ca342aee9eeacd53711b71bf2020385a2c52..f50b93912aea58279907acb032f9a9fc87efb22f 100644
--- a/addons/web_editor/static/src/js/rte.js
+++ b/addons/web_editor/static/src/js/rte.js
@@ -508,6 +508,16 @@ var RTE = Widget.extend({
         var $target = $(event.target);
         var $editable = $target.closest('.o_editable');
 
+        if ($target.is('a')) {
+            $target.attr('contenteditable', true);
+            setTimeout(function () {
+                $editable.attr('contenteditable', false);
+            });
+        } else if ($editable.attr('contenteditable') === 'false') {
+            $target.removeAttr('contenteditable');
+            $editable.attr('contenteditable', true);
+        }
+
         if (!$editable.size()) {
             return;
         }