refactor(ProfilUpdate components accessability): adds accessability attribute to profil update components

This commit is contained in:
SimonGschnell
2025-07-15 14:17:44 +02:00
parent 133a611d0e
commit 2222199b95
6 changed files with 108 additions and 28 deletions
@@ -152,7 +152,7 @@ export default {
<label class="form-check-label" for="flexCheckDefault">
{{$p.t('person','zustelladresse')}}
</label>
</div>
</div>
</div>
<!-- NATION -->
@@ -162,7 +162,7 @@ export default {
<select :value="data.nation" @change="updateValue($event,'nation')" @change="getGemeinde" class="form-select" aria-label="Select Kontakttyp">
<option selected></option>
<option :value="nation.code" v-for="nation in nationenList">{{nation.langtext}}</option>
</select>
</select>
</div>
</div>
@@ -170,7 +170,7 @@ export default {
<div class=" col-4">
<div class="form-underline">
<div class="form-underline-titel">{{$p.t('person','plz')}}*</div>
<input class="form-control" :value="data.plz" @input="updateValue($event,'plz')" @input="getGemeinde" :placeholder="data.plz">
<input class="form-control" :value="data.plz" :aria-label="$p.t('person','plz')" :title="$p.t('person','plz')" @input="updateValue($event,'plz')" @input="getGemeinde" :placeholder="data.plz">
</div>
</div>
@@ -178,7 +178,7 @@ export default {
<div class="col-lg-6">
<div class="form-underline ">
<div class="form-underline-titel">{{$p.t('person','gemeinde')}}*</div>
<auto-complete class="w-100" v-model="data.gemeinde" dropdown :forceSelection="data.nation ==='A'?true:false" :suggestions="gemeinden" @complete="autocompleteSearchGemeinden" ></auto-complete>
<auto-complete :aria-label="$p.t('person','gemeinde')" class="w-100" v-model="data.gemeinde" dropdown :forceSelection="data.nation ==='A'?true:false" :suggestions="gemeinden" @complete="autocompleteSearchGemeinden" ></auto-complete>
</div>
</div>
@@ -186,7 +186,7 @@ export default {
<div class="col-lg-6" >
<div class="form-underline ">
<div class="form-underline-titel">{{$p.t('person','ort')}}*</div>
<auto-complete class="w-100" v-model="data.ort" dropdown :forceSelection="data.nation ==='A'?true:false" :suggestions="ortschaftnamen" @complete="autocompleteSearchOrtschaftsnamen" ></auto-complete>
<auto-complete :aria-label="$p.t('person','ort')" class="w-100" v-model="data.ort" dropdown :forceSelection="data.nation ==='A'?true:false" :suggestions="ortschaftnamen" @complete="autocompleteSearchOrtschaftsnamen" ></auto-complete>
</div>
</div>
@@ -194,7 +194,7 @@ export default {
<div class="col-lg-8">
<div class="form-underline ">
<div class="form-underline-titel">{{$p.t('person','strasse')}}*</div>
<input class="form-control" :value="data.strasse" @input="updateValue($event,'strasse')" :placeholder="data.strasse">
<input :aria-label="$p.t('person','strasse')" class="form-control" :value="data.strasse" @input="updateValue($event,'strasse')" :placeholder="data.strasse">
</div>
</div>
@@ -68,11 +68,11 @@ export default {
<!-- End of warning -->
<div v-if="!data.kontakt_id" class="col-12">
<div class="form-underline">
<div class="form-underline-titel">{{$p.t('profilUpdate','kontaktTyp')}}</div>
<select :value="data.kontakttyp" @change="updateValue($event,'kontakttyp')" class="form-select" aria-label="Select Kontakttyp">
<option selected></option>
<option value="email">{{$p.t('person','email')}}</option>
@@ -81,37 +81,37 @@ export default {
<option value="mobil">{{$p.t('profilUpdate','mobiltelefonnummer')}}</option>
<option value="homepage">{{$p.t('profilUpdate','homepage')}}</option>
<option value="fax">{{$p.t('profilUpdate','faxnummer')}}</option>
</select>
</select>
</div>
</div>
<div class="col-12">
<!-- rendering KONTAKT emails -->
<div class="form-underline">
<div class="form-underline-titel">{{data.kontakttyp?data.kontakttyp:$p.t('global','kontakt')}}</div>
<input :disabled="data.kontakttyp?false:true" class="form-control" :value="data.kontakt" @input="updateValue($event,'kontakt')" :placeholder="data.kontakt">
<input :aria-label="data.kontakttyp" :title="data.kontakttyp" :disabled="data.kontakttyp?false:true" class="form-control" :value="data.kontakt" @input="updateValue($event,'kontakt')" :placeholder="data.kontakt">
</div>
</div>
<div class="col-12">
<div class="form-underline">
<div class="form-underline-titel">{{$p.t('global','anmerkung')}}</div>
<input class="form-control" :value="data.anmerkung" @input="updateValue($event,'anmerkung')" :placeholder="data.anmerkung">
<input :aria-label="$p.t('global','anmerkung')" :title="$p.t('global','anmerkung')" class="form-control" :value="data.anmerkung" @input="updateValue($event,'anmerkung')" :placeholder="data.anmerkung">
</div>
</div>
<div class="d-flex flex-row justify-content-start col-12 allign-middle">
<span style="opacity: 0.65; font-size: .85rem; " class="px-2">{{$p.t('profilUpdate','zustellungsKontakt')}}</span>
<input class="form-check-input " type="checkbox" :checked="data.zustellung" @change="updateValue($event,'zustellung')" id="flexCheckDefault">
<input :aria-label="$p.t('profilUpdate','zustellungsKontakt')" :title="$p.t('profilUpdate','zustellungsKontakt')" class="form-check-input " type="checkbox" :checked="data.zustellung" @change="updateValue($event,'zustellung')" id="flexCheckDefault">
</div>
</div>
`,
@@ -93,20 +93,20 @@ export default {
}
},
template: /*html*/`
<p style="opacity:0.8" class="ms-2" v-if="withFiles && !updateID">{{$p.t('profilUpdate','profilUpdateInformationMessage',[data.titel])}}</p>
<div class="form-underline">
<div class="form-underline-titel">{{data.titel?data.titel:$p.t('global','titel')}}</div>
<input class="mb-2 form-control" @input="emitChanges" v-model="data.value" :placeholder="data.value">
<input class="mb-2 form-control" @input="emitChanges" :aria-label="data.titel" :tooltip="data.titel" v-model="data.value" :placeholder="data.value">
<div class="row gx-2">
<div class="col">
<dms ref="update" v-if="withFiles" id="files" name="files" :multiple="false" v-model="dmsData" @update:model-value="didFilesChange" ></dms>
</div>
<div class="col-auto">
<button @click="dmsData=[]" class="btn btn-danger"><i style="color:white" class="fa fa-trash"></i></button>
<button @click="dmsData=[]" class="btn btn-danger" :aria-label="$p.t('profilUpdate','deleteAttachment')" :title="$p.t('profilUpdate','deleteAttachment')" ><i style="color:white" class="fa fa-trash" aria-hidden="true"></i></button>
</div>
</div>
</div>
@@ -156,12 +156,12 @@ export default {
<component :is="item.listview" v-bind="item"></component>
</div>
</button>
<button v-if="item.listview" @click="deleteItem(item)" type="button" class="mx-3 btn btn-danger btn-circle"><i class="fa fa-trash"></i></button>
<button v-if="item.listview" @click="deleteItem(item)" type="button" class="mx-3 btn btn-danger btn-circle" :aria-label="$p.t('profilUpdate','deleteItem')" :title="$p.t('profilUpdate','deleteItem')" ><i class="fa fa-trash" aria-hide="true"></i></button>
</div>
</template>
</div>
<div v-if="Array.isArray(data)" class="mt-4 d-flex justify-content-center">
<button @click="addItem" type="button" class="btn btn-primary btn-circle"><i class="fa fa-plus"></i></button>
<button @click="addItem" type="button" class="btn btn-primary btn-circle" :aria-label="$p.t('profilUpdate','addItem')" :title="$p.t('profilUpdate','addItem')"><i class="fa fa-plus" aria-hide="true"></i></button>
</div>
</template>
<template v-else>
+1 -1
View File
@@ -92,7 +92,7 @@ export default {
},
template: `
<div class="form-upload-dms">
<input ref="upload" class="form-control" :disabled="disabled" :accept="accept" :class="inputClass" :id="id" :name="name" :multiple="multiple" type="file" @change="addFiles">
<input ref="upload" class="form-control" :disabled="disabled" :accept="accept" :aria-label="$p.t('profilUpdate','documentUpload')" :title="$p.t('profilUpdate','documentUpload')" :class="inputClass" :id="id" :name="name" :multiple="multiple" type="file" @change="addFiles">
<ul v-if="modelValue.length && multiple && !noList" :accept="accept" class="list-unstyled m-0">
<dms-item
v-for="(file, index) in modelValue"
+80
View File
@@ -28620,6 +28620,46 @@ array(
)
)
),
array(
'app' => 'core',
'category' => 'profilUpdate',
'phrase' => 'deleteAttachment',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Anhang löschen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Delete attachment',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'profilUpdate',
'phrase' => 'documentUpload',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Dokument hochladen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Upload document',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'profilUpdate',
@@ -29261,6 +29301,46 @@ array(
)
)
),
array(
'app' => 'core',
'category' => 'profilUpdate',
'phrase' => 'deleteItem',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Item löschen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Delete item',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'profilUpdate',
'phrase' => 'addItem',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Item hinzufügen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Add item',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'profilUpdate',