diff --git a/src/components/emoji_input/emoji_input.vue b/src/components/emoji_input/emoji_input.vue
index 4becdc41..1d6c760e 100644
--- a/src/components/emoji_input/emoji_input.vue
+++ b/src/components/emoji_input/emoji_input.vue
@@ -10,6 +10,7 @@
         v-if="!hideEmojiButton"
         class="button-unstyled emoji-picker-icon"
         @click.prevent="togglePicker"
+        type="button"
       >
         <FAIcon :icon="['far', 'smile-beam']" />
       </button>
diff --git a/src/components/mfa_form/recovery_form.vue b/src/components/mfa_form/recovery_form.vue
index 0bf68e27..8457ec5d 100644
--- a/src/components/mfa_form/recovery_form.vue
+++ b/src/components/mfa_form/recovery_form.vue
@@ -26,6 +26,7 @@
               <button
                 class="button-unstyled -link"
                 @click.prevent="requireTOTP"
+                type="button"
               >
                 {{ $t('login.enter_two_factor_code') }}
               </button>
@@ -33,6 +34,7 @@
               <button
                 class="button-unstyled -link"
                 @click.prevent="abortMFA"
+                type="button"
               >
                 {{ $t('general.cancel') }}
               </button>
diff --git a/src/components/mfa_form/totp_form.vue b/src/components/mfa_form/totp_form.vue
index 79230148..5d80e185 100644
--- a/src/components/mfa_form/totp_form.vue
+++ b/src/components/mfa_form/totp_form.vue
@@ -28,6 +28,7 @@
               <button
                 class="button-unstyled -link"
                 @click.prevent="requireRecovery"
+                type="button"
               >
                 {{ $t('login.enter_recovery_code') }}
               </button>
@@ -35,6 +36,7 @@
               <button
                 class="button-unstyled -link"
                 @click.prevent="abortMFA"
+                type="button"
               >
                 {{ $t('general.cancel') }}
               </button>
diff --git a/src/components/scope_selector/scope_selector.vue b/src/components/scope_selector/scope_selector.vue
index 66ac612e..60e8c3ba 100644
--- a/src/components/scope_selector/scope_selector.vue
+++ b/src/components/scope_selector/scope_selector.vue
@@ -9,6 +9,7 @@
       :class="css.direct"
       :title="$t('post_status.scope.direct')"
       @click="changeVis('direct')"
+      type="button"
     >
       <FAIcon
         icon="envelope"
@@ -21,6 +22,7 @@
       :class="css.private"
       :title="$t('post_status.scope.private')"
       @click="changeVis('private')"
+      type="button"
     >
       <FAIcon
         icon="lock"
@@ -33,6 +35,7 @@
       :class="css.unlisted"
       :title="$t('post_status.scope.unlisted')"
       @click="changeVis('unlisted')"
+      type="button"
     >
       <FAIcon
         icon="lock-open"
@@ -45,6 +48,7 @@
       :class="css.public"
       :title="$t('post_status.scope.public')"
       @click="changeVis('public')"
+      type="button"
     >
       <FAIcon
         icon="globe"
diff --git a/src/components/search/search.vue b/src/components/search/search.vue
index a6503c9f..fa648365 100644
--- a/src/components/search/search.vue
+++ b/src/components/search/search.vue
@@ -16,6 +16,7 @@
       <button
         class="btn button-default search-button"
         @click="newQuery(searchTerm)"
+        type="submit"
       >
         <FAIcon icon="search" />
       </button>
diff --git a/src/components/search_bar/search_bar.vue b/src/components/search_bar/search_bar.vue
index 6cf9179e..a7432dcb 100644
--- a/src/components/search_bar/search_bar.vue
+++ b/src/components/search_bar/search_bar.vue
@@ -8,6 +8,7 @@
       class="button-unstyled nav-icon"
       :title="$t('nav.search')"
       @click.prevent.stop="toggleHidden"
+      type="button"
     >
       <FAIcon
         fixed-width
@@ -28,6 +29,7 @@
       <button
         class="button-default search-button"
         @click="find(searchTerm)"
+        type="submit"
       >
         <FAIcon
           fixed-width
@@ -37,6 +39,7 @@
       <button
         class="button-unstyled cancel-search"
         @click.prevent.stop="toggleHidden"
+        type="button"
       >
         <FAIcon
           fixed-width
diff --git a/src/components/tab_switcher/tab_switcher.js b/src/components/tab_switcher/tab_switcher.js
index 76e7ef03..12aac8e6 100644
--- a/src/components/tab_switcher/tab_switcher.js
+++ b/src/components/tab_switcher/tab_switcher.js
@@ -93,7 +93,9 @@ export default Vue.component('tab-switcher', {
               <button
                 disabled={slot.data.attrs.disabled}
                 onClick={this.clickTab(index)}
-                class={classesTab.join(' ')}>
+                class={classesTab.join(' ')}
+                type="button"
+              >
                 <img src={slot.data.attrs.image} title={slot.data.attrs['image-tooltip']}/>
                 {slot.data.attrs.label ? '' : slot.data.attrs.label}
               </button>