diff --git a/resources/assets/stylesheets/scss/courseware.scss b/resources/assets/stylesheets/scss/courseware.scss index 69a8a3203589da588b42fb2e31a436e7ce3b9c8b..66620cbea6fa160a72b287e020a5101a9d5b8d01 100755 --- a/resources/assets/stylesheets/scss/courseware.scss +++ b/resources/assets/stylesheets/scss/courseware.scss @@ -860,7 +860,6 @@ form.cw-container-dialog-edit-form { background-repeat: no-repeat; background-color: transparent; cursor: pointer; - outline: none; } .cw-keypoint-content { @@ -1858,7 +1857,6 @@ d i a l o g margin-right: -10px; margin-left: 2em; cursor: pointer; - outline: none; } .studip-dialog-content { color: $black; @@ -1900,7 +1898,9 @@ d i a l o g background: $activity-color none repeat scroll 0 0; } .studip-dialog-close-button { - @include background-icon(decline, info); + @include background-icon(decline, clickable); + border: none; + background-color: transparent; } .studip-dialog-content { @include background-icon(question-circle-full, status-yellow, 32); @@ -2590,7 +2590,6 @@ a u d i o b l o c k height: 46px; width: 46px; display: inline-block; - outline: none; &:hover { background-color: $base-color; @@ -2694,28 +2693,33 @@ a u d i o b l o c k list-style: none; cursor: pointer; - .cw-playlist-item { - @include background-icon(file-audio2, clickable, 24); - background-repeat: no-repeat; - background-position: 1em center; - - margin: 1em; - padding: 1em; - padding-left: 4em; - color: $base-color; - &:hover { - color: $active-color; - } - &.current-item { - @include background-icon(play, clickable, 24); - font-weight: 700; - &.is-playing { - @include background-icon(pause, clickable, 24); - } - } + li { + margin: 0 1em; &:not(:last-child) { border-bottom: solid thin $dark-gray-color-30; } + + .cw-playlist-item { + display: block; + @include background-icon(file-audio2, clickable, 24); + background-repeat: no-repeat; + background-position: 1em center; + + margin: 1em 0; + padding: 1em; + padding-left: 4em; + color: $base-color; + &:hover { + color: $active-color; + } + &.current-item { + @include background-icon(play, clickable, 24); + font-weight: 700; + &.is-playing { + @include background-icon(pause, clickable, 24); + } + } + } } } .cw-audio-playlist-recorder { @@ -3046,10 +3050,6 @@ c a n v a s b l o c k background-repeat: no-repeat; background-size: 24px 24px; - &:focus { - outline: none; - } - &.cw-canvasblock-color { $colors: ( white: #ffffff, @@ -3161,7 +3161,6 @@ d o c u m e n t b l o c k width: 24px; margin: 2px 12px; cursor: pointer; - outline: none; } .cw-pdf-button-prev { @@ -3627,7 +3626,7 @@ dialog cards block .cw-block-dialog-cards-content { display: flex; .cw-dialogcards { - flex: auto; + flex-grow: 2; .scene { margin: 0 auto; width: 440px; @@ -3726,10 +3725,9 @@ dialog cards block background-repeat: no-repeat; background-color: $base-color; border: none; - outline: none; display: block; z-index: 4; - margin: auto; + margin: auto 2px; padding: 0; cursor: pointer; diff --git a/resources/vue/components/StudipDialog.vue b/resources/vue/components/StudipDialog.vue index 1dabe6ecf6ca553da113a1ab7d525d18631aca2f..5bcd3034c71712237cededc1ba608bd284154558 100755 --- a/resources/vue/components/StudipDialog.vue +++ b/resources/vue/components/StudipDialog.vue @@ -42,13 +42,13 @@ {{ dialogTitle }} </span> <slot name="dialogHeader"></slot> - <span + <button :aria-label="$gettext('Diesen Dialog schließen')" - class="studip-dialog-close-button" :title="$gettext('Schließen')" + class="studip-dialog-close-button" @click="closeDialog" > - </span> + </button> </header> <section :id="dialogDescId" diff --git a/resources/vue/components/courseware/CoursewareAudioBlock.vue b/resources/vue/components/courseware/CoursewareAudioBlock.vue index fd860cdbaa1a92138cb88d721a2464a94e8f5ad8..a014faf5b693c38b546cabdfc87e53b3a11927d8 100755 --- a/resources/vue/components/courseware/CoursewareAudioBlock.vue +++ b/resources/vue/components/courseware/CoursewareAudioBlock.vue @@ -43,17 +43,20 @@ </div> <div class="cw-audio-playlist-wrapper"> <ul v-show="hasPlaylist" class="cw-audio-playlist"> - <li - v-for="(file, index) in files" - :key="file.id" - :class="{ - 'is-playing': index === currentPlaylistItem && playing, - 'current-item': index === currentPlaylistItem, - }" - class="cw-playlist-item" - @click="setCurrentPlaylistItem(index)" - > - {{ file.name }} + <li v-for="(file, index) in files" :key="file.id"> + <a + :aria-current="(index === currentPlaylistItem) ? 'true' : 'false'" + :class="{ + 'is-playing': index === currentPlaylistItem && playing, + 'current-item': index === currentPlaylistItem, + }" + :title="$gettext('Audiodatei:') + ' ' + file.name" + href="#" + class="cw-playlist-item" + @click.prevent="setCurrentPlaylistItem(index)" + > + {{ file.name }} + </a> </li> </ul> <div v-if="emptyAudio" class="cw-audio-empty"> diff --git a/resources/vue/components/courseware/CoursewareCanvasBlock.vue b/resources/vue/components/courseware/CoursewareCanvasBlock.vue index 42e252de8b80eb2be4c62f49b0a797b2562ba141..8b829b365d59170738fe38e77df90c7343db65a0 100755 --- a/resources/vue/components/courseware/CoursewareCanvasBlock.vue +++ b/resources/vue/components/courseware/CoursewareCanvasBlock.vue @@ -20,11 +20,12 @@ </div> <div class="cw-canvasblock-buttonset"> <button - v-for="(rgba, color) in colors" - :key="color" + v-for="color in colors" + :key="color.name" class="cw-canvasblock-color" - :class="[currentColor === color ? 'selected-color' : '', color]" - @click="setColor(color)" + :class="[currentColor === color.name ? 'selected-color' : '', color.name]" + :title="color.title" + @click="setColor(color.name)" /> </div> <div class="cw-canvasblock-buttonset"> @@ -177,18 +178,18 @@ export default { clickY: [], clickDrag: [], clickColor: [], - colors: { - white: 'rgba(255,255,255,1)', - blue: 'rgba(52,152,219,1)', - green: 'rgba(46,204,113,1)', - purple: 'rgba(155,89,182,1)', - red: 'rgba(231,76,60,1)', - yellow: 'rgba(254,211,48,1)', - orange: 'rgba(243,156,18,1)', - grey: 'rgba(149,165,166,1)', - darkgrey: 'rgba(52,73,94,1)', - black: 'rgba(0,0,0,1)', - }, + colors: [ + {rgba: 'rgba(255,255,255,1)', title: this.$gettext('weiß'), name: 'white'}, + {rgba: 'rgba(52,152,219,1)', title: this.$gettext('blau'), name: 'blue'}, + {rgba: 'rgba(46,204,113,1)', title: this.$gettext('grün'), name: 'green'}, + {rgba: 'rgba(155,89,182,1)', title: this.$gettext('lila'), name: 'purple'}, + {rgba: 'rgba(231,76,60,1)', title: this.$gettext('rot'), name: 'red'}, + {rgba: 'rgba(254,211,48,1)', title: this.$gettext('gelb'), name: 'yellow'}, + {rgba: 'rgba(243,156,18,1)', title: this.$gettext('orange'), name: 'orange'}, + {rgba: 'rgba(149,165,166,1)', title: this.$gettext('grau'), name: 'grey'}, + {rgba: 'rgba(52,73,94,1)', title: this.$gettext('dunkel grau'), name: 'darkgrey'}, + {rgba: 'rgba(0,0,0,1)', title: this.$gettext('schwarz'), name: 'black'}, + ], currentColor: '', currentColorRGBA: '', sizes: { small: 2, normal: 5, large: 8, huge: 12 }, @@ -295,7 +296,7 @@ export default { return; } this.currentColor = color; - this.currentColorRGBA = this.colors[color]; + this.currentColorRGBA = this.colors.find(c => c.name === color).rgba; }, setSize(size) { if (this.textInput) {