diff --git a/core/misc/tabledrag.es6.js b/core/misc/tabledrag.es6.js
index 47228ede7e112ee52445f645be16be542eb243a1..70305d26303df277ebc658dd4942c6b6c3850866 100644
--- a/core/misc/tabledrag.es6.js
+++ b/core/misc/tabledrag.es6.js
@@ -828,7 +828,8 @@
         // restricted according to the rows around this row.
         const indentChange = self.rowObject.indent(indentDiff);
         // Update table and pointer indentations.
-        self.dragObject.indentPointerPos.x += self.indentAmount * indentChange;
+        self.dragObject.indentPointerPos.x +=
+          self.indentAmount * indentChange * self.rtl;
         self.indentCount = Math.max(self.indentCount, self.rowObject.indents);
       }
 
diff --git a/core/misc/tabledrag.js b/core/misc/tabledrag.js
index 08a70c095a3d2e9ee938e69205e2b4907e34ed37..fe76291e3ff6cc403805ce1a1895c22cb8939360 100644
--- a/core/misc/tabledrag.js
+++ b/core/misc/tabledrag.js
@@ -445,7 +445,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
         var xDiff = self.currentPointerCoords.x - self.dragObject.indentPointerPos.x;
         var indentDiff = Math.round(xDiff / self.indentAmount);
         var indentChange = self.rowObject.indent(indentDiff);
-        self.dragObject.indentPointerPos.x += self.indentAmount * indentChange;
+        self.dragObject.indentPointerPos.x += self.indentAmount * indentChange * self.rtl;
         self.indentCount = Math.max(self.indentCount, self.rowObject.indents);
       }
 
diff --git a/core/modules/system/css/components/tabledrag.module.css b/core/modules/system/css/components/tabledrag.module.css
index 7121ac51152eab32906a2833190900bfd0f58c98..8f93e8529e9f14730ebb87c9ed70ce01306d76f0 100644
--- a/core/modules/system/css/components/tabledrag.module.css
+++ b/core/modules/system/css/components/tabledrag.module.css
@@ -20,24 +20,9 @@ tr.region-populated {
 tr.add-new .tabledrag-changed {
   display: none;
 }
-.draggable .tabledrag-changed {
-  margin: 0 4px;
-}
-
-/**
- * Do not apply this style in IE11, as it leads to a regression where the
- * table can more easily overflow the browser viewport.
- */
-@supports not (-ms-high-contrast: none) {
-  .draggable > td:first-of-type {
-    display: flex;
-  }
-}
-
 .draggable a.tabledrag-handle {
   float: left; /* LTR */
   overflow: hidden;
-  min-width: calc(2em + 14px);  /* (.5em padding * 2) + (.5em margin * 2) + tabledrag handle image width. */
   height: 1.7em;
   margin-left: -1em; /* LTR */
   cursor: move;
@@ -71,18 +56,17 @@ a.tabledrag-handle:focus .handle {
 }
 .touchevents a.tabledrag-handle {
   width: 40px;
-  min-width: 40px;
   height: 44px;
 }
 .touchevents a.tabledrag-handle .handle {
   height: 21px;
-  background-position: 40% 17px; /* LTR */
+  background-position: 40% 19px; /* LTR */
 }
 [dir="rtl"] .touch a.tabledrag-handle .handle {
-  background-position: right 40% top 17px;
+  background-position: right 40% top 19px;
 }
 .touchevents .draggable.drag a.tabledrag-handle .handle {
-  background-image: url(../../../../misc/icons/000000/move.svg);
+  background-position: 50% -32px;
 }
 .tabledrag-toggle-weight-wrapper {
   text-align: right; /* LTR */
@@ -91,23 +75,14 @@ a.tabledrag-handle:focus .handle {
   text-align: left;
 }
 .indentation {
+  float: left; /* LTR */
   width: 20px;
-  min-width: 20px;
   height: 1.7em;
   margin: -0.4em 0.2em -0.4em -0.4em; /* LTR */
   padding: 0.42em 0 0.42em 0.6em; /* LTR */
 }
 [dir="rtl"] .indentation {
+  float: right;
   margin: -0.4em -0.4em -0.4em 0.2em;
   padding: 0.42em 0.6em 0.42em 0;
 }
-
-@media all and (-ms-high-contrast: active), (-ms-high-contrast: none) {
-  .indentation {
-    float: left;
-  }
-
-  [dir="rtl"] .indentation {
-    float: right;
-  }
-}