mirror of https://gitlab.com/bashrc2/epicyon
Emoji icons for keyboard menus
parent
7e9a41ee40
commit
ca77dd959a
|
@ -41,6 +41,7 @@ from filters import isFiltered
|
||||||
from follow import isFollowerOfPerson
|
from follow import isFollowerOfPerson
|
||||||
from webapp_frontscreen import htmlFrontScreen
|
from webapp_frontscreen import htmlFrontScreen
|
||||||
from webapp_utils import htmlKeyboardNavigation
|
from webapp_utils import htmlKeyboardNavigation
|
||||||
|
from webapp_utils import htmlHideFromScreenReader
|
||||||
from webapp_utils import scheduledPostsExist
|
from webapp_utils import scheduledPostsExist
|
||||||
from webapp_utils import getPersonAvatarUrl
|
from webapp_utils import getPersonAvatarUrl
|
||||||
from webapp_utils import htmlHeaderWithExternalStyle
|
from webapp_utils import htmlHeaderWithExternalStyle
|
||||||
|
@ -712,15 +713,31 @@ def htmlProfile(rssIconAtTop: bool,
|
||||||
# keyboard navigation
|
# keyboard navigation
|
||||||
userPathStr = '/users/' + nickname
|
userPathStr = '/users/' + nickname
|
||||||
deft = defaultTimeline
|
deft = defaultTimeline
|
||||||
|
menuTimeline = \
|
||||||
|
htmlHideFromScreenReader('🏠 ') + translate['Switch to timeline view']
|
||||||
|
menuEdit = \
|
||||||
|
htmlHideFromScreenReader('✍ ') + translate['Edit']
|
||||||
|
menuFollowing = \
|
||||||
|
htmlHideFromScreenReader('👥 ') + translate['Following']
|
||||||
|
menuFollowers = \
|
||||||
|
htmlHideFromScreenReader('👪 ') + translate['Followers']
|
||||||
|
menuRoles = \
|
||||||
|
htmlHideFromScreenReader('🤚 ') + translate['Roles']
|
||||||
|
menuSkills = \
|
||||||
|
htmlHideFromScreenReader('🛠️') + translate['Skills']
|
||||||
|
menuShares = \
|
||||||
|
htmlHideFromScreenReader('🤝️') + translate['Shares']
|
||||||
|
menuLogout = \
|
||||||
|
htmlHideFromScreenReader('❎️') + translate['Logout']
|
||||||
navLinks = {
|
navLinks = {
|
||||||
translate['Switch to timeline view']: userPathStr + '/' + deft,
|
menuTimeline: userPathStr + '/' + deft,
|
||||||
translate['Edit']: userPathStr + '/editprofile',
|
menuEdit: userPathStr + '/editprofile',
|
||||||
translate['Following']: userPathStr + '/following#timeline',
|
menuFollowing: userPathStr + '/following#timeline',
|
||||||
translate['Followers']: userPathStr + '/followers#timeline',
|
menuFollowers: userPathStr + '/followers#timeline',
|
||||||
translate['Roles']: userPathStr + '/roles#timeline',
|
menuRoles: userPathStr + '/roles#timeline',
|
||||||
translate['Skills']: userPathStr + '/skills#timeline',
|
menuSkills: userPathStr + '/skills#timeline',
|
||||||
translate['Shares']: userPathStr + '/shares#timeline',
|
menuShares: userPathStr + '/shares#timeline',
|
||||||
translate['Logout']: '/logout'
|
menuLogout: '/logout'
|
||||||
}
|
}
|
||||||
profileStr = htmlKeyboardNavigation(textModeBanner, navLinks)
|
profileStr = htmlKeyboardNavigation(textModeBanner, navLinks)
|
||||||
|
|
||||||
|
@ -1347,9 +1364,13 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
|
||||||
# keyboard navigation
|
# keyboard navigation
|
||||||
userPathStr = '/users/' + nickname
|
userPathStr = '/users/' + nickname
|
||||||
userTimalineStr = '/users/' + nickname + '/' + defaultTimeline
|
userTimalineStr = '/users/' + nickname + '/' + defaultTimeline
|
||||||
|
menuTimeline = \
|
||||||
|
htmlHideFromScreenReader('🏠 ') + translate['Switch to timeline view']
|
||||||
|
menuProfile = \
|
||||||
|
htmlHideFromScreenReader('👤 ') + translate['Switch to profile view']
|
||||||
navLinks = {
|
navLinks = {
|
||||||
translate['Switch to profile view']: userPathStr,
|
menuProfile: userPathStr,
|
||||||
translate['Switch to timeline view']: userTimalineStr
|
menuTimeline: userTimalineStr
|
||||||
}
|
}
|
||||||
editProfileForm += htmlKeyboardNavigation(textModeBanner, navLinks)
|
editProfileForm += htmlKeyboardNavigation(textModeBanner, navLinks)
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ from utils import removeIdEnding
|
||||||
from follow import followerApprovalActive
|
from follow import followerApprovalActive
|
||||||
from person import isPersonSnoozed
|
from person import isPersonSnoozed
|
||||||
from webapp_utils import htmlKeyboardNavigation
|
from webapp_utils import htmlKeyboardNavigation
|
||||||
|
from webapp_utils import htmlHideFromScreenReader
|
||||||
from webapp_utils import htmlPostSeparator
|
from webapp_utils import htmlPostSeparator
|
||||||
from webapp_utils import getBannerFile
|
from webapp_utils import getBannerFile
|
||||||
from webapp_utils import htmlHeaderWithExternalStyle
|
from webapp_utils import htmlHeaderWithExternalStyle
|
||||||
|
@ -378,21 +379,49 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str,
|
||||||
sharesStr = translate['Shares']
|
sharesStr = translate['Shares']
|
||||||
if newShare:
|
if newShare:
|
||||||
sharesStr = '*' + sharesStr + '*'
|
sharesStr = '*' + sharesStr + '*'
|
||||||
|
menuProfile = \
|
||||||
|
htmlHideFromScreenReader('👤 ') + translate['Switch to profile view']
|
||||||
|
menuInbox = \
|
||||||
|
htmlHideFromScreenReader('📥 ') + translate['Inbox']
|
||||||
|
menuOutbox = \
|
||||||
|
htmlHideFromScreenReader('📤 ') + translate['Outbox']
|
||||||
|
menuSearch = \
|
||||||
|
htmlHideFromScreenReader('🔍 ') + translate['Search and follow']
|
||||||
|
menuCalendar = \
|
||||||
|
htmlHideFromScreenReader('📅 ') + calendarStr
|
||||||
|
menuDM = \
|
||||||
|
htmlHideFromScreenReader('✉ ') + dmStr
|
||||||
|
menuReplies = \
|
||||||
|
htmlHideFromScreenReader('↩️') + repliesStr
|
||||||
|
menuBookmarks = \
|
||||||
|
htmlHideFromScreenReader('🔖 ') + translate['Bookmarks']
|
||||||
|
menuShares = \
|
||||||
|
htmlHideFromScreenReader('🤝️') + sharesStr
|
||||||
|
menuEvents = \
|
||||||
|
htmlHideFromScreenReader('🎫️') + translate['Events']
|
||||||
|
menuBlogs = \
|
||||||
|
htmlHideFromScreenReader('📝️') + translate['Blogs']
|
||||||
|
menuNewswire = \
|
||||||
|
htmlHideFromScreenReader('📰️') + translate['Newswire']
|
||||||
|
menuLinks = \
|
||||||
|
htmlHideFromScreenReader('🔗️') + translate['Links']
|
||||||
|
menuNewPost = \
|
||||||
|
htmlHideFromScreenReader('➕️') + translate['Create a new post']
|
||||||
navLinks = {
|
navLinks = {
|
||||||
translate['Switch to profile view']: '/users/' + nickname,
|
menuProfile: '/users/' + nickname,
|
||||||
translate['Inbox']: usersPath + '/inbox#timeline',
|
menuInbox: usersPath + '/inbox#timeline',
|
||||||
translate['Search and follow']: usersPath + '/search',
|
menuSearch: usersPath + '/search',
|
||||||
translate['Create a new post']: usersPath + '/newpost',
|
menuNewPost: usersPath + '/newpost',
|
||||||
calendarStr: usersPath + '/calendar',
|
menuCalendar: usersPath + '/calendar',
|
||||||
dmStr: usersPath + '/dm#timeline',
|
menuDM: usersPath + '/dm#timeline',
|
||||||
repliesStr: usersPath + '/tlreplies#timeline',
|
menuReplies: usersPath + '/tlreplies#timeline',
|
||||||
translate['Outbox']: usersPath + '/inbox#timeline',
|
menuOutbox: usersPath + '/inbox#timeline',
|
||||||
translate['Bookmarks']: usersPath + '/tlbookmarks#timeline',
|
menuBookmarks: usersPath + '/tlbookmarks#timeline',
|
||||||
sharesStr: usersPath + '/tlshares#timeline',
|
menuShares: usersPath + '/tlshares#timeline',
|
||||||
translate['Blogs']: usersPath + '/tlblogs#timeline',
|
menuBlogs: usersPath + '/tlblogs#timeline',
|
||||||
translate['Events']: usersPath + '/tlevents#timeline',
|
menuEvents: usersPath + '/tlevents#timeline',
|
||||||
translate['Skip to Newswire']: '#newswire',
|
menuNewswire: '#newswire',
|
||||||
translate['Skip to Links']: '#links'
|
menuLinks: '#links'
|
||||||
}
|
}
|
||||||
if moderator:
|
if moderator:
|
||||||
navLinks[translate['Mod']] = usersPath + '/moderation'
|
navLinks[translate['Mod']] = usersPath + '/moderation'
|
||||||
|
|
|
@ -880,6 +880,12 @@ def getAvatarImageUrl(session,
|
||||||
return avatarUrl
|
return avatarUrl
|
||||||
|
|
||||||
|
|
||||||
|
def htmlHideFromScreenReader(htmlStr: str) -> str:
|
||||||
|
"""Returns html which is hidden from screen readers
|
||||||
|
"""
|
||||||
|
return '<span aria-hidden="true">' + htmlStr + '</span>'
|
||||||
|
|
||||||
|
|
||||||
def htmlKeyboardNavigation(banner: str, links: {},
|
def htmlKeyboardNavigation(banner: str, links: {},
|
||||||
usersPath=None, translate=None,
|
usersPath=None, translate=None,
|
||||||
followApprovals=False) -> str:
|
followApprovals=False) -> str:
|
||||||
|
|
Loading…
Reference in New Issue