diff --git a/daemon.py b/daemon.py index 3e091bebc..4d3041ad9 100644 --- a/daemon.py +++ b/daemon.py @@ -11085,7 +11085,8 @@ class PubServer(BaseHTTPRequestHandler): self.server.translate, self.server.baseDir, self.path, self.server.httpPrefix, - self.server.domainFull).encode('utf-8') + self.server.domainFull, + self.server.textModeBanner).encode('utf-8') msglen = len(msg) self._set_headers('text/html', msglen, cookie, callingDomain) self._write(msg) diff --git a/webapp_calendar.py b/webapp_calendar.py index 72342a468..0b54cc36a 100644 --- a/webapp_calendar.py +++ b/webapp_calendar.py @@ -21,6 +21,8 @@ from happening import getCalendarEvents from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlFooter from webapp_utils import getAltPath +from webapp_utils import htmlHideFromScreenReader +from webapp_utils import htmlKeyboardNavigation def htmlCalendarDeleteConfirm(cssCache: {}, translate: {}, baseDir: str, @@ -200,7 +202,8 @@ def _htmlCalendarDay(cssCache: {}, translate: {}, def htmlCalendar(cssCache: {}, translate: {}, baseDir: str, path: str, - httpPrefix: str, domainFull: str) -> str: + httpPrefix: str, domainFull: str, + textModeBanner: str) -> str: """Show the calendar for a person """ domain = domainFull @@ -297,8 +300,10 @@ def htmlCalendar(cssCache: {}, translate: {}, instanceTitle = \ getConfigParam(baseDir, 'instanceTitle') - calendarStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle) - calendarStr += '
\n' + headerStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle) + + # the main graphical calendar as a table + calendarStr = '
\n' calendarStr += '
\n' calendarStr += \ ' ' + \ str(dayOfMonth) + '' + # accessibility menu links + menuOptionStr = \ + htmlHideFromScreenReader('📅') + ' ' + \ + dayDescription + navLinks[menuOptionStr] = url # there are events for this day if not isToday: calendarStr += \ @@ -389,5 +405,16 @@ def htmlCalendar(cssCache: {}, translate: {}, calendarStr += '\n' calendarStr += '
\n' - calendarStr += htmlFooter() - return calendarStr + + # end of the links used for accessibility + nextMonthStr = \ + htmlHideFromScreenReader('→') + ' ' + translate['Next month'] + navLinks[nextMonthStr] = calActor + '/calendar?year=' + str(nextYear) + \ + '?month=' + str(nextMonthNumber) + prevMonthStr = \ + htmlHideFromScreenReader('←') + ' ' + translate['Previous month'] + navLinks[prevMonthStr] = calActor + '/calendar?year=' + str(prevYear) + \ + '?month=' + str(prevMonthNumber) + screenReaderCal = htmlKeyboardNavigation(textModeBanner, navLinks) + + return headerStr + screenReaderCal + calendarStr + htmlFooter()