Merge branch 'from/develop/tusooa/accessibility-regression' into 'develop'

Fix accessibility regressions

Closes #1217

See merge request pleroma/pleroma-fe!1679
This commit is contained in:
tusooa 2022-11-08 23:53:59 +00:00
commit 6263ad7571
14 changed files with 85 additions and 55 deletions

View File

@ -33,7 +33,7 @@
<div id="notifs-sidebar" /> <div id="notifs-sidebar" />
</template> </template>
</div> </div>
<div <main
id="main-scroller" id="main-scroller"
class="column main" class="column main"
:class="{ '-full-height': isChats || isListEdit }" :class="{ '-full-height': isChats || isListEdit }"
@ -50,7 +50,7 @@
</router-link> </router-link>
</div> </div>
<router-view /> <router-view />
</div> </main>
<div <div
id="notifs-column" id="notifs-column"
class="column -scrollable" class="column -scrollable"

View File

@ -60,7 +60,7 @@
v-if="shouldShowAncestors" v-if="shouldShowAncestors"
class="thread-ancestors" class="thread-ancestors"
> >
<div <article
v-for="status in ancestorsOf(diveRoot)" v-for="status in ancestorsOf(diveRoot)"
:key="status.id" :key="status.id"
class="thread-ancestor" class="thread-ancestor"
@ -130,7 +130,7 @@
</i18n-t> </i18n-t>
</div> </div>
</div> </div>
</div> </article>
</div> </div>
<thread-tree <thread-tree
v-for="status in showingTopLevel" v-for="status in showingTopLevel"
@ -168,6 +168,7 @@
v-if="isLinearView" v-if="isLinearView"
class="thread-body" class="thread-body"
> >
<article>
<status <status
v-for="status in conversation" v-for="status in conversation"
:key="status.id" :key="status.id"
@ -196,6 +197,7 @@
@goto="setHighlight" @goto="setHighlight"
@toggleExpanded="toggleExpanded" @toggleExpanded="toggleExpanded"
/> />
</article>
</div> </div>
</div> </div>
</div> </div>

View File

@ -10,6 +10,8 @@
<div class="item"> <div class="item">
<button <button
class="button-unstyled mobile-nav-button" class="button-unstyled mobile-nav-button"
:title="$t('nav.mobile_sidebar')"
:aria-expanaded="this.$refs.sideDrawer && !this.$refs.sideDrawer.closed"
@click.stop.prevent="toggleMobileSidebar()" @click.stop.prevent="toggleMobileSidebar()"
> >
<FAIcon <FAIcon
@ -26,6 +28,7 @@
<button <button
v-if="currentUser" v-if="currentUser"
class="button-unstyled mobile-nav-button" class="button-unstyled mobile-nav-button"
:title="unseenNotificationsCount ? $t('nav.mobile_notifications_unread_active') : $t('nav.mobile_notifications')"
@click.stop.prevent="openMobileNotifications()" @click.stop.prevent="openMobileNotifications()"
> >
<FAIcon <FAIcon
@ -39,7 +42,7 @@
</button> </button>
</div> </div>
</nav> </nav>
<div <aside
v-if="currentUser" v-if="currentUser"
class="mobile-notifications-drawer" class="mobile-notifications-drawer"
:class="{ '-closed': !notificationsOpen }" :class="{ '-closed': !notificationsOpen }"
@ -52,6 +55,7 @@
<button <button
v-if="notificationsAtTop" v-if="notificationsAtTop"
class="button-unstyled mobile-nav-button" class="button-unstyled mobile-nav-button"
:title="$t('general.scroll_to_top')"
@click.stop.prevent="scrollMobileNotificationsToTop" @click.stop.prevent="scrollMobileNotificationsToTop"
> >
<FALayers class="fa-scale-110 fa-old-padding-layer"> <FALayers class="fa-scale-110 fa-old-padding-layer">
@ -64,6 +68,7 @@
</button> </button>
<button <button
class="button-unstyled mobile-nav-button" class="button-unstyled mobile-nav-button"
:title="$t('nav.mobile_notifications_close')"
@click.stop.prevent="closeMobileNotifications(true)" @click.stop.prevent="closeMobileNotifications(true)"
> >
<FAIcon <FAIcon
@ -78,7 +83,7 @@
ref="mobileNotifications" ref="mobileNotifications"
@scroll="onScroll" @scroll="onScroll"
/> />
</div> </aside>
<SideDrawer <SideDrawer
ref="sideDrawer" ref="sideDrawer"
:logout="logout" :logout="logout"

View File

@ -3,6 +3,7 @@
v-if="isLoggedIn" v-if="isLoggedIn"
class="MobilePostButton button-default new-status-button" class="MobilePostButton button-default new-status-button"
:class="{ 'hidden': isHidden, 'always-show': isPersistent }" :class="{ 'hidden': isHidden, 'always-show': isPersistent }"
:title="$t('post_status.new_status')"
@click="openPostForm" @click="openPostForm"
> >
<FAIcon icon="pen" /> <FAIcon icon="pen" />

View File

@ -1,11 +1,14 @@
<template> <template>
<Status <article
v-if="notification.type === 'mention'" v-if="notification.type === 'mention'"
>
<Status
class="Notification" class="Notification"
:compact="true" :compact="true"
:statusoid="notification.status" :statusoid="notification.status"
/> />
<div v-else> </article>
<article v-else>
<div <div
v-if="needMute && !unmuted" v-if="needMute && !unmuted"
class="Notification container -muted" class="Notification container -muted"
@ -226,7 +229,7 @@
</template> </template>
</div> </div>
</div> </div>
</div> </article>
</template> </template>
<script src="./notification.js"></script> <script src="./notification.js"></script>

View File

@ -3,7 +3,8 @@
:disabled="minimalMode || disableTeleport" :disabled="minimalMode || disableTeleport"
:to="teleportTarget" :to="teleportTarget"
> >
<div <component
:is="noHeading ? 'div' : 'aside'"
ref="root" ref="root"
:class="{ minimal: minimalMode }" :class="{ minimal: minimalMode }"
class="Notifications" class="Notifications"
@ -49,10 +50,14 @@
</button> </button>
<NotificationFilters class="rightside-button" /> <NotificationFilters class="rightside-button" />
</div> </div>
<div class="panel-body"> <div
class="panel-body"
role="feed"
>
<div <div
v-for="notification in notificationsToDisplay" v-for="notification in notificationsToDisplay"
:key="notification.id" :key="notification.id"
role="listitem"
class="notification" class="notification"
:class="{unseen: !minimalMode && !notification.seen}" :class="{unseen: !minimalMode && !notification.seen}"
> >
@ -88,7 +93,7 @@
</div> </div>
</div> </div>
</div> </div>
</div> </component>
</teleport> </teleport>
</template> </template>

View File

@ -43,7 +43,12 @@ const Popover = {
overlayCentersSelector: String, overlayCentersSelector: String,
// Lets hover popover stay when clicking inside of it // Lets hover popover stay when clicking inside of it
stayOnClick: Boolean stayOnClick: Boolean,
triggerAttrs: {
type: Object,
default: {}
}
}, },
inject: ['popoversZLayer'], // override popover z layer inject: ['popoversZLayer'], // override popover z layer
data () { data () {

View File

@ -7,6 +7,7 @@
ref="trigger" ref="trigger"
class="button-unstyled popover-trigger-button" class="button-unstyled popover-trigger-button"
type="button" type="button"
v-bind="triggerAttrs"
@click="onClick" @click="onClick"
> >
<slot name="trigger" /> <slot name="trigger" />

View File

@ -3,6 +3,7 @@
trigger="click" trigger="click"
class="QuickFilterSettings" class="QuickFilterSettings"
:bound-to="{ x: 'container' }" :bound-to="{ x: 'container' }"
:triggerAttrs="{ title: $t('timeline.quick_filter_settings') }"
> >
<template #content> <template #content>
<div class="dropdown-menu"> <div class="dropdown-menu">
@ -79,9 +80,7 @@
</div> </div>
</template> </template>
<template #trigger> <template #trigger>
<button class="button-unstyled">
<FAIcon icon="filter" /> <FAIcon icon="filter" />
</button>
</template> </template>
</Popover> </Popover>
</template> </template>

View File

@ -3,6 +3,7 @@
trigger="click" trigger="click"
class="QuickViewSettings" class="QuickViewSettings"
:bound-to="{ x: 'container' }" :bound-to="{ x: 'container' }"
:triggerAttrs="{ title: $t('timeline.quick_view_settings') }"
> >
<template #content> <template #content>
<div class="dropdown-menu"> <div class="dropdown-menu">
@ -66,9 +67,7 @@
</div> </div>
</template> </template>
<template #trigger> <template #trigger>
<button class="button-unstyled">
<FAIcon icon="bars" /> <FAIcon icon="bars" />
</button>
</template> </template>
</Popover> </Popover>
</template> </template>

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="thread-tree"> <article class="thread-tree">
<status <status
:key="status.id" :key="status.id"
ref="statusComponent" ref="statusComponent"
@ -113,7 +113,7 @@
</template> </template>
</i18n-t> </i18n-t>
</div> </div>
</div> </article>
</template> </template>
<script src="./thread_tree.js"></script> <script src="./thread_tree.js"></script>

View File

@ -47,6 +47,7 @@
v-else-if="!embedded" v-else-if="!embedded"
class="loadmore-text faint veryfaint rightside-icon" class="loadmore-text faint veryfaint rightside-icon"
:title="$t('timeline.up_to_date')" :title="$t('timeline.up_to_date')"
:aria-disabled="true"
@click.prevent @click.prevent
> >
<FAIcon <FAIcon
@ -78,10 +79,12 @@
<div <div
ref="timeline" ref="timeline"
class="timeline" class="timeline"
role="feed"
> >
<conversation <conversation
v-for="statusId in filteredPinnedStatusIds" v-for="statusId in filteredPinnedStatusIds"
:key="statusId + '-pinned'" :key="statusId + '-pinned'"
role="listitem"
class="status-fadein" class="status-fadein"
:status-id="statusId" :status-id="statusId"
:collapsable="true" :collapsable="true"
@ -92,6 +95,7 @@
<conversation <conversation
v-for="status in filteredVisibleStatuses" v-for="status in filteredVisibleStatuses"
:key="status.id" :key="status.id"
role="listitem"
class="status-fadein" class="status-fadein"
:status-id="status.id" :status-id="status.id"
:collapsable="true" :collapsable="true"

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="user-panel"> <aside class="user-panel">
<div <div
v-if="signedIn" v-if="signedIn"
key="user-panel-signed" key="user-panel-signed"
@ -16,7 +16,7 @@
v-else v-else
key="user-panel" key="user-panel"
/> />
</div> </aside>
</template> </template>
<script src="./user_panel.js"></script> <script src="./user_panel.js"></script>

View File

@ -158,7 +158,11 @@
"lists": "Lists", "lists": "Lists",
"edit_nav_mobile": "Customize navigation bar", "edit_nav_mobile": "Customize navigation bar",
"edit_pinned": "Edit pinned items", "edit_pinned": "Edit pinned items",
"edit_finish": "Done editing" "edit_finish": "Done editing",
"mobile_sidebar": "Toggle mobile sidebar",
"mobile_notifications": "Open notifications",
"mobile_notifications": "Open notifications (there are unread ones)",
"mobile_notifications_close": "Close notifications"
}, },
"notifications": { "notifications": {
"broken_favorite": "Unknown status, searching for it…", "broken_favorite": "Unknown status, searching for it…",
@ -807,7 +811,9 @@
"no_more_statuses": "No more statuses", "no_more_statuses": "No more statuses",
"no_statuses": "No statuses", "no_statuses": "No statuses",
"socket_reconnected": "Realtime connection established", "socket_reconnected": "Realtime connection established",
"socket_broke": "Realtime connection lost: CloseEvent code {0}" "socket_broke": "Realtime connection lost: CloseEvent code {0}",
"quick_view_settings": "Quick view settings",
"quick_filter_settings": "Quick filter settings"
}, },
"status": { "status": {
"favorites": "Favorites", "favorites": "Favorites",