Apply consistent ARIA labeling to cards across station management.

This commit is contained in:
Buster Neece 2023-04-01 11:29:58 -05:00
parent 27734d700a
commit 1443b06601
No known key found for this signature in database
GPG Key ID: F1D2E64A0005E80E
32 changed files with 476 additions and 300 deletions

View File

@ -9,9 +9,13 @@
<section
class="card"
role="region"
aria-labelledby="hdr_profile"
>
<b-card-header header-bg-variant="primary-dark">
<h2 class="card-title">
<h2
id="hdr_profile"
class="card-title"
>
{{ $gettext('Profile') }}
</h2>
</b-card-header>
@ -80,9 +84,13 @@
<section
class="card"
role="region"
aria-labelledby="hdr_security"
>
<b-card-header header-bg-variant="primary-dark">
<h2 class="card-title">
<h2
id="hdr_security"
class="card-title"
>
{{ $gettext('Security') }}
</h2>
</b-card-header>
@ -133,9 +141,16 @@
</section>
</div>
<div class="col-sm-12 col-md-6 col-lg-7">
<b-card no-body>
<section
class="card"
role="region"
aria-labelledby="hdr_api_keys"
>
<b-card-header header-bg-variant="primary-dark">
<h2 class="card-title">
<h2
id="hdr_api_keys"
class="card-title"
>
{{ $gettext('API Keys') }}
</h2>
</b-card-header>
@ -181,7 +196,7 @@
</b-button-group>
</template>
</data-table>
</b-card>
</section>
</div>
</div>

View File

@ -2,6 +2,7 @@
<div
class="card-body alert-info d-flex align-items-center"
role="alert"
aria-live="off"
>
<div class="flex-shrink-0 mr-2">
<icon icon="info" />

View File

@ -1,9 +1,16 @@
<template>
<div class="public-page">
<div class="card">
<section
class="card"
role="region"
aria-labelledby="hdr_recover_account"
>
<div class="card-body p-4">
<div class="mb-3">
<h2 class="card-title mb-0 text-center">
<h2
id="hdr_recover_account"
class="card-title mb-0 text-center"
>
{{ $gettext('Recover Account') }}
</h2>
<h3 class="text-center">
@ -60,7 +67,7 @@
</b-button>
</form>
</div>
</div>
</section>
</div>
</template>

View File

@ -3,9 +3,13 @@
<section
class="card"
role="region"
aria-labelledby="hdr_custom_assets"
>
<div class="card-header bg-primary-dark">
<h2 class="card-title">
<h2
id="hdr_custom_assets"
class="card-title"
>
{{ $gettext('Upload Custom Assets') }}
</h2>
</div>

View File

@ -4,9 +4,13 @@
<section
class="card"
role="region"
aria-labelledby="hdr_export_media"
>
<div class="card-header bg-primary-dark">
<h2 class="card-title">
<h2
id="hdr_export_media"
class="card-title"
>
{{ $gettext('Export Media to CSV') }}
</h2>
</div>

View File

@ -2,9 +2,13 @@
<section
class="card"
role="region"
aria-labelledby="hdr_fallback_file"
>
<div class="card-header bg-primary-dark">
<h2 class="card-title">
<h2
id="hdr_fallback_file"
class="card-title"
>
{{ $gettext('Custom Fallback File') }}
</h2>
</div>

View File

@ -1,9 +1,16 @@
<template>
<div class="row row-of-cards">
<div class="col-md-8">
<div class="card">
<section
class="card"
role="region"
aria-labelledby="hdr_available_logs"
>
<div class="card-header bg-primary-dark">
<h2 class="card-title">
<h2
id="hdr_available_logs"
class="card-title"
>
{{ $gettext('Available Logs') }}
</h2>
</div>
@ -12,14 +19,21 @@
:url="logsUrl"
@view="viewLog"
/>
</div>
</section>
<streaming-log-modal ref="$modal" />
</div>
<div class="col-md-4">
<div class="card">
<section
class="card"
role="region"
aria-labelledby="hdr_need_help"
>
<div class="card-header bg-primary-dark">
<h2 class="card-title">
<h2
id="hdr_need_help"
class="card-title"
>
{{ $gettext('Need Help?') }}
</h2>
</div>
@ -52,7 +66,7 @@
{{ $gettext('Add New GitHub Issue') }}
</a>
</div>
</div>
</section>
</div>
</div>
</template>

View File

@ -1,7 +1,14 @@
<template>
<b-card no-body>
<section
class="card"
role="region"
aria-labelledby="hdr_hls_streams"
>
<b-card-header header-bg-variant="primary-dark">
<h2 class="card-title">
<h2
id="hdr_hls_streams"
class="card-title"
>
{{ $gettext('HLS Streams') }}
</h2>
</b-card-header>
@ -61,7 +68,7 @@
</b-button-group>
</template>
</data-table>
</b-card>
</section>
<edit-modal
ref="$editModal"

View File

@ -6,9 +6,13 @@
<section
class="card"
role="region"
aria-labelledby="hdr_edit_ls_config"
>
<div class="card-header bg-primary-dark">
<h2 class="card-title">
<h2
id="hdr_edit_ls_config"
class="card-title"
>
{{ $gettext('Edit Liquidsoap Configuration') }}
</h2>
</div>

View File

@ -1,246 +1,249 @@
<template>
<div class="row">
<div class="col-12">
<div class="card">
<b-card-header header-bg-variant="primary-dark">
<b-row class="align-items-center">
<b-col md="7">
<h2 class="card-title">
{{ $gettext('Music Files') }}
</h2>
</b-col>
<b-col
md="5"
class="text-right text-white-50"
>
<stations-common-quota
ref="$quota"
:quota-url="quotaUrl"
/>
</b-col>
</b-row>
</b-card-header>
<div
v-if="showSftp"
class="card-body alert-info d-flex align-items-center"
role="alert"
<section
class="card"
role="region"
aria-labelledby="hdr_music_files"
>
<b-card-header header-bg-variant="primary-dark">
<b-row class="align-items-center">
<b-col md="7">
<h2
id="hdr_music_files"
class="card-title"
>
{{ $gettext('Music Files') }}
</h2>
</b-col>
<b-col
md="5"
class="text-right text-white-50"
>
<div class="flex-shrink-0 mr-2">
<i
class="material-icons"
aria-hidden="true"
>info</i>
</div>
<div class="flex-fill">
<p class="mb-0">
{{ $gettext('You can also upload files in bulk via SFTP.') }}
</p>
</div>
<div class="flex-shrink-0 ml-2">
<a
class="btn btn-sm btn-light"
target="_blank"
:href="sftpUrl"
>
{{ $gettext('Manage SFTP Accounts') }}
</a>
</div>
</div>
<div class="card-body">
<breadcrumb
:current-directory="currentDirectory"
@change-directory="changeDirectory"
<stations-common-quota
ref="$quota"
:quota-url="quotaUrl"
/>
</b-col>
</b-row>
</b-card-header>
<file-upload
:upload-url="uploadUrl"
:search-phrase="searchPhrase"
:valid-mime-types="validMimeTypes"
:current-directory="currentDirectory"
@relist="onTriggerRelist"
/>
<media-toolbar
:batch-url="batchUrl"
:selected-items="selectedItems"
:current-directory="currentDirectory"
:supports-immediate-queue="supportsImmediateQueue"
:playlists="playlists"
@add-playlist="onAddPlaylist"
@relist="onTriggerRelist"
/>
</div>
<data-table
id="station_media"
ref="$datatable"
selectable
paginated
select-fields
:fields="fields"
:api-url="listUrl"
:request-config="requestConfig"
@row-selected="onRowSelected"
@filtered="onFiltered"
<div
v-if="showSftp"
class="card-body alert-info d-flex align-items-center"
role="alert"
>
<div class="flex-shrink-0 mr-2">
<i
class="material-icons"
aria-hidden="true"
>info</i>
</div>
<div class="flex-fill">
<p class="mb-0">
{{ $gettext('You can also upload files in bulk via SFTP.') }}
</p>
</div>
<div class="flex-shrink-0 ml-2">
<a
class="btn btn-sm btn-light"
target="_blank"
:href="sftpUrl"
>
<template #cell(path)="row">
<div class="d-flex align-items-center">
<div class="flex-shrink-0 pr-2">
<template v-if="row.item.media.is_playable">
<play-button
:url="row.item.media.links.play"
icon-class="outlined"
/>
</template>
<template v-else>
<span
v-if="row.item.is_dir"
class="file-icon"
>
<icon icon="folder" />
</span>
<span
v-else-if="row.item.is_cover_art"
class="file-icon"
>
<icon icon="photo" />
</span>
<span
v-else
class="file-icon"
>
<icon icon="note" />
</span>
</template>
</div>
<div class="flex-fill">
<template v-if="row.item.is_dir">
<a
class="name"
href="#"
:title="row.item.name"
@click.prevent="changeDirectory(row.item.path)"
>
{{ row.item.path_short }}
</a>
</template>
<template v-else-if="row.item.media.is_playable">
<a
class="name"
:href="row.item.media.links.play"
target="_blank"
:title="row.item.name"
>
{{ row.item.text }}
</a>
</template>
<template v-else>
<a
class="name"
:href="row.item.links.download"
target="_blank"
:title="row.item.text"
>
{{ row.item.path_short }}
</a>
</template>
<br>
<small v-if="row.item.media.is_playable">{{ row.item.path_short }}</small>
<small v-else>{{ row.item.text }}</small>
</div>
<album-art
v-if="row.item.media.art"
:src="row.item.media.art"
class="flex-shrink-1 pl-2"
/>
<album-art
v-else-if="row.item.is_cover_art"
:src="row.item.links.download"
class="flex-shrink-1 pl-2"
/>
</div>
</template>
<!-- eslint-disable-next-line -->
<template #cell(media.length)="row">
{{ row.item.media.length_text }}
</template>
<template #cell(size)="row">
<template v-if="!row.item.size">
&nbsp;
</template>
<template v-else>
{{ formatFileSize(row.item.size) }}
</template>
</template>
<template #cell(playlists)="row">
<template
v-for="(playlist, index) in row.item.playlists"
:key="playlist.id"
>
<a
class="btn-search"
href="#"
:title="$gettext('View tracks in playlist')"
@click.prevent="filter('playlist:'+playlist.short_name)"
>{{ playlist.name }}</a>
<span v-if="index+1 < row.item.playlists.length">, </span>
</template>
</template>
<template #cell(commands)="row">
<template v-if="row.item.media.links.edit">
<b-button
size="sm"
variant="primary"
@click.prevent="edit(row.item.media.links.edit, row.item.media.links.art, row.item.media.links.play, row.item.media.links.waveform)"
>
{{ $gettext('Edit') }}
</b-button>
</template>
<template v-else>
<b-button
size="sm"
variant="primary"
@click.prevent="rename(row.item.path)"
>
{{ $gettext('Rename') }}
</b-button>
</template>
</template>
</data-table>
{{ $gettext('Manage SFTP Accounts') }}
</a>
</div>
</div>
<new-directory-modal
:current-directory="currentDirectory"
:mkdir-url="mkdirUrl"
@relist="onTriggerRelist"
/>
<div class="card-body">
<breadcrumb
:current-directory="currentDirectory"
@change-directory="changeDirectory"
/>
<move-files-modal
:selected-items="selectedItems"
:current-directory="currentDirectory"
:batch-url="batchUrl"
:list-directories-url="listDirectoriesUrl"
@relist="onTriggerRelist"
/>
<file-upload
:upload-url="uploadUrl"
:search-phrase="searchPhrase"
:valid-mime-types="validMimeTypes"
:current-directory="currentDirectory"
@relist="onTriggerRelist"
/>
<rename-modal
ref="$renameModal"
:rename-url="renameUrl"
@relist="onTriggerRelist"
/>
<media-toolbar
:batch-url="batchUrl"
:selected-items="selectedItems"
:current-directory="currentDirectory"
:supports-immediate-queue="supportsImmediateQueue"
:playlists="playlists"
@add-playlist="onAddPlaylist"
@relist="onTriggerRelist"
/>
</div>
<edit-modal
ref="$editModal"
:custom-fields="customFields"
:playlists="playlists"
@relist="onTriggerRelist"
/>
</div>
<data-table
id="station_media"
ref="$datatable"
selectable
paginated
select-fields
:fields="fields"
:api-url="listUrl"
:request-config="requestConfig"
@row-selected="onRowSelected"
@filtered="onFiltered"
>
<template #cell(path)="row">
<div class="d-flex align-items-center">
<div class="flex-shrink-0 pr-2">
<template v-if="row.item.media.is_playable">
<play-button
:url="row.item.media.links.play"
icon-class="outlined"
/>
</template>
<template v-else>
<span
v-if="row.item.is_dir"
class="file-icon"
>
<icon icon="folder" />
</span>
<span
v-else-if="row.item.is_cover_art"
class="file-icon"
>
<icon icon="photo" />
</span>
<span
v-else
class="file-icon"
>
<icon icon="note" />
</span>
</template>
</div>
<div class="flex-fill">
<template v-if="row.item.is_dir">
<a
class="name"
href="#"
:title="row.item.name"
@click.prevent="changeDirectory(row.item.path)"
>
{{ row.item.path_short }}
</a>
</template>
<template v-else-if="row.item.media.is_playable">
<a
class="name"
:href="row.item.media.links.play"
target="_blank"
:title="row.item.name"
>
{{ row.item.text }}
</a>
</template>
<template v-else>
<a
class="name"
:href="row.item.links.download"
target="_blank"
:title="row.item.text"
>
{{ row.item.path_short }}
</a>
</template>
<br>
<small v-if="row.item.media.is_playable">{{ row.item.path_short }}</small>
<small v-else>{{ row.item.text }}</small>
</div>
<album-art
v-if="row.item.media.art"
:src="row.item.media.art"
class="flex-shrink-1 pl-2"
/>
<album-art
v-else-if="row.item.is_cover_art"
:src="row.item.links.download"
class="flex-shrink-1 pl-2"
/>
</div>
</template>
<!-- eslint-disable-next-line -->
<template #cell(media.length)="row">
{{ row.item.media.length_text }}
</template>
<template #cell(size)="row">
<template v-if="!row.item.size">
&nbsp;
</template>
<template v-else>
{{ formatFileSize(row.item.size) }}
</template>
</template>
<template #cell(playlists)="row">
<template
v-for="(playlist, index) in row.item.playlists"
:key="playlist.id"
>
<a
class="btn-search"
href="#"
:title="$gettext('View tracks in playlist')"
@click.prevent="filter('playlist:'+playlist.short_name)"
>{{ playlist.name }}</a>
<span v-if="index+1 < row.item.playlists.length">, </span>
</template>
</template>
<template #cell(commands)="row">
<template v-if="row.item.media.links.edit">
<b-button
size="sm"
variant="primary"
@click.prevent="edit(row.item.media.links.edit, row.item.media.links.art, row.item.media.links.play, row.item.media.links.waveform)"
>
{{ $gettext('Edit') }}
</b-button>
</template>
<template v-else>
<b-button
size="sm"
variant="primary"
@click.prevent="rename(row.item.path)"
>
{{ $gettext('Rename') }}
</b-button>
</template>
</template>
</data-table>
</section>
<new-directory-modal
:current-directory="currentDirectory"
:mkdir-url="mkdirUrl"
@relist="onTriggerRelist"
/>
<move-files-modal
:selected-items="selectedItems"
:current-directory="currentDirectory"
:batch-url="batchUrl"
:list-directories-url="listDirectoriesUrl"
@relist="onTriggerRelist"
/>
<rename-modal
ref="$renameModal"
:rename-url="renameUrl"
@relist="onTriggerRelist"
/>
<edit-modal
ref="$editModal"
:custom-fields="customFields"
:playlists="playlists"
@relist="onTriggerRelist"
/>
</template>
<script setup>

View File

@ -1,7 +1,14 @@
<template>
<b-card no-body>
<section
class="card"
role="region"
aria-labelledby="hdr_mount_points"
>
<b-card-header header-bg-variant="primary-dark">
<h2 class="card-title">
<h2
id="hdr_mount_points"
class="card-title"
>
{{ $gettext('Mount Points') }}
</h2>
</b-card-header>
@ -69,7 +76,7 @@
</b-button-group>
</template>
</data-table>
</b-card>
</section>
<edit-modal
ref="$editModal"

View File

@ -1,9 +1,16 @@
<template>
<b-card no-body>
<section
class="card"
role="region"
aria-labelledby="hdr_playlists"
>
<b-card-header header-bg-variant="primary-dark">
<b-row class="align-items-center">
<b-col md="6">
<h2 class="card-title">
<h2
id="hdr_playlists"
class="card-title"
>
{{ $gettext('Playlists') }}
</h2>
</b-col>
@ -192,7 +199,7 @@
/>
</b-tab>
</b-tabs>
</b-card>
</section>
<edit-modal
ref="$editModal"

View File

@ -3,9 +3,13 @@
id="profile-backend"
class="card"
role="region"
aria-labelledby="hdr_backend_disabled"
>
<div class="card-header bg-primary-dark">
<h3 class="card-title">
<h3
id="hdr_backend_disabled"
class="card-title"
>
{{ $gettext('AutoDJ Disabled') }}
</h3>
</div>

View File

@ -3,9 +3,13 @@
id="profile-backend"
class="card"
role="region"
aria-labelledby="hdr_backend"
>
<div class="card-header bg-primary-dark">
<h3 class="card-title">
<h3
id="hdr_backend"
class="card-title"
>
{{ $gettext('AutoDJ Service') }}
<running-badge :running="backendRunning" />
<br>

View File

@ -3,9 +3,13 @@
id="profile-frontend"
class="card mb-4"
role="region"
aria-labelledby="hdr_frontend"
>
<div class="card-header bg-primary-dark">
<h3 class="card-title">
<h3
id="hdr_frontend"
class="card-title"
>
{{ $gettext('Broadcasting Service') }}
<running-badge :running="frontendRunning" />

View File

@ -3,9 +3,13 @@
id="profile-now-playing"
class="card"
role="region"
aria-labelledby="hdr_now_playing"
>
<div class="card-header bg-primary-dark">
<h3 class="card-title">
<h3
id="hdr_now_playing"
class="card-title"
>
{{ $gettext('On the Air') }}
</h3>
</div>

View File

@ -3,10 +3,14 @@
id="profile-nowplaying"
class="card nowplaying"
role="region"
aria-labelledby="hdr_now_playing"
>
<div class="card-header bg-primary-dark">
<div class="d-flex align-items-center">
<h3 class="flex-shrink card-title my-0">
<h3
id="hdr_now_playing"
class="flex-shrink card-title my-0"
>
{{ $gettext('On the Air') }}
</h3>
<h6

View File

@ -2,10 +2,14 @@
<section
class="card"
role="region"
aria-labelledby="hdr_public_pages"
>
<template v-if="enablePublicPage">
<div class="card-header bg-primary-dark">
<h3 class="card-title">
<h3
id="hdr_public_pages"
class="card-title"
>
{{ $gettext('Public Pages') }}
<enabled-badge :enabled="true" />
</h3>

View File

@ -2,10 +2,14 @@
<section
class="card"
role="region"
aria-labelledby="hdr_song_requests"
>
<template v-if="enableRequests">
<div class="card-header bg-primary-dark">
<h3 class="card-title">
<h3
id="hdr_song_requests"
class="card-title"
>
{{ $gettext('Song Requests') }}
<enabled-badge :enabled="true" />
</h3>

View File

@ -3,9 +3,13 @@
v-if="processedScheduleItems.length > 0"
class="card scheduled"
role="region"
aria-labelledby="hdr_scheduled"
>
<div class="card-header bg-primary-dark">
<h3 class="card-title">
<h3
id="hdr_scheduled"
class="card-title"
>
{{ $gettext('Scheduled') }}
</h3>
</div>

View File

@ -2,10 +2,14 @@
<section
class="card"
role="region"
aria-labelledby="hdr_streamers"
>
<template v-if="enableStreamers">
<div class="card-header bg-primary-dark">
<h3 class="card-title">
<h3
id="hdr_streamers"
class="card-title"
>
{{ $gettext('Streamers/DJs') }}
<enabled-badge :enabled="true" />
</h3>

View File

@ -2,9 +2,13 @@
<section
class="card"
role="region"
aria-labelledby="hdr_streams"
>
<div class="card-header bg-primary-dark">
<h3 class="card-title">
<h3
id="hdr_streams"
class="card-title"
>
{{ $gettext('Streams') }}
</h3>
</div>

View File

@ -2,9 +2,13 @@
<section
class="card"
role="region"
aria-labelledby="hdr_edit_profile"
>
<div class="card-header bg-primary-dark">
<h3 class="card-title">
<h3
id="hdr_edit_profile"
class="card-title"
>
{{ $gettext('Edit Station Profile') }}
</h3>
</div>

View File

@ -1,7 +1,14 @@
<template>
<b-card no-body>
<section
class="card"
role="region"
aria-labelledby="hdr_song_queue"
>
<b-card-header header-bg-variant="primary-dark">
<h2 class="card-title">
<h2
id="hdr_song_queue"
class="card-title"
>
{{ $gettext('Upcoming Song Queue') }}
</h2>
</b-card-header>
@ -65,7 +72,7 @@
</div>
</template>
</data-table>
</b-card>
</section>
<queue-logs-modal ref="$logsModal" />
</template>

View File

@ -1,7 +1,14 @@
<template>
<b-card no-body>
<section
class="card"
role="region"
aria-labelledby="hdr_remote_relays"
>
<b-card-header header-bg-variant="primary-dark">
<h2 class="card-title">
<h2
id="hdr_remote_relays"
class="card-title"
>
{{ $gettext('Remote Relays') }}
</h2>
</b-card-header>
@ -70,7 +77,7 @@
</b-button-group>
</template>
</data-table>
</b-card>
</section>
<remote-edit-modal
ref="$editModal"

View File

@ -1,9 +1,16 @@
<template>
<div class="row">
<div class="col-md-8">
<b-card no-body>
<section
class="card"
role="region"
aria-labelledby="hdr_sftp_users"
>
<b-card-header header-bg-variant="primary-dark">
<h2 class="card-title">
<h2
id="hdr_sftp_users"
class="card-title"
>
{{ $gettext('SFTP Users') }}
</h2>
</b-card-header>
@ -44,12 +51,19 @@
</b-button-group>
</template>
</data-table>
</b-card>
</section>
</div>
<div class="col-md-4">
<div class="card">
<section
class="card"
role="region"
aria-labelledby="hdr_connection_info"
>
<div class="card-header bg-primary-dark">
<h2 class="card-title">
<h2
id="hdr_connection_info"
class="card-title"
>
{{ $gettext('Connection Information') }}
</h2>
</div>
@ -71,7 +85,7 @@
<dd><code>{{ connectionInfo.port }}</code></dd>
</dl>
</div>
</div>
</section>
</div>
<sftp-users-edit-modal

View File

@ -2,9 +2,13 @@
<section
class="card"
role="region"
aria-labelledby="hdr_upload_stereotool_config"
>
<div class="card-header bg-primary-dark">
<h2 class="card-title">
<h2
id="hdr_upload_stereotool_config"
class="card-title"
>
{{ $gettext('Upload Stereo Tool Configuration') }}
</h2>
</div>

View File

@ -1,11 +1,18 @@
<template>
<div class="row row-of-cards">
<div class="col-md-8">
<b-card no-body>
<section
class="card"
role="region"
aria-labelledby="hdr_streamer_accounts"
>
<b-card-header header-bg-variant="primary-dark">
<b-row class="align-items-center">
<b-col md="6">
<h2 class="card-title">
<h2
id="hdr_streamer_accounts"
class="card-title"
>
{{ $gettext('Streamer/DJ Accounts') }}
</h2>
</b-col>
@ -101,7 +108,7 @@
/>
</b-tab>
</b-tabs>
</b-card>
</section>
</div>
<div class="col-md-4">
<connection-info :connection-info="connectionInfo" />

View File

@ -1,7 +1,14 @@
<template>
<div class="card">
<section
class="card"
role="region"
aria-labelledby="hdr_connection_info"
>
<div class="card-header bg-primary-dark">
<h2 class="card-title">
<h2
id="hdr_connection_info"
class="card-title"
>
{{ $gettext('Connection Information') }}
</h2>
</div>
@ -79,7 +86,7 @@
</a>
</p>
</div>
</div>
</section>
</template>
<script setup>

View File

@ -1,7 +1,14 @@
<template>
<b-card no-body>
<section
class="card"
role="region"
aria-labelledby="hdr_web_hooks"
>
<b-card-header header-bg-variant="primary-dark">
<h2 class="card-title">
<h2
id="hdr_web_hooks"
class="card-title"
>
{{ $gettext('Web Hooks') }}
</h2>
</b-card-header>
@ -82,7 +89,7 @@
</b-button-group>
</template>
</data-table>
</b-card>
</section>
<streaming-log-modal ref="$logModal" />
<edit-modal

View File

@ -151,7 +151,7 @@ endif; ?>">
<?php
if ($sections->has('sidebar')): ?>
<div class="navdrawer navdrawer-permanent-lg navdrawer-permanent-clipped" id="sidebar" tabindex="-1">
<nav class="navdrawer-content">
<nav class="navdrawer-content" aria-label="<?= __('Sidebar') ?>">
<?= $sections->get('sidebar') ?>
</nav>
</div>
@ -159,19 +159,19 @@ if ($sections->has('sidebar')): ?>
endif; ?>
<section id="main">
<section id="content" <?php
<main id="content" <?php
if (!$sections->has('sidebar')): ?>class="content-alt"<?php
endif; ?> role="main">
endif; ?>>
<div class="container">
<?php
if ($manual): ?>
<?=$this->section('content')?>
<?= $this->section('content') ?>
<?php
else: ?>
<?php
if ($header): ?>
<div class="block-header">
<h2><?=$header?></h2>
<h2><?= $header ?></h2>
</div>
<?php
endif; ?>
@ -186,7 +186,7 @@ endif; ?>
<?php
endif; ?>
</div>
</section>
</main>
</section>
<footer id="footer" <?php

View File

@ -48,12 +48,14 @@ $hide_footer ??= false;
<?= $sections->get('station_bodyjs') ?>
<?= $this->section('content') ?>
<main>
<?= $this->section('content') ?>
</main>
<?php
$hide_footer ??= false;
if (!$customization->hideProductName() && !$hide_footer): ?>
<footer id="footer" class="footer-alt" role="contentinfo">
<footer id="footer" class="footer-alt" role="contentinfo" aria-label="<?= __('Footer') ?>">
<?= sprintf(
__('Powered by %s'),
'<a href="https://azuracast.com/" target="_blank">' . $environment->getAppName() . '</a>' . ' '