diff --git a/resources/assets/javascripts/bootstrap/blubber.js b/resources/assets/javascripts/bootstrap/blubber.js
index 095ac77074783f7f06a48a250c277ab6aba5bc22..ef9512998b8848086bc371f17a17951da8f093c5 100644
--- a/resources/assets/javascripts/bootstrap/blubber.js
+++ b/resources/assets/javascripts/bootstrap/blubber.js
@@ -1,4 +1,4 @@
 /*global jQuery, STUDIP */
 STUDIP.domReady(() => {
     STUDIP.Blubber.init();
-});
\ No newline at end of file
+});
diff --git a/resources/vue/components/BlubberThread.vue b/resources/vue/components/BlubberThread.vue
index ce84d9647e92a0c06cc5d9f18e7da4c924fb9e20..dcddc2887e4f13527c2dd0f499cd3c5b97cdae1f 100644
--- a/resources/vue/components/BlubberThread.vue
+++ b/resources/vue/components/BlubberThread.vue
@@ -77,7 +77,8 @@
             <a class="send" @click="submit" :title="$gettext('Abschicken')">
                 <studip-icon shape="arr_2up" size="30"></studip-icon>
             </a>
-            <label class="upload" :title="$gettext('Datei hochladen')">
+            <label class="upload" :title="$gettext('Datei hochladen')" tabindex="0"
+                   @keydown="simulateClick" ref="blubber_upload_file_label">
                 <input type="file" multiple style="display: none;" @change="upload">
                 <studip-icon shape="upload" size="30"></studip-icon>
             </label>
@@ -359,6 +360,12 @@
             },
             hasContent (input) {
                 return input && input.trim().length > 0;
+            },
+            simulateClick (event) {
+                if (event.code == "Enter") {
+                    //The enter key has been pressed.
+                    this.$refs.blubber_upload_file_label.click();
+                }
             }
         },
         directives: {