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> | <template> | ||||||
|   <div class="relative w-full" v-click-outside="clickOutsideObj"> |   <div class="relative w-full" v-click-outside="clickOutsideObj"> | ||||||
|     <p class="text-sm font-semibold px-1" :class="disabled ? 'text-gray-300' : ''">{{ label }}</p> |     <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="flex items-center"> | ||||||
|         <span class="block truncate font-sans" :class="{ 'font-semibold': selectedSubtext, 'text-sm': small }">{{ selectedText }}</span> |         <span class="block truncate font-sans" :class="{ 'font-semibold': selectedSubtext, 'text-sm': small }">{{ selectedText }}</span> | ||||||
|         <span v-if="selectedSubtext">: </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') |       else classes.push('cursor-pointer border-gray-600 bg-primary text-gray-100') | ||||||
| 
 | 
 | ||||||
|       return classes.join(' ') |       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: { |   methods: { | ||||||
|  | |||||||
| @ -7,30 +7,30 @@ | |||||||
|             <h2 class="font-semibold">{{ $strings.HeaderSettingsGeneral }}</h2> |             <h2 class="font-semibold">{{ $strings.HeaderSettingsGeneral }}</h2> | ||||||
|           </div> |           </div> | ||||||
|           <div class="flex items-end py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsStoreCoversWithItemHelp"> | ||||||
|               <p class="pl-4"> |               <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> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsStoreMetadataWithItemHelp"> | ||||||
|               <p class="pl-4"> |               <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> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsSortingIgnorePrefixesHelp"> | ||||||
|               <p class="pl-4"> |               <p class="pl-4"> | ||||||
|                 {{ $strings.LabelSettingsSortingIgnorePrefixes }} |                 <span id="settings-sorting-ignore-prefixes">{{ $strings.LabelSettingsSortingIgnorePrefixes }}</span> | ||||||
|                 <span class="material-icons icon-text">info_outlined</span> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
| @ -40,8 +40,8 @@ | |||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <div class="flex items-center py-2"> | ||||||
|             <ui-toggle-switch v-model="newServerSettings.chromecastEnabled" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('chromecastEnabled', val)" /> |             <ui-toggle-switch labeledBy="settings-chromecast-support" v-model="newServerSettings.chromecastEnabled" :disabled="updatingServerSettings" @input="(val) => updateSettingsKey('chromecastEnabled', val)" /> | ||||||
|             <p class="pl-4">{{ $strings.LabelSettingsChromecastSupport }}</p> |             <p class="pl-4" id="settings-chromecast-support">{{ $strings.LabelSettingsChromecastSupport }}</p> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="pt-4"> |           <div class="pt-4"> | ||||||
| @ -49,33 +49,31 @@ | |||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsBookshelfViewHelp"> | ||||||
|               <p class="pl-4"> |               <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> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsBookshelfViewHelp"> | ||||||
|               <p class="pl-4"> |               <p class="pl-4"> | ||||||
|                 {{ $strings.LabelSettingsLibraryBookshelfView }} |                 <span id="settings-library-uses-bookshelf">{{ $strings.LabelSettingsLibraryBookshelfView }}</span> | ||||||
|                 <span class="material-icons icon-text">info_outlined</span> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="py-2"> |           <div class="py-2"> | ||||||
|             <p class="px-1 text-sm font-semibold">{{ $strings.LabelSettingsDateFormat }}</p> |             <ui-dropdown :label="$strings.LabelSettingsDateFormat" v-model="newServerSettings.dateFormat" :items="dateFormats" small class="max-w-52" @input="(val) => updateSettingsKey('dateFormat', val)" /> | ||||||
|             <ui-dropdown v-model="newServerSettings.dateFormat" :items="dateFormats" small class="max-w-52" @input="(val) => updateSettingsKey('dateFormat', val)" /> |  | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="py-2"> |           <div class="py-2"> | ||||||
|             <p class="px-1 text-sm font-semibold">{{ $strings.LabelLanguageDefaultServer }}</p> |             <ui-dropdown :label="$strings.LabelLanguageDefaultServer" ref="langDropdown" v-model="newServerSettings.language" :items="$languageCodeOptions" small class="max-w-52" @input="updateServerLanguage" /> | ||||||
|             <ui-dropdown ref="langDropdown" v-model="newServerSettings.language" :items="$languageCodeOptions" small class="max-w-52" @input="updateServerLanguage" /> |  | ||||||
|           </div> |           </div> | ||||||
|         </div> |         </div> | ||||||
| 
 | 
 | ||||||
| @ -85,20 +83,20 @@ | |||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsParseSubtitlesHelp"> | ||||||
|               <p class="pl-4"> |               <p class="pl-4"> | ||||||
|                 {{ $strings.LabelSettingsParseSubtitles }} |                 <span id="settings-parse-subtitles">{{ $strings.LabelSettingsParseSubtitles }}</span> | ||||||
|                 <span class="material-icons icon-text">info_outlined</span> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsFindCoversHelp"> | ||||||
|               <p class="pl-4"> |               <p class="pl-4"> | ||||||
|                 {{ $strings.LabelSettingsFindCovers }} |                 <span id="settings-find-covers">{{ $strings.LabelSettingsFindCovers }}</span> | ||||||
|                 <span class="material-icons icon-text">info_outlined</span> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
| @ -109,50 +107,50 @@ | |||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsOverdriveMediaMarkersHelp"> | ||||||
|               <p class="pl-4"> |               <p class="pl-4"> | ||||||
|                 {{ $strings.LabelSettingsOverdriveMediaMarkers }} |                 <span id="settings-overdrive-media-markers">{{ $strings.LabelSettingsOverdriveMediaMarkers }}</span> | ||||||
|                 <span class="material-icons icon-text">info_outlined</span> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsPreferAudioMetadataHelp"> | ||||||
|               <p class="pl-4"> |               <p class="pl-4"> | ||||||
|                 {{ $strings.LabelSettingsPreferAudioMetadata }} |                 <span id="settings-prefer-audio-metadata">{{ $strings.LabelSettingsPreferAudioMetadata }}</span> | ||||||
|                 <span class="material-icons icon-text">info_outlined</span> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsPreferOPFMetadataHelp"> | ||||||
|               <p class="pl-4"> |               <p class="pl-4"> | ||||||
|                 {{ $strings.LabelSettingsPreferOPFMetadata }} |                 <span id="settings-prefer-opf-metadata">{{ $strings.LabelSettingsPreferOPFMetadata }}</span> | ||||||
|                 <span class="material-icons icon-text">info_outlined</span> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsPreferMatchedMetadataHelp"> | ||||||
|               <p class="pl-4"> |               <p class="pl-4"> | ||||||
|                 {{ $strings.LabelSettingsPreferMatchedMetadata }} |                 <span id="settings-prefer-matched-metadata">{{ $strings.LabelSettingsPreferMatchedMetadata }}</span> | ||||||
|                 <span class="material-icons icon-text">info_outlined</span> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsDisableWatcherHelp"> | ||||||
|               <p class="pl-4"> |               <p class="pl-4"> | ||||||
|                 {{ $strings.LabelSettingsDisableWatcher }} |                 <span id="settings-disable-watcher">{{ $strings.LabelSettingsDisableWatcher }}</span> | ||||||
|                 <span class="material-icons icon-text">info_outlined</span> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
| @ -163,11 +161,11 @@ | |||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsExperimentalFeaturesHelp"> | ||||||
|               <p class="pl-4"> |               <p class="pl-4"> | ||||||
|                 {{ $strings.LabelSettingsExperimentalFeatures }} |                 <span id="settings-experimental-features">{{ $strings.LabelSettingsExperimentalFeatures }}</span> | ||||||
|                 <a href="https://github.com/advplyr/audiobookshelf/discussions/75" target="_blank"> |                 <a :aria-label="$strings.LabelSettingsExperimentalFeaturesHelp" href="https://github.com/advplyr/audiobookshelf/discussions/75" target="_blank"> | ||||||
|                   <span class="material-icons icon-text">info_outlined</span> |                   <span class="material-icons icon-text">info_outlined</span> | ||||||
|                 </a> |                 </a> | ||||||
|               </p> |               </p> | ||||||
| @ -175,10 +173,10 @@ | |||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div class="flex items-center py-2"> |           <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"> |             <ui-tooltip :text="$strings.LabelSettingsEnableEReaderHelp"> | ||||||
|               <p class="pl-4"> |               <p class="pl-4"> | ||||||
|                 {{ $strings.LabelSettingsEnableEReader }} |                 <span id="settings-enable-e-reader">{{ $strings.LabelSettingsEnableEReader }}</span> | ||||||
|                 <span class="material-icons icon-text">info_outlined</span> |                 <span class="material-icons icon-text">info_outlined</span> | ||||||
|               </p> |               </p> | ||||||
|             </ui-tooltip> |             </ui-tooltip> | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user