Emoji icons for keyboard menus

merge-requests/30/head
Bob Mottram 2021-02-06 10:35:47 +00:00
parent 7e9a41ee40
commit ca77dd959a
3 changed files with 80 additions and 24 deletions

View File

@ -41,6 +41,7 @@ from filters import isFiltered
from follow import isFollowerOfPerson
from webapp_frontscreen import htmlFrontScreen
from webapp_utils import htmlKeyboardNavigation
from webapp_utils import htmlHideFromScreenReader
from webapp_utils import scheduledPostsExist
from webapp_utils import getPersonAvatarUrl
from webapp_utils import htmlHeaderWithExternalStyle
@ -712,15 +713,31 @@ def htmlProfile(rssIconAtTop: bool,
# keyboard navigation
userPathStr = '/users/' + nickname
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 = {
translate['Switch to timeline view']: userPathStr + '/' + deft,
translate['Edit']: userPathStr + '/editprofile',
translate['Following']: userPathStr + '/following#timeline',
translate['Followers']: userPathStr + '/followers#timeline',
translate['Roles']: userPathStr + '/roles#timeline',
translate['Skills']: userPathStr + '/skills#timeline',
translate['Shares']: userPathStr + '/shares#timeline',
translate['Logout']: '/logout'
menuTimeline: userPathStr + '/' + deft,
menuEdit: userPathStr + '/editprofile',
menuFollowing: userPathStr + '/following#timeline',
menuFollowers: userPathStr + '/followers#timeline',
menuRoles: userPathStr + '/roles#timeline',
menuSkills: userPathStr + '/skills#timeline',
menuShares: userPathStr + '/shares#timeline',
menuLogout: '/logout'
}
profileStr = htmlKeyboardNavigation(textModeBanner, navLinks)
@ -1347,9 +1364,13 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
# keyboard navigation
userPathStr = '/users/' + nickname
userTimalineStr = '/users/' + nickname + '/' + defaultTimeline
menuTimeline = \
htmlHideFromScreenReader('🏠 ') + translate['Switch to timeline view']
menuProfile = \
htmlHideFromScreenReader('👤 ') + translate['Switch to profile view']
navLinks = {
translate['Switch to profile view']: userPathStr,
translate['Switch to timeline view']: userTimalineStr
menuProfile: userPathStr,
menuTimeline: userTimalineStr
}
editProfileForm += htmlKeyboardNavigation(textModeBanner, navLinks)

View File

@ -15,6 +15,7 @@ from utils import removeIdEnding
from follow import followerApprovalActive
from person import isPersonSnoozed
from webapp_utils import htmlKeyboardNavigation
from webapp_utils import htmlHideFromScreenReader
from webapp_utils import htmlPostSeparator
from webapp_utils import getBannerFile
from webapp_utils import htmlHeaderWithExternalStyle
@ -378,21 +379,49 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str,
sharesStr = translate['Shares']
if newShare:
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 = {
translate['Switch to profile view']: '/users/' + nickname,
translate['Inbox']: usersPath + '/inbox#timeline',
translate['Search and follow']: usersPath + '/search',
translate['Create a new post']: usersPath + '/newpost',
calendarStr: usersPath + '/calendar',
dmStr: usersPath + '/dm#timeline',
repliesStr: usersPath + '/tlreplies#timeline',
translate['Outbox']: usersPath + '/inbox#timeline',
translate['Bookmarks']: usersPath + '/tlbookmarks#timeline',
sharesStr: usersPath + '/tlshares#timeline',
translate['Blogs']: usersPath + '/tlblogs#timeline',
translate['Events']: usersPath + '/tlevents#timeline',
translate['Skip to Newswire']: '#newswire',
translate['Skip to Links']: '#links'
menuProfile: '/users/' + nickname,
menuInbox: usersPath + '/inbox#timeline',
menuSearch: usersPath + '/search',
menuNewPost: usersPath + '/newpost',
menuCalendar: usersPath + '/calendar',
menuDM: usersPath + '/dm#timeline',
menuReplies: usersPath + '/tlreplies#timeline',
menuOutbox: usersPath + '/inbox#timeline',
menuBookmarks: usersPath + '/tlbookmarks#timeline',
menuShares: usersPath + '/tlshares#timeline',
menuBlogs: usersPath + '/tlblogs#timeline',
menuEvents: usersPath + '/tlevents#timeline',
menuNewswire: '#newswire',
menuLinks: '#links'
}
if moderator:
navLinks[translate['Mod']] = usersPath + '/moderation'

View File

@ -880,6 +880,12 @@ def getAvatarImageUrl(session,
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: {},
usersPath=None, translate=None,
followApprovals=False) -> str: