diff --git a/dev/js/spec/matchSpec.js b/dev/js/spec/matchSpec.js
index d10aced..2004d4f 100644
--- a/dev/js/spec/matchSpec.js
+++ b/dev/js/spec/matchSpec.js
@@ -97,7 +97,9 @@
   ];
 
 
-  var snippet = "<span title=\"cnx/l:meist\">" +
+  var snippet = "<span class=\"context-left\"><\/span>"+
+      "<span class=\"match\">" +
+      "<span title=\"cnx/l:meist\">" +
       "  <span title=\"cnx/p:ADV\">" +
       "    <span title=\"cnx/syn:@PREMOD\">" +
       "      <span title=\"mate/l:meist\">" +
@@ -141,6 +143,9 @@
       "      </span>" +
       "    </span>" +
       "  </span>" +
+      "</span>" +
+      " und robust sind auch die anderen Traktoren, die hier der Übersicht wegen keine Erwähnung finden können." +
+      "<span class=\"cutted\"><\/span>" +
       "</span>";
 
   var treeSnippet =
@@ -445,7 +450,9 @@
   describe('KorAP.TableView', function () {
     beforeAll(beforeAllFunc);
     afterAll(afterAllFunc);  
-   
+
+    let longString = " und robust sind auch die anderen Traktoren, die hier der Übersicht wegen keine Erwähnung finden können.";
+    
     var table;
 
     var matchObj = matchClass.create(match);
@@ -479,11 +486,12 @@
     it('should parse into a table (async)', function () {
       expect(table).toBeTruthy();
 
-      expect(table.length()).toBe(3);
+      expect(table.length()).toBe(4);
 
       expect(table.getToken(0)).toBe("meist");
       expect(table.getToken(1)).toBe("deutlich");
       expect(table.getToken(2)).toBe("leistungsfähiger");
+      expect(table.getToken(3)).toBe(longString);
 
       expect(table.getValue(0, "cnx", "p")[0]).toBe("ADV");
       expect(table.getValue(0, "cnx", "syn")[0]).toBe("@PREMOD");
@@ -510,6 +518,9 @@
       expect(tr.children[3].classList.contains('mark')).toBeTruthy();
       expect(tr.children[4].firstChild.nodeValue).toBe('leistungsfähiger');
       expect(tr.children[4].classList.contains('mark')).toBeFalsy();
+      expect(tr.children[4].hasAttribute("title").toBeFalsy();
+      expect(tr.children[5].firstChild.nodeValue).toBe(longString);
+      expect(tr.children[5].getAttribute("title")).toBe(longString);
 
       // first row
       tr = e.children[1].children[0];
diff --git a/dev/js/src/match/table.js b/dev/js/src/match/table.js
index 1544637..61c100a 100644
--- a/dev/js/src/match/table.js
+++ b/dev/js/src/match/table.js
@@ -244,13 +244,19 @@
 
       // Add tokens
       for (var i in this._token) {
-        var c = tr.addCell('th', undefined, this.getToken(i));
+        let surface = this.getToken(i);
+        var c = tr.addCell('th', undefined, surface);
         if (this._mark[i]) {
           c.classList.add('mark');
           if (this._markE === undefined) {
             this._markE = c;
           };
         };
+
+        // In case the title is very long - add a title attribute
+        if (surface.length > 20) {
+          c.setAttribute("title", surface)
+        }
       };
       
       var tbody = table.addE('tbody');
