diff --git a/app/ui.js b/app/ui.js
index 83233a7c1f60004ff28b97298794e5c4f0a4c2a4..6c706fa8c03e049d235b41f98741289887455084 100644
--- a/app/ui.js
+++ b/app/ui.js
@@ -1479,15 +1479,21 @@ var UI;
                 return;
             }
 
-            // Allow clicking on links
-            if (event.target.tagName === "A") {
-                return;
-            }
-
-            // And form elements, except standard noVNC buttons
-            if ((event.target.form !== undefined) &&
-                !event.target.classList.contains("noVNC_button")) {
-                return;
+            // Only allow focus to move to other elements that need
+            // focus to function properly
+            if (event.target.form !== undefined) {
+                switch (event.target.type) {
+                    case 'text':
+                    case 'email':
+                    case 'search':
+                    case 'password':
+                    case 'tel':
+                    case 'url':
+                    case 'textarea':
+                    case 'select-one':
+                    case 'select-multiple':
+                        return;
+                }
             }
 
             event.preventDefault();