Accessibility metadata on login screen

merge-requests/30/head
Bob Mottram 2021-05-14 12:27:08 +01:00
parent ba0ec266d7
commit 5458aca794
3 changed files with 56 additions and 5 deletions

View File

@ -10572,7 +10572,11 @@ class PubServer(BaseHTTPRequestHandler):
msg = \
htmlLogin(self.server.cssCache,
self.server.translate,
self.server.baseDir, False).encode('utf-8')
self.server.baseDir,
self.server.httpPrefix,
self.server.domainFull,
self.server.systemLanguage,
False).encode('utf-8')
msglen = len(msg)
self._logout_headers('text/html', msglen, callingDomain)
self._write(msg)
@ -11677,7 +11681,10 @@ class PubServer(BaseHTTPRequestHandler):
# request basic auth
msg = htmlLogin(self.server.cssCache,
self.server.translate,
self.server.baseDir).encode('utf-8')
self.server.baseDir,
self.server.httpPrefix,
self.server.domainFull,
self.server.systemLanguage).encode('utf-8')
msglen = len(msg)
self._login_headers('text/html', msglen, callingDomain)
self._write(msg)

View File

@ -11,7 +11,7 @@ import time
from shutil import copyfile
from utils import getConfigParam
from utils import noOfAccounts
from webapp_utils import htmlHeaderWithExternalStyle
from webapp_utils import htmlHeaderWithWebsiteMarkup
from webapp_utils import htmlFooter
from webapp_utils import htmlKeyboardNavigation
from theme import getTextModeLogo
@ -51,7 +51,10 @@ def htmlGetLoginCredentials(loginParams: str,
def htmlLogin(cssCache: {}, translate: {},
baseDir: str, autocomplete=True) -> str:
baseDir: str,
httpPrefix: str, domain: str,
systemLanguage: str,
autocomplete=True) -> str:
"""Shows the login screen
"""
accounts = noOfAccounts(baseDir)
@ -145,7 +148,10 @@ def htmlLogin(cssCache: {}, translate: {},
instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
loginForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
loginForm = \
htmlHeaderWithWebsiteMarkup(cssFilename, instanceTitle,
httpPrefix, domain,
systemLanguage)
loginForm += '<br>\n'
loginForm += '<form method="POST" action="/login">\n'
loginForm += ' <div class="imgcontainer">\n'

View File

@ -748,6 +748,44 @@ def htmlHeaderWithPersonMarkup(cssFilename: str, instanceTitle: str,
return htmlStr
def htmlHeaderWithWebsiteMarkup(cssFilename: str, instanceTitle: str,
httpPrefix: str, domain: str,
systemLanguage: str) -> str:
"""html header which includes website markup
https://schema.org/WebSite
"""
htmlStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle,
systemLanguage)
licenseUrl = 'https://www.gnu.org/licenses/agpl-3.0.en.html'
websiteMarkup = \
' <script type="application/ld+json">\n' + \
' {\n' + \
' "@context" : "http://schema.org",\n' + \
' "@type" : "WebSite",\n' + \
' "name": "' + instanceTitle + '",\n' + \
' "license": "' + licenseUrl + '",\n' + \
' "inLanguage": "' + systemLanguage + '",\n' + \
' "isAccessibleForFree": true,\n' + \
' "genre": "https://en.wikipedia.org/wiki/Fediverse",\n' + \
' "accessMode": ["textual", "visual"],\n' + \
' "accessModeSufficient": ["textual"],\n' + \
' "accessibilityAPI" : [ "ARIA" ],\n' + \
' "accessibilityControl" : [\n' + \
' "fullKeyboardControl",\n' + \
' "fullTouchControl",\n' + \
' "fullMouseControl"\n' + \
' ],\n' + \
' "encodingFormat" : [\n' + \
' "text/html", "image/png", "image/webp",\n' + \
' "image/jpeg", "image/gif", "text/css"\n' + \
' ],\n' + \
' }\n' + \
' </script>\n'
htmlStr = htmlStr.replace('<head>\n', '<head>\n' + websiteMarkup)
return htmlStr
def htmlFooter() -> str:
htmlStr = ' </body>\n'
htmlStr += '</html>\n'