diff --git a/app/views/questionnaire/edit.php b/app/views/questionnaire/edit.php
index df3677bd45b8830c88395844ee7653da106765bd..8e4d22d689c2fbbd4acbffd8405c45686434bbd5 100644
--- a/app/views/questionnaire/edit.php
+++ b/app/views/questionnaire/edit.php
@@ -57,6 +57,31 @@ foreach ($questionnaire->questions as $question) {
     <div class="editor">
         <div class="rightside" aria-live="polite" tabindex="0" ref="rightside">
             <div class="admin" v-if="activeTab === 'admin'">
+
+                <article aria-live="assertive"
+                         class="validation_notes studip">
+                    <header>
+                        <h1>
+                            <?= Icon::create('info-circle', Icon::ROLE_INFO)->asImg(17, ['class' => "text-bottom validation_notes_icon"]) ?>
+                            <?= _('Hinweise zum Ausfüllen des Formulars') ?>
+                        </h1>
+                    </header>
+                    <div class="required_note">
+                        <div aria-hidden="true">
+                            <?= _('Pflichtfelder sind mit Sternchen gekennzeichnet.') ?>
+                        </div>
+                        <div class="sr-only">
+                            <?= _('Dieses Formular enthält Pflichtfelder.') ?>
+                        </div>
+                    </div>
+                    <div v-if="validationNotice && !data.title">
+                        <?= _('Folgende Angaben müssen korrigiert werden, um das Formular abschicken zu können:') ?>
+                        <ul>
+                            <li aria-describedby="questionnaire_title"><?= _('Titel des Fragebogens') ?></li>
+                        </ul>
+                    </div>
+                </article>
+
                 <div class="formpart">
                     <label class="studiprequired" for="questionnaire_title">
                         <span class="textlabel"><?= _('Titel des Fragebogens') ?></span>
diff --git a/resources/assets/javascripts/lib/questionnaire.js b/resources/assets/javascripts/lib/questionnaire.js
index 20c356c6d23de9b9254e4f35e8b0ac46b79e1fd7..e9c908dc9569080d70b31096a41681165825b044 100644
--- a/resources/assets/javascripts/lib/questionnaire.js
+++ b/resources/assets/javascripts/lib/questionnaire.js
@@ -43,7 +43,8 @@ const Questionnaire = {
                             range_type: $(form).data('range_type'),
                             range_id: $(form).data('range_id'),
                             editInternalName: null,
-                            tempInternalName: ''
+                            tempInternalName: '',
+                            validationNotice: false
                         };
                     },
                     methods: {
@@ -58,6 +59,11 @@ const Questionnaire = {
                             this.activeTab = id;
                         },
                         submit: function () {
+                            if (!this.data.title) {
+                                this.switchTab('admin');
+                                this.validationNotice = true;
+                                return;
+                            }
                             let data = {
                                 title: this.data.title,
                                 copyable: this.data.copyable,