mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Merge pull request #1343 from lkiesow/a11y-main-settings
Accessibility Improvements for Main Settings
This commit is contained in:
		
						commit
						f806e4cce3
					
				| @ -1,7 +1,7 @@ | ||||
| <template> | ||||
|   <div class="relative w-full" v-click-outside="clickOutsideObj"> | ||||
|     <p class="text-sm font-semibold px-1" :class="disabled ? 'text-gray-300' : ''">{{ label }}</p> | ||||
|     <button type="button" :disabled="disabled" class="relative w-full border rounded shadow-sm pl-3 pr-8 py-2 text-left sm:text-sm" :class="buttonClass" aria-haspopup="listbox" aria-expanded="true" @click.stop.prevent="clickShowMenu"> | ||||
|     <button type="button" :aria-label="longLabel" :disabled="disabled" class="relative w-full border rounded shadow-sm pl-3 pr-8 py-2 text-left sm:text-sm" :class="buttonClass" aria-haspopup="listbox" aria-expanded="true" @click.stop.prevent="clickShowMenu"> | ||||
|       <span class="flex items-center"> | ||||
|         <span class="block truncate font-sans" :class="{ 'font-semibold': selectedSubtext, 'text-sm': small }">{{ selectedText }}</span> | ||||
|         <span v-if="selectedSubtext">: </span> | ||||
| @ -91,6 +91,13 @@ export default { | ||||
|       else classes.push('cursor-pointer border-gray-600 bg-primary text-gray-100') | ||||
| 
 | ||||
|       return classes.join(' ') | ||||
|     }, | ||||
|     longLabel() { | ||||
|       let result = '' | ||||
|       if (this.label) result += this.label + ': ' | ||||
|       if (this.selectedText) result += this.selectedText | ||||
|       if (this.selectedSubtext) result += ' ' + this.selectedSubtext | ||||
|       return result | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|  | ||||
| @ -7,30 +7,30 @@ | ||||
|             <h2 class="font-semibold">{{ $strings.HeaderSettingsGeneral }}</h2> | ||||
|           </div> | ||||
|           <div class="flex items-end py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.storeCoverWithItem" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('storeCoverWithItem', val)" /> | ||||
|             <ui-toggle-switch labeledBy="settings-store-cover-with-items" v-model="newServerSettings.storeCoverWithItem" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('storeCoverWithItem', val)" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsStoreCoversWithItemHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsStoreCoversWithItem }} | ||||
|                 <span  id="settings-store-cover-with-items">{{ $strings.LabelSettingsStoreCoversWithItem }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.storeMetadataWithItem" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('storeMetadataWithItem', val)" /> | ||||
|             <ui-toggle-switch labeledBy="settings-store-metadata-with-items" v-model="newServerSettings.storeMetadataWithItem" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('storeMetadataWithItem', val)" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsStoreMetadataWithItemHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsStoreMetadataWithItem }} | ||||
|                 <span id="settings-store-metadata-with-items">{{ $strings.LabelSettingsStoreMetadataWithItem }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.sortingIgnorePrefix" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('sortingIgnorePrefix', val)" /> | ||||
|             <ui-toggle-switch labeledBy="settings-sorting-ignore-prefixes" v-model="newServerSettings.sortingIgnorePrefix" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('sortingIgnorePrefix', val)" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsSortingIgnorePrefixesHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsSortingIgnorePrefixes }} | ||||
|                 <span id="settings-sorting-ignore-prefixes">{{ $strings.LabelSettingsSortingIgnorePrefixes }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
| @ -40,8 +40,8 @@ | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.chromecastEnabled" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('chromecastEnabled', val)" /> | ||||
|             <p class="pl-4">{{ $strings.LabelSettingsChromecastSupport }}</p> | ||||
|             <ui-toggle-switch labeledBy="settings-chromecast-support" v-model="newServerSettings.chromecastEnabled" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('chromecastEnabled', val)" /> | ||||
|             <p class="pl-4" id="settings-chromecast-support">{{ $strings.LabelSettingsChromecastSupport }}</p> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="pt-4"> | ||||
| @ -49,33 +49,31 @@ | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="homepageUseBookshelfView" :disabled="updatingServerSettings" @input="updateHomeUseBookshelfView" /> | ||||
|             <ui-toggle-switch labeledBy="settings-home-page-uses-bookshelf" v-model="homepageUseBookshelfView" :disabled="updatingServerSettings" @input="updateHomeUseBookshelfView" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsBookshelfViewHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsHomePageBookshelfView }} | ||||
|                 <span id="settings-home-page-uses-bookshelf">{{ $strings.LabelSettingsHomePageBookshelfView }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="useBookshelfView" :disabled="updatingServerSettings" @input="updateUseBookshelfView" /> | ||||
|             <ui-toggle-switch labeledBy="settings-library-uses-bookshelf" v-model="useBookshelfView" :disabled="updatingServerSettings" @input="updateUseBookshelfView" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsBookshelfViewHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsLibraryBookshelfView }} | ||||
|                 <span id="settings-library-uses-bookshelf">{{ $strings.LabelSettingsLibraryBookshelfView }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="py-2"> | ||||
|             <p class="px-1 text-sm font-semibold">{{ $strings.LabelSettingsDateFormat }}</p> | ||||
|             <ui-dropdown v-model="newServerSettings.dateFormat" :items="dateFormats" small class="max-w-52" @input="(val) => updateSettingsKey('dateFormat', val)" /> | ||||
|             <ui-dropdown :label="$strings.LabelSettingsDateFormat" v-model="newServerSettings.dateFormat" :items="dateFormats" small class="max-w-52" @input="(val) => updateSettingsKey('dateFormat', val)" /> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="py-2"> | ||||
|             <p class="px-1 text-sm font-semibold">{{ $strings.LabelLanguageDefaultServer }}</p> | ||||
|             <ui-dropdown ref="langDropdown" v-model="newServerSettings.language" :items="$languageCodeOptions" small class="max-w-52" @input="updateServerLanguage" /> | ||||
|             <ui-dropdown :label="$strings.LabelLanguageDefaultServer" ref="langDropdown" v-model="newServerSettings.language" :items="$languageCodeOptions" small class="max-w-52" @input="updateServerLanguage" /> | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
| @ -85,20 +83,20 @@ | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.scannerParseSubtitle" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerParseSubtitle', val)" /> | ||||
|             <ui-toggle-switch labeledBy="settings-parse-subtitles" v-model="newServerSettings.scannerParseSubtitle" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerParseSubtitle', val)" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsParseSubtitlesHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsParseSubtitles }} | ||||
|                 <span id="settings-parse-subtitles">{{ $strings.LabelSettingsParseSubtitles }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.scannerFindCovers" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerFindCovers', val)" /> | ||||
|             <ui-toggle-switch labeledBy="settings-find-covers" v-model="newServerSettings.scannerFindCovers" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerFindCovers', val)" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsFindCoversHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsFindCovers }} | ||||
|                 <span id="settings-find-covers">{{ $strings.LabelSettingsFindCovers }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
| @ -109,50 +107,50 @@ | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.scannerPreferOverdriveMediaMarker" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerPreferOverdriveMediaMarker', val)" /> | ||||
|             <ui-toggle-switch labeledBy="settings-overdrive-media-markers" v-model="newServerSettings.scannerPreferOverdriveMediaMarker" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerPreferOverdriveMediaMarker', val)" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsOverdriveMediaMarkersHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsOverdriveMediaMarkers }} | ||||
|                 <span id="settings-overdrive-media-markers">{{ $strings.LabelSettingsOverdriveMediaMarkers }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.scannerPreferAudioMetadata" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerPreferAudioMetadata', val)" /> | ||||
|             <ui-toggle-switch labeledBy="settings-prefer-audio-metadata" v-model="newServerSettings.scannerPreferAudioMetadata" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerPreferAudioMetadata', val)" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsPreferAudioMetadataHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsPreferAudioMetadata }} | ||||
|                 <span id="settings-prefer-audio-metadata">{{ $strings.LabelSettingsPreferAudioMetadata }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.scannerPreferOpfMetadata" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerPreferOpfMetadata', val)" /> | ||||
|             <ui-toggle-switch labeledBy="settings-prefer-opf-metadata" v-model="newServerSettings.scannerPreferOpfMetadata" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerPreferOpfMetadata', val)" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsPreferOPFMetadataHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsPreferOPFMetadata }} | ||||
|                 <span id="settings-prefer-opf-metadata">{{ $strings.LabelSettingsPreferOPFMetadata }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.scannerPreferMatchedMetadata" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerPreferMatchedMetadata', val)" /> | ||||
|             <ui-toggle-switch labeledBy="settings-prefer-matched-metadata" v-model="newServerSettings.scannerPreferMatchedMetadata" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerPreferMatchedMetadata', val)" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsPreferMatchedMetadataHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsPreferMatchedMetadata }} | ||||
|                 <span id="settings-prefer-matched-metadata">{{ $strings.LabelSettingsPreferMatchedMetadata }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.scannerDisableWatcher" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerDisableWatcher', val)" /> | ||||
|             <ui-toggle-switch labeledBy="settings-disable-watcher" v-model="newServerSettings.scannerDisableWatcher" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('scannerDisableWatcher', val)" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsDisableWatcherHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsDisableWatcher }} | ||||
|                 <span id="settings-disable-watcher">{{ $strings.LabelSettingsDisableWatcher }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
| @ -163,11 +161,11 @@ | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="showExperimentalFeatures" /> | ||||
|             <ui-toggle-switch labeledBy="settings-experimental-features" v-model="showExperimentalFeatures" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsExperimentalFeaturesHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsExperimentalFeatures }} | ||||
|                 <a href="https://github.com/advplyr/audiobookshelf/discussions/75" target="_blank"> | ||||
|                 <span id="settings-experimental-features">{{ $strings.LabelSettingsExperimentalFeatures }}</span> | ||||
|                 <a :aria-label="$strings.LabelSettingsExperimentalFeaturesHelp" href="https://github.com/advplyr/audiobookshelf/discussions/75" target="_blank"> | ||||
|                   <span class="material-icons icon-text">info_outlined</span> | ||||
|                 </a> | ||||
|               </p> | ||||
| @ -175,10 +173,10 @@ | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="flex items-center py-2"> | ||||
|             <ui-toggle-switch v-model="newServerSettings.enableEReader" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('enableEReader', val)" /> | ||||
|             <ui-toggle-switch labeledBy="settings-enable-e-reader" v-model="newServerSettings.enableEReader" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('enableEReader', val)" /> | ||||
|             <ui-tooltip :text="$strings.LabelSettingsEnableEReaderHelp"> | ||||
|               <p class="pl-4"> | ||||
|                 {{ $strings.LabelSettingsEnableEReader }} | ||||
|                 <span id="settings-enable-e-reader">{{ $strings.LabelSettingsEnableEReader }}</span> | ||||
|                 <span class="material-icons icon-text">info_outlined</span> | ||||
|               </p> | ||||
|             </ui-tooltip> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user