Skip to content
Snippets Groups Projects
Commit fa3f0c4f authored by Rasmus Fuhse's avatar Rasmus Fuhse Committed by David Siegfried
Browse files

Resolve "StEP #837: Barrierefreiheitsprobleme mit I18N-Feldern und dem Hinweis auf Pflichtfelder"

Closes #1206

Merge request studip/studip!788
parent f9e1bd9a
No related branches found
No related tags found
No related merge requests found
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
:data-lang="language.name" :data-lang="language.name"
:data-icon="'url(' + assetsURL + 'images/languages/' + language.picture + ')'"> :data-icon="'url(' + assetsURL + 'images/languages/' + language.picture + ')'">
<input type=text <input type=text
ref="inputfield"
:name="nameOfInput(language.id)" :name="nameOfInput(language.id)"
v-model="values[selectedLanguage.id]" v-model="values[selectedLanguage.id]"
:required="required && defaultLanguage === language.id" :required="required && defaultLanguage === language.id"
...@@ -13,18 +14,21 @@ ...@@ -13,18 +14,21 @@
v-on="$listeners" v-on="$listeners"
v-if="type === 'text'"> v-if="type === 'text'">
<textarea :name="nameOfInput(language.id)" <textarea :name="nameOfInput(language.id)"
ref="inputfield"
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
v-model="values[language.id]" v-model="values[language.id]"
:required="required && defaultLanguage === language.id" :required="required && defaultLanguage === language.id"
v-else-if="type === 'textarea'">{{ values[language.id] }}</textarea> v-else-if="type === 'textarea'">{{ values[language.id] }}</textarea>
<studip-wysiwyg :name="nameOfInput(language.id)" <studip-wysiwyg :name="nameOfInput(language.id)"
ref="inputfield"
v-model="values[selectedLanguage.id]" v-model="values[selectedLanguage.id]"
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
:required="required && defaultLanguage === language.id" :required="required && defaultLanguage === language.id"
v-else-if="type === 'wysiwyg' && !wysiwyg_disabled"></studip-wysiwyg> v-else-if="type === 'wysiwyg' && !wysiwyg_disabled"></studip-wysiwyg>
<textarea-with-toolbar :name="nameOfInput(language.id)" <textarea-with-toolbar :name="nameOfInput(language.id)"
ref="inputfield"
v-else v-else
v-model="values[selectedLanguage.id]" v-model="values[selectedLanguage.id]"
v-bind="$attrs" v-bind="$attrs"
...@@ -38,14 +42,16 @@ ...@@ -38,14 +42,16 @@
:required="required && defaultLanguage === language.id" :required="required && defaultLanguage === language.id"
:name="nameOfInput(language.id)"> :name="nameOfInput(language.id)">
<select class="i18n" <select class="i18n"
tabindex="-1" tabindex="0"
@change="selectLanguage" @change="selectLanguage"
:aria-label="$gettext('Sprache des Textfeldes auswählen.')"
:style="'background-image: url(' + assetsURL + 'images/languages/' + selectedLanguage.picture + ')'"> :style="'background-image: url(' + assetsURL + 'images/languages/' + selectedLanguage.picture + ')'">
<option v-for="language in languages" :value="language.id">{{language.name}}</option> <option v-for="language in languages" :value="language.id">{{language.name}}</option>
</select> </select>
</div> </div>
<div v-else> <div v-else>
<input type=text <input type=text
ref="inputfield"
:name="name" :name="name"
v-model="values[selectedLanguage.id]" v-model="values[selectedLanguage.id]"
v-bind="$attrs" v-bind="$attrs"
...@@ -53,18 +59,21 @@ ...@@ -53,18 +59,21 @@
:required="required" :required="required"
v-if="type === 'text'"> v-if="type === 'text'">
<textarea :name="name" <textarea :name="name"
ref="inputfield"
v-model="values[selectedLanguage.id]" v-model="values[selectedLanguage.id]"
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
:required="required" :required="required"
v-else-if="type === 'textarea'"></textarea> v-else-if="type === 'textarea'"></textarea>
<studip-wysiwyg :name="name" <studip-wysiwyg :name="name"
ref="inputfield"
v-model="values[selectedLanguage.id]" v-model="values[selectedLanguage.id]"
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
:required="required" :required="required"
v-else-if="type === 'wysiwyg' && !wysiwyg_disabled"></studip-wysiwyg> v-else-if="type === 'wysiwyg' && !wysiwyg_disabled"></studip-wysiwyg>
<textarea-with-toolbar :name="name" <textarea-with-toolbar :name="name"
ref="inputfield"
v-else v-else
v-model="values[selectedLanguage.id]" v-model="values[selectedLanguage.id]"
v-bind="$attrs" v-bind="$attrs"
...@@ -139,6 +148,11 @@ export default { ...@@ -139,6 +148,11 @@ export default {
for (let i in this.languages) { for (let i in this.languages) {
if (e.target.value === this.languages[i].id) { if (e.target.value === this.languages[i].id) {
this.selectedLanguage = this.languages[i]; this.selectedLanguage = this.languages[i];
this.$nextTick(() => {
if (typeof this.$refs.inputfield[0].focus === "function") {
this.$refs.inputfield[0].focus();
}
});
break; break;
} }
} }
......
...@@ -39,7 +39,7 @@ $form_id = md5(uniqid()); ...@@ -39,7 +39,7 @@ $form_id = md5(uniqid());
</h1> </h1>
</header> </header>
<div class="required_note" v-if="STUDIPFORM_REQUIRED.length > 0"> <div class="required_note" v-if="STUDIPFORM_REQUIRED.length > 0">
<div aria-hidden> <div aria-hidden="true">
<?= _('Pflichtfelder sind mit Sternchen gekennzeichnet.') ?> <?= _('Pflichtfelder sind mit Sternchen gekennzeichnet.') ?>
</div> </div>
<div class="sr-only"> <div class="sr-only">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment