fix: missing aria-label on page view (#2154)
This commit is contained in:
		| @@ -12,6 +12,7 @@ | |||||||
|       color='blue-grey darken-2' |       color='blue-grey darken-2' | ||||||
|       :background-color='$vuetify.theme.dark ? `grey darken-5` : `white`' |       :background-color='$vuetify.theme.dark ? `grey darken-5` : `white`' | ||||||
|       v-if='permissions.write' |       v-if='permissions.write' | ||||||
|  |       :aria-label='$t(`common:comments.fieldContent`)' | ||||||
|     ) |     ) | ||||||
|     v-row.mt-2(dense, v-if='!isAuthenticated && permissions.write') |     v-row.mt-2(dense, v-if='!isAuthenticated && permissions.write') | ||||||
|       v-col(cols='12', lg='6') |       v-col(cols='12', lg='6') | ||||||
| @@ -24,6 +25,7 @@ | |||||||
|           dense |           dense | ||||||
|           autocomplete='name' |           autocomplete='name' | ||||||
|           v-model='guestName' |           v-model='guestName' | ||||||
|  |           :aria-label='$t(`common:comments.fieldName`)' | ||||||
|         ) |         ) | ||||||
|       v-col(cols='12', lg='6') |       v-col(cols='12', lg='6') | ||||||
|         v-text-field( |         v-text-field( | ||||||
| @@ -36,6 +38,7 @@ | |||||||
|           dense |           dense | ||||||
|           autocomplete='email' |           autocomplete='email' | ||||||
|           v-model='guestEmail' |           v-model='guestEmail' | ||||||
|  |           :aria-label='$t(`common:comments.fieldEmail`)' | ||||||
|         ) |         ) | ||||||
|     .d-flex.align-center.pt-3(v-if='permissions.write') |     .d-flex.align-center.pt-3(v-if='permissions.write') | ||||||
|       v-icon.mr-1(color='blue-grey') mdi-language-markdown-outline |       v-icon.mr-1(color='blue-grey') mdi-language-markdown-outline | ||||||
| @@ -49,6 +52,7 @@ | |||||||
|         color='blue-grey darken-2' |         color='blue-grey darken-2' | ||||||
|         @click='postComment' |         @click='postComment' | ||||||
|         depressed |         depressed | ||||||
|  |         :aria-label='$t(`common:comments.postComment`)' | ||||||
|         ) |         ) | ||||||
|         v-icon(left) mdi-comment |         v-icon(left) mdi-comment | ||||||
|         span.text-none {{$t('common:comments.postComment')}} |         span.text-none {{$t('common:comments.postComment')}} | ||||||
|   | |||||||
| @@ -72,7 +72,7 @@ | |||||||
|               ) |               ) | ||||||
|             v-tooltip(bottom) |             v-tooltip(bottom) | ||||||
|               template(v-slot:activator='{ on }') |               template(v-slot:activator='{ on }') | ||||||
|                 v-btn.ml-2.mr-0(icon, v-on='on', href='/t') |                 v-btn.ml-2.mr-0(icon, v-on='on', href='/t', :aria-label='$t(`common:header.browseTags`)') | ||||||
|                   v-icon(color='grey') mdi-tag-multiple |                   v-icon(color='grey') mdi-tag-multiple | ||||||
|               span {{$t('common:header.browseTags')}} |               span {{$t('common:header.browseTags')}} | ||||||
|       v-flex(xs7, md4) |       v-flex(xs7, md4) | ||||||
| @@ -96,10 +96,18 @@ | |||||||
|  |  | ||||||
|           template(v-if='mode === `view` && locales.length > 0') |           template(v-if='mode === `view` && locales.length > 0') | ||||||
|             v-menu(offset-y, bottom, transition='slide-y-transition', max-height='320px', min-width='210px', left) |             v-menu(offset-y, bottom, transition='slide-y-transition', max-height='320px', min-width='210px', left) | ||||||
|               template(v-slot:activator='{ on: menu }') |               template(v-slot:activator='{ on: menu, attrs }') | ||||||
|                 v-tooltip(bottom) |                 v-tooltip(bottom) | ||||||
|                   template(v-slot:activator='{ on: tooltip }') |                   template(v-slot:activator='{ on: tooltip }') | ||||||
|                     v-btn(icon, v-on='{ ...menu, ...tooltip }', :class='$vuetify.rtl ? `ml-3` : ``', tile, height='64') |                     v-btn( | ||||||
|  |                       icon | ||||||
|  |                       v-bind='attrs' | ||||||
|  |                       v-on='{ ...menu, ...tooltip }' | ||||||
|  |                       :class='$vuetify.rtl ? `ml-3` : ``' | ||||||
|  |                       tile | ||||||
|  |                       height='64' | ||||||
|  |                       :aria-label='$t(`common:header.language`)' | ||||||
|  |                       ) | ||||||
|                       v-icon(color='grey') mdi-web |                       v-icon(color='grey') mdi-web | ||||||
|                   span {{$t('common:header.language')}} |                   span {{$t('common:header.language')}} | ||||||
|               v-list(nav) |               v-list(nav) | ||||||
| @@ -113,10 +121,18 @@ | |||||||
|  |  | ||||||
|           template(v-if='hasAnyPagePermissions && path && mode !== `edit`') |           template(v-if='hasAnyPagePermissions && path && mode !== `edit`') | ||||||
|             v-menu(offset-y, bottom, transition='slide-y-transition', left) |             v-menu(offset-y, bottom, transition='slide-y-transition', left) | ||||||
|               template(v-slot:activator='{ on: menu }') |               template(v-slot:activator='{ on: menu, attrs }') | ||||||
|                 v-tooltip(bottom) |                 v-tooltip(bottom) | ||||||
|                   template(v-slot:activator='{ on: tooltip }') |                   template(v-slot:activator='{ on: tooltip }') | ||||||
|                     v-btn(icon, v-on='{ ...menu, ...tooltip }', :class='$vuetify.rtl ? `ml-3` : ``', tile, height='64') |                     v-btn( | ||||||
|  |                       icon | ||||||
|  |                       v-bind='attrs' | ||||||
|  |                       v-on='{ ...menu, ...tooltip }' | ||||||
|  |                       :class='$vuetify.rtl ? `ml-3` : ``' | ||||||
|  |                       tile | ||||||
|  |                       height='64' | ||||||
|  |                       :aria-label='$t(`common:header.pageActions`)' | ||||||
|  |                       ) | ||||||
|                       v-icon(color='grey') mdi-file-document-edit-outline |                       v-icon(color='grey') mdi-file-document-edit-outline | ||||||
|                   span {{$t('common:header.pageActions')}} |                   span {{$t('common:header.pageActions')}} | ||||||
|               v-list(nav, :light='!$vuetify.theme.dark', :dark='$vuetify.theme.dark', :class='$vuetify.theme.dark ? `grey darken-4` : ``') |               v-list(nav, :light='!$vuetify.theme.dark', :dark='$vuetify.theme.dark', :class='$vuetify.theme.dark ? `grey darken-4` : ``') | ||||||
| @@ -151,7 +167,7 @@ | |||||||
|           template(v-if='hasNewPagePermission && path && mode !== `edit`') |           template(v-if='hasNewPagePermission && path && mode !== `edit`') | ||||||
|             v-tooltip(bottom) |             v-tooltip(bottom) | ||||||
|               template(v-slot:activator='{ on }') |               template(v-slot:activator='{ on }') | ||||||
|                 v-btn(icon, tile, height='64', v-on='on', @click='pageNew') |                 v-btn(icon, tile, height='64', v-on='on', @click='pageNew', :aria-label='$t(`common:header.newPage`)') | ||||||
|                   v-icon(color='grey') mdi-text-box-plus-outline |                   v-icon(color='grey') mdi-text-box-plus-outline | ||||||
|               span {{$t('common:header.newPage')}} |               span {{$t('common:header.newPage')}} | ||||||
|             v-divider(vertical) |             v-divider(vertical) | ||||||
| @@ -159,10 +175,18 @@ | |||||||
|           //- ACCOUNT |           //- ACCOUNT | ||||||
|  |  | ||||||
|           v-menu(v-if='isAuthenticated', offset-y, bottom, min-width='300', transition='slide-y-transition', left) |           v-menu(v-if='isAuthenticated', offset-y, bottom, min-width='300', transition='slide-y-transition', left) | ||||||
|             template(v-slot:activator='{ on: menu }') |             template(v-slot:activator='{ on: menu, attrs }') | ||||||
|               v-tooltip(bottom) |               v-tooltip(bottom) | ||||||
|                 template(v-slot:activator='{ on: tooltip }') |                 template(v-slot:activator='{ on: tooltip }') | ||||||
|                   v-btn(icon, v-on='{ ...menu, ...tooltip }', :class='$vuetify.rtl ? `ml-0` : ``', tile, height='64') |                   v-btn( | ||||||
|  |                     icon | ||||||
|  |                     v-bind='attrs' | ||||||
|  |                     v-on='{ ...menu, ...tooltip }' | ||||||
|  |                     :class='$vuetify.rtl ? `ml-0` : ``' | ||||||
|  |                     tile | ||||||
|  |                     height='64' | ||||||
|  |                     :aria-label='$t(`common:header.account`)' | ||||||
|  |                     ) | ||||||
|                     v-icon(v-if='picture.kind === `initials`', color='grey') mdi-account-circle |                     v-icon(v-if='picture.kind === `initials`', color='grey') mdi-account-circle | ||||||
|                     v-avatar(v-else-if='picture.kind === `image`', :size='34') |                     v-avatar(v-else-if='picture.kind === `image`', :size='34') | ||||||
|                       v-img(:src='picture.url') |                       v-img(:src='picture.url') | ||||||
| @@ -195,7 +219,7 @@ | |||||||
|  |  | ||||||
|           v-tooltip(v-else, left) |           v-tooltip(v-else, left) | ||||||
|             template(v-slot:activator='{ on }') |             template(v-slot:activator='{ on }') | ||||||
|               v-btn(icon, v-on='on', color='grey darken-3', href='/login') |               v-btn(icon, v-on='on', color='grey darken-3', href='/login', :aria-label='$t(`common:header.login`)') | ||||||
|                 v-icon(color='grey') mdi-account-circle |                 v-icon(color='grey') mdi-account-circle | ||||||
|             span {{$t('common:header.login')}} |             span {{$t('common:header.login')}} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,12 +1,30 @@ | |||||||
| <template lang="pug"> | <template lang="pug"> | ||||||
|   div |   div | ||||||
|     .pa-3.d-flex(v-if='navMode === `MIXED`', :class='$vuetify.theme.dark ? `grey darken-5` : `blue darken-3`') |     .pa-3.d-flex(v-if='navMode === `MIXED`', :class='$vuetify.theme.dark ? `grey darken-5` : `blue darken-3`') | ||||||
|       v-btn(depressed, :color='$vuetify.theme.dark ? `grey darken-4` : `blue darken-2`', style='min-width:0;', @click='goHome') |       v-btn( | ||||||
|  |         depressed | ||||||
|  |         :color='$vuetify.theme.dark ? `grey darken-4` : `blue darken-2`' | ||||||
|  |         style='min-width:0;' | ||||||
|  |         @click='goHome' | ||||||
|  |         :aria-label='$t(`common:header.home`)' | ||||||
|  |         ) | ||||||
|         v-icon(size='20') mdi-home |         v-icon(size='20') mdi-home | ||||||
|       v-btn.ml-3(v-if='currentMode === `custom`', depressed, :color='$vuetify.theme.dark ? `grey darken-4` : `blue darken-2`', style='flex: 1 1 100%;', @click='switchMode(`browse`)') |       v-btn.ml-3( | ||||||
|  |         v-if='currentMode === `custom`' | ||||||
|  |         depressed | ||||||
|  |         :color='$vuetify.theme.dark ? `grey darken-4` : `blue darken-2`' | ||||||
|  |         style='flex: 1 1 100%;' | ||||||
|  |         @click='switchMode(`browse`)' | ||||||
|  |         ) | ||||||
|         v-icon(left) mdi-file-tree |         v-icon(left) mdi-file-tree | ||||||
|         .body-2.text-none {{$t('common:sidebar.browse')}} |         .body-2.text-none {{$t('common:sidebar.browse')}} | ||||||
|       v-btn.ml-3(v-else-if='currentMode === `browse`', depressed, :color='$vuetify.theme.dark ? `grey darken-4` : `blue darken-2`', style='flex: 1 1 100%;', @click='switchMode(`custom`)') |       v-btn.ml-3( | ||||||
|  |         v-else-if='currentMode === `browse`' | ||||||
|  |         depressed | ||||||
|  |         :color='$vuetify.theme.dark ? `grey darken-4` : `blue darken-2`' | ||||||
|  |         style='flex: 1 1 100%;' | ||||||
|  |         @click='switchMode(`custom`)' | ||||||
|  |         ) | ||||||
|         v-icon(left) mdi-navigation |         v-icon(left) mdi-navigation | ||||||
|         .body-2.text-none {{$t('common:sidebar.mainMenu')}} |         .body-2.text-none {{$t('common:sidebar.mainMenu')}} | ||||||
|     v-divider |     v-divider | ||||||
|   | |||||||
| @@ -73,7 +73,7 @@ | |||||||
|  |  | ||||||
|             v-card.mb-5(v-if='tags.length > 0') |             v-card.mb-5(v-if='tags.length > 0') | ||||||
|               .pa-5 |               .pa-5 | ||||||
|                 .overline.teal--text.pb-2(:class='$vuetify.theme.dark ? `text--lighten-3` : ``') Tags |                 .overline.teal--text.pb-2(:class='$vuetify.theme.dark ? `text--lighten-3` : ``') {{$t('common:page.tags')}} | ||||||
|                 v-chip.mr-1.mb-1( |                 v-chip.mr-1.mb-1( | ||||||
|                   label |                   label | ||||||
|                   :color='$vuetify.theme.dark ? `teal darken-1` : `teal lighten-5`' |                   :color='$vuetify.theme.dark ? `teal darken-1` : `teal lighten-5`' | ||||||
| @@ -87,13 +87,14 @@ | |||||||
|                   label |                   label | ||||||
|                   :color='$vuetify.theme.dark ? `teal darken-1` : `teal lighten-5`' |                   :color='$vuetify.theme.dark ? `teal darken-1` : `teal lighten-5`' | ||||||
|                   :href='`/t/` + tags.map(t => t.tag).join(`/`)' |                   :href='`/t/` + tags.map(t => t.tag).join(`/`)' | ||||||
|  |                   :aria-label='$t(`common:page.tagsMatching`)' | ||||||
|                   ) |                   ) | ||||||
|                   v-icon(:color='$vuetify.theme.dark ? `teal lighten-3` : `teal`', size='20') mdi-tag-multiple |                   v-icon(:color='$vuetify.theme.dark ? `teal lighten-3` : `teal`', size='20') mdi-tag-multiple | ||||||
|  |  | ||||||
|             v-card.mb-5(v-if='commentsEnabled && commentsPerms.read') |             v-card.mb-5(v-if='commentsEnabled && commentsPerms.read') | ||||||
|               .pa-5 |               .pa-5 | ||||||
|                 .overline.pb-2.blue-grey--text.d-flex.align-center(:class='$vuetify.theme.dark ? `text--lighten-3` : `text--darken-2`') |                 .overline.pb-2.blue-grey--text.d-flex.align-center(:class='$vuetify.theme.dark ? `text--lighten-3` : `text--darken-2`') | ||||||
|                   span Talk |                   span {{$t('common:comments.sdTitle')}} | ||||||
|                   //- v-spacer |                   //- v-spacer | ||||||
|                   //- v-chip.text-center( |                   //- v-chip.text-center( | ||||||
|                   //-   v-if='!commentsExternal' |                   //-   v-if='!commentsExternal' | ||||||
| @@ -112,7 +113,7 @@ | |||||||
|                     style='flex: 1 1 100%;' |                     style='flex: 1 1 100%;' | ||||||
|                     small |                     small | ||||||
|                     ) |                     ) | ||||||
|                     span.blue-grey--text(:class='$vuetify.theme.dark ? `text--lighten-1` : `text--darken-2`') View Discussion |                     span.blue-grey--text(:class='$vuetify.theme.dark ? `text--lighten-1` : `text--darken-2`') {{$t('common:comments.viewDiscussion')}} | ||||||
|                   v-tooltip(right, v-if='commentsPerms.write') |                   v-tooltip(right, v-if='commentsPerms.write') | ||||||
|                     template(v-slot:activator='{ on }') |                     template(v-slot:activator='{ on }') | ||||||
|                       v-btn.ml-2( |                       v-btn.ml-2( | ||||||
| @@ -121,9 +122,10 @@ | |||||||
|                         outlined |                         outlined | ||||||
|                         small |                         small | ||||||
|                         :color='$vuetify.theme.dark ? `blue-grey` : `blue-grey darken-2`' |                         :color='$vuetify.theme.dark ? `blue-grey` : `blue-grey darken-2`' | ||||||
|  |                         :aria-label='$t(`common:comments.newComment`)' | ||||||
|                         ) |                         ) | ||||||
|                         v-icon(:color='$vuetify.theme.dark ? `blue-grey lighten-1` : `blue-grey darken-2`', dense) mdi-comment-plus |                         v-icon(:color='$vuetify.theme.dark ? `blue-grey lighten-1` : `blue-grey darken-2`', dense) mdi-comment-plus | ||||||
|                     span New Comment |                     span {{$t('common:comments.newComment')}} | ||||||
|  |  | ||||||
|             v-card.mb-5 |             v-card.mb-5 | ||||||
|               .pa-5 |               .pa-5 | ||||||
| @@ -132,7 +134,14 @@ | |||||||
|                   v-spacer |                   v-spacer | ||||||
|                   v-tooltip(right, v-if='isAuthenticated') |                   v-tooltip(right, v-if='isAuthenticated') | ||||||
|                     template(v-slot:activator='{ on }') |                     template(v-slot:activator='{ on }') | ||||||
|                       v-btn.btn-animate-edit(icon, :href='"/h/" + locale + "/" + path', v-on='on', x-small, v-if="hasReadHistoryPermission") |                       v-btn.btn-animate-edit( | ||||||
|  |                         icon | ||||||
|  |                         :href='"/h/" + locale + "/" + path' | ||||||
|  |                         v-on='on' | ||||||
|  |                         x-small | ||||||
|  |                         v-if='hasReadHistoryPermission' | ||||||
|  |                         :aria-label='$t(`common:header.history`)' | ||||||
|  |                         ) | ||||||
|                         v-icon(color='indigo', dense) mdi-history |                         v-icon(color='indigo', dense) mdi-history | ||||||
|                     span {{$t('common:header.history')}} |                     span {{$t('common:header.history')}} | ||||||
|                 .body-2.grey--text(:class='$vuetify.theme.dark ? `` : `text--darken-3`') {{ authorName }} |                 .body-2.grey--text(:class='$vuetify.theme.dark ? `` : `text--darken-3`') {{ authorName }} | ||||||
| @@ -156,13 +165,13 @@ | |||||||
|                 v-spacer |                 v-spacer | ||||||
|                 v-tooltip(bottom) |                 v-tooltip(bottom) | ||||||
|                   template(v-slot:activator='{ on }') |                   template(v-slot:activator='{ on }') | ||||||
|                     v-btn(icon, tile, v-on='on'): v-icon(color='grey') mdi-bookmark |                     v-btn(icon, tile, v-on='on', :aria-label='$t(`common:page.bookmark`)'): v-icon(color='grey') mdi-bookmark | ||||||
|                   span {{$t('common:page.bookmark')}} |                   span {{$t('common:page.bookmark')}} | ||||||
|                 v-menu(offset-y, bottom, min-width='300') |                 v-menu(offset-y, bottom, min-width='300') | ||||||
|                   template(v-slot:activator='{ on: menu }') |                   template(v-slot:activator='{ on: menu }') | ||||||
|                     v-tooltip(bottom) |                     v-tooltip(bottom) | ||||||
|                       template(v-slot:activator='{ on: tooltip }') |                       template(v-slot:activator='{ on: tooltip }') | ||||||
|                         v-btn(icon, tile, v-on='{ ...menu, ...tooltip }'): v-icon(color='grey') mdi-share-variant |                         v-btn(icon, tile, v-on='{ ...menu, ...tooltip }', :aria-label='$t(`common:page.share`)'): v-icon(color='grey') mdi-share-variant | ||||||
|                       span {{$t('common:page.share')}} |                       span {{$t('common:page.share')}} | ||||||
|                   social-sharing( |                   social-sharing( | ||||||
|                     :url='pageUrl' |                     :url='pageUrl' | ||||||
| @@ -171,7 +180,7 @@ | |||||||
|                   ) |                   ) | ||||||
|                 v-tooltip(bottom) |                 v-tooltip(bottom) | ||||||
|                   template(v-slot:activator='{ on }') |                   template(v-slot:activator='{ on }') | ||||||
|                     v-btn(icon, tile, v-on='on', @click='print') |                     v-btn(icon, tile, v-on='on', @click='print', :aria-label='$t(`common:page.printFormat`)') | ||||||
|                       v-icon(:color='printView ? `primary` : `grey`') mdi-printer |                       v-icon(:color='printView ? `primary` : `grey`') mdi-printer | ||||||
|                   span {{$t('common:page.printFormat')}} |                   span {{$t('common:page.printFormat')}} | ||||||
|                 v-spacer |                 v-spacer | ||||||
| @@ -198,6 +207,7 @@ | |||||||
|                       @click='pageEdit' |                       @click='pageEdit' | ||||||
|                       v-on='onEditActivator' |                       v-on='onEditActivator' | ||||||
|                       :disabled='!hasWritePagesPermission' |                       :disabled='!hasWritePagesPermission' | ||||||
|  |                       :aria-label='$t(`common:page.editPage`)' | ||||||
|                       ) |                       ) | ||||||
|                       v-icon mdi-pencil |                       v-icon mdi-pencil | ||||||
|                   v-tooltip(:right='$vuetify.rtl', :left='!$vuetify.rtl', v-if='hasReadHistoryPermission') |                   v-tooltip(:right='$vuetify.rtl', :left='!$vuetify.rtl', v-if='hasReadHistoryPermission') | ||||||
| @@ -288,6 +298,7 @@ | |||||||
|         color='primary' |         color='primary' | ||||||
|         dark |         dark | ||||||
|         :style='upBtnPosition' |         :style='upBtnPosition' | ||||||
|  |         :aria-label='$t(`common:actions.returnToTop`)' | ||||||
|         ) |         ) | ||||||
|         v-icon mdi-arrow-up |         v-icon mdi-arrow-up | ||||||
| </template> | </template> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user